Terminal: Posibilidad de cambiar el nombre del título de la pestaña en tiempo de ejecución

Creado en 31 may. 2019  ·  56Comentarios  ·  Fuente: microsoft/terminal

Las pestañas son una función muy útil, pero a medida que abre más y más pestañas, se vuelve difícil y confuso realizar un seguimiento de qué pestaña es para qué propósito, a menos que la abra. Será mejor si podemos cambiar el nombre de la pestaña y darle un nombre descriptivo.

La forma en que podemos implementar el cambio de nombre de la pestaña desde el punto de vista funcional es:

1 - Clic derecho -> Cambiar nombre

Haga clic con el botón derecho en una pestaña que el usuario quiera cambiar de nombre, esto abrirá el menú contextual y desde el menú contextual, el usuario seleccionará Cambiar nombre.

El título de la pestaña cambiará a un TextBox, y el usuario podrá escribir el nombre de la pestaña, y al presionar la tecla Intro en el teclado o al hacer clic en cualquier lugar fuera del cuadro de texto, se aplicará el título de la pestaña. Si el usuario presiona la tecla ESC, descartaremos los cambios.

image

2 - Doble clic - título de la pestaña

El título de la pestaña cambiará a un TextBox, y el usuario podrá escribir el nombre de la pestaña, y al presionar la tecla Intro en el teclado o al hacer clic en cualquier lugar fuera del cuadro de texto, se aplicará el título de la pestaña. Si el usuario presiona la tecla ESC, descartaremos los cambios.

El resultado final se verá así:

image

Area-User Interface Issue-Feature Product-Terminal Resolution-Fix-Committed

Comentario más útil

Tenga en cuenta que también puede establecer el título desde la línea de comando con title "new title" en cmd y $Host.UI.RawUI.WindowTitle = "new title" en powershell

Todos 56 comentarios

¿No se podría usar el nombre del perfil para el título de la pestaña de forma predeterminada, pero tal vez una opción para mostrar una ruta en su lugar?

El camino suele estar en la pompa, por lo que no estoy seguro de que sea necesario en ambos.

El camino está ahí porque es lo que el shell ha puesto ahí. Para discusiones sobre eso y los méritos de los títulos, # 608. Esta es una pregunta ligeramente diferente.

¿No se podría usar el nombre del perfil para el título de la pestaña de forma predeterminada, pero tal vez una opción para mostrar una ruta en su lugar?

El camino suele estar en la pompa, por lo que no estoy seguro de que sea necesario en ambos.

El perfil solo muestra el CMD o PowerShell ... pero lo que propongo es poder cambiar el nombre de Tab con un nombre descriptivo.

Estoy bastante seguro de que este es un subconjunto de una de las soluciones que propuse en ese hilo:

Si eligiéramos solo 2 modos, podríamos hacerlo de las dos formas posibles:

  1. Agregue una cadena titleText:string opcional al perfil. Si está configurado, mostraremos esa cadena en lugar del título de la terminal.

    • esto tiene la desventaja de no tomar el nombre del perfil de forma predeterminada. El usuario necesitaría configurar manualmente esa cadena.

    • si el nombre del perfil cambia, el usuario también tendrá que cambiarlo manualmente.

    • Puede que no quede muy claro que titleText significa que lo usaremos en lugar del título del terminal, pero lo ideal es que la interfaz de usuario de configuración lo explique mejor, y la clave real no importa tanto.

¿No se podría usar el nombre del perfil para el título de la pestaña de forma predeterminada, pero tal vez una opción para mostrar una ruta en su lugar?
El camino suele estar en la pompa, por lo que no estoy seguro de que sea necesario en ambos.

El perfil solo muestra el CMD o PowerShell ... pero lo que propongo es poder cambiar el nombre de Tab con un nombre descriptivo.

Cambiar el nombre de la pestaña implicaría que el nombre está allí hasta que se cierre esa pestaña. Mi sugerencia sería permitir que un perfil tenga un nombre elegido por el usuario

Sin embargo, supongo que dejo esto abierto para realizar un seguimiento específicamente agregando un botón a la pestaña del menú del botón derecho del ratón para establecer el TítuloTexto del perfil.



er, ahora que he escrito esto, tal vez deberíamos tener un texto en tiempo de ejecución que modifiquemos. Estoy pensando en el caso de que un usuario tenga varias pestañas con el mismo perfil abierto. Si el usuario desea cambiar el nombre de una de las pestañas, probablemente no quiera que ese nombre se aplique globalmente a cada una de las pestañas con ese perfil. Probablemente solo quieran cambiar el nombre de esa pestaña _una_.

Por lo tanto, esto debería implicar establecer una bandera en la pestaña de que está usando un título en tiempo de ejecución en lugar del título del control, y deberíamos simplemente ignorar todos los cambios de título del control. Si se cambia la configuración del título del perfil, también lo ignoraremos.

Aunque una pregunta aquí sería ¿debería aplicarse esa cadena personalizada a la pestaña o al panel enfocado? Probablemente supongo que se aplicaría a la pestaña, no al panel.

@ zadjii-msft debería aplicarse a tab. Además, si borra el texto, debería establecer el indicador de tiempo de ejecución en falso. Esto también permitirá que la pestaña comience a usar el nombre del perfil.

@ carlos-zamora quería trabajar en acciones de pestañas, y creo que esto encaja bastante bien. ¡Incluso lo sugirió! Así que aquí está el trato: claramente hay tres escuelas de pensamiento diferentes aquí con respecto al título, por lo que ahora es Spec Needed . :sonrisa:

@ carlos-zamora quería trabajar en acciones de pestañas, y creo que esto encaja bastante bien. ¡Incluso lo sugirió! Así que aquí está el trato: claramente hay tres escuelas de pensamiento diferentes aquí con respecto al título, por lo que ahora es Spec Needed . 😄

¡SÍ! Realmente quiero esta característica. Definitivamente una cuestión de cómo esto interactúa con el shell / distro enviando un título a la pestaña (# 608). También noté que la acción de pasar el mouse debería incluirse en esto (es decir, al pasar el mouse sobre la pestaña se muestra la ruta completa debajo del mouse [probar en Edge]). @ cinnamon-msft y redactaré una especificación pronto. ¡Estamos super emocionados!

Suepr. Déjame saber cómo puedo contribuir como desarrollador.

Tenga en cuenta que también puede establecer el título desde la línea de comando con title "new title" en cmd y $Host.UI.RawUI.WindowTitle = "new title" en powershell

Deberíamos usar # 608 para rastrear problemas de titulación de pestañas. ¡Gracias!

Tenga en cuenta que también puede establecer el título desde la línea de comando con title "new title" en cmd y $Host.UI.RawUI.WindowTitle = "new title" en powershell

¡Muy útil! Agregué una función a mi perfil de Powershell para permitirme configurarlo más fácilmente:

function Set-Title {
    param(
        [string]
        $title
    )
    $Host.UI.RawUI.WindowTitle = $title   
}

Tenga en cuenta que también puede establecer el título desde la línea de comando con title "new title" en cmd y $Host.UI.RawUI.WindowTitle = "new title" en powershell

Al ejecutar tareas npm, como npm run serve , el título se convertirá en npm .

Una forma sencilla de establecer un nombre para las pestañas abiertas contribuiría en gran medida a que sea aún más útil. Con varias pestañas de PowerShell abiertas, me resulta difícil saber en cuál estoy tratando de trabajar.

@greggbjensen solo usa una función o alias como el comentario de tvsbrent anterior

@ phuclv90 un clic derecho para establecer rápidamente el nombre sería mucho más rápido y sencillo. Parece necesario si planeas tener muchas pestañas. La capacidad de configurar los colores de las pestañas también sería una buena adición.

Sería realmente bueno poder cambiar el nombre de las pestañas simplemente haciendo doble clic en ellas y estableciendo un nuevo título en algún tipo de cuadro de texto. Este nombre reemplaza el título original y permanece hasta que se cierra la pestaña o se le cambia el nombre nuevamente.

Publicado originalmente por @ Vasiliy-Bondarenko en # 3387

Permita cambiar el nombre de la pestaña con un nombre descriptivo fácilmente desde la interfaz de usuario, esta es una función que estoy usando constantemente con ConEmu y una de las razones por las que no cambio a Windows Terminal todavía, ya que no es lo suficientemente práctico cuando tiene muchos "well Se abrieron pestañas "conocidas, pero no puedo resolver esto fácilmente en la Terminal de Windows.

Acabo de descubrir que al menos puedo solucionar el título en WSL con una función agregada a .bashrc que se puede llamar desde el indicador, por ejemplo, title "my title" :

title() {
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}$1\a\]\[\033[01;34m\]\w\[\033[00m\]> "
}

En realidad, esa no es una solución alternativa, es la mejor y más flexible y sólida forma de establecer el título de casi cualquier ventana de terminal. Puede ser dinámico, funciona a través de SSH y puede incorporar elementos que solo están disponibles en el host remoto.

Modifiqué la solución publicada por

title() {
    PS1="\[\e]0;$* \a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
}

Se ve un poco feo, pero si lo pones en tu ~/.bashrc , podrás llamar a title <title_text> y establecerá el título de la pestaña / ventana, pero no afectará el mensaje predeterminado.

En iTerm en Mac puedo hacer esto y es realmente útil. También puedo establecer el color de la pestaña, lo cual es bastante bueno.

Uso casi exclusivamente Ubuntu WSL en Windows Terminal, y todas mis pestañas muestran " myname @ mycomputer / c / g " donde "g" es la primera letra del directorio raíz donde están todos mis proyectos. Es completamente inútil para mí. No hay duda de que hay alguna forma de cambiarlo, pero una forma fácil de usar estaría bien.

:))) Estoy usando WSL. Quiero cambiar el nombre de la pestaña "mi monitor", usé: "mi monitor; fuente run.sh"

La estrategia de @quanticle anterior es excelente para terminales locales, pero tan pronto como ingresa a un servidor diferente, reinicia PS1 y pierde su título. Por lo que sería muy bueno poder establecer una etiqueta persistente.

La estrategia de @quanticle anterior es excelente para terminales locales, pero tan pronto como ingresa a un servidor diferente, reinicia PS1 y pierde su título. Por lo que sería muy bueno poder establecer una etiqueta persistente.

Para ser justos, la solución @quanticle 's se _even mejor (!) _ Si lo configura en el servidor remoto, así! De esa manera, el título de la ventana puede reflejar _a qué servidor está accediendo actualmente_, y el shell puede ingresar cualquier información dinámica que sea pertinente a una sesión remota. Eso es algo que una anulación del título de la pestaña local _nunca_ podrá lograr, incluso si se implementó perfectamente.

@ DHowett-MSFT Eso sería cierto si quisieras que el título reflejara "en qué servidor estás", pero no necesariamente si quisieras que el título reflejara algo así como una "tarea". Entonces, podría estar usando los mismos servidores, pero para distintas tareas, y quiero mantener esas tareas en diferentes pestañas de terminal ... y quiero que el nombre persista mientras cambio de un servidor a otro en esas pestañas ...

Ahora, esta es la última y única razón por la que no puedo elegir wt como herramienta de terminal principal en Windows.
:(

Es por eso que Windows Terminal tampoco es útil para mí, termino con muchas pestañas llamadas nodo y no puedo cambiarlas (incluso después de intentar cambiar a través del json y usar title y otras soluciones).

Termino con muchas pestañas llamadas nodo,

Bien, ese es un ejemplo bastante bueno de un escenario que _necesita_ esto, y simplemente configurar el título desde el shell no lo arreglará. ¡Gracias por la respuesta!

Esto podría ayudar:

set PROMPT=$e]0;$p$e$p$g

https://github.com/microsoft/terminal/issues/2304#issuecomment -528319270

Para mí, esta tarea es la paridad con cmder / etc. A menudo tengo varios proyectos abiertos en una carpeta bin o algo similar, por lo que sería útil poder aplicar etiquetas personalizadas.

Otro caso de uso sería interactuar a través de SSH para obtener nombres de las variables de entorno de Linux y combinarlos con la última parte de la ruta del directorio, ejemplo de nombre de pestaña:
$PROJECTROOT $CONFIG src/path/to/dir
(y luego recortar el comienzo de la ruta, saber que mi directorio está en algún lugar debajo de / user / username es menos útil que conocer el final de la ruta)

Esto también debería ser configurable desde la línea de comandos.

Entonces, cuando estamos haciendo algo como:

wt.exe -p "perfil1"

Deberíamos poder agregar un argumento que especifique el nombre de la pestaña, como:

wt.exe - "perfil1" -nombre "nombre de la pestaña 1"

Por supuesto, esto también funcionaría con cada "nueva pestaña" en la línea de comandos.

Gracias.

@mfeemster ¡ gracias por la sugerencia! Lo agregué a la mega lista de trabajo que estamos rastreando para los argumentos de la línea de comandos en # 4632:

  • [] Agregue soporte para -t,--title title para establecer el título inicial de una nueva sesión de terminal (agregar a terminal_parameters )

por cierto, si agrega esta función, también se debe considerar el ancho de la pestaña de la ventana.
el ancho fijo ya que 16 caracteres desperdicia demasiado espacio para el nombre corto, también oculta información importante para el nombre largo.

Yo sugiero :

  • el ancho de la pestaña debe ser de 4 a 24 caracteres, ajuste automático por nombre de pestaña.
  • y elimine los espacios en blanco de la cabeza / cola.
  • si no se establece ningún icono, elimine el espacio también.
  • agregue una opción de configuración para deshabilitar el botón de cierre "X". solo admite el cierre del menú contextual.

putty-tab
Ahorre más espacio para la información real. 😃

@fanlix , le alegrará saber que sus solicitudes ya están siendo rastreadas en gran medida por

  • # 597 - Más opciones de tamaño de pestaña más allá de solo equal y sizeToContent
  • # 3327 - Opciones de temática, incluida la eliminación de la 'X'

Tenga en cuenta que también puede establecer el título desde la línea de comando con title "new title" en cmd y $Host.UI.RawUI.WindowTitle = "new title" en powershell

Esto es solo para cambiar el nombre de la consola.
Pero el objetivo de esta solicitud original es cambiar el nombre de las pestañas dentro de la consola.
Por favor tenga esto en cuenta :)

Esto es solo para cambiar el nombre de la consola.
Pero el objetivo de esta solicitud original es cambiar el nombre de las pestañas dentro de la consola.
Por favor tenga esto en cuenta :)

Debe saber que al cambiar el título de "la consola", cuando la consola está alojada en una pestaña, _cambia el título de la pestaña_. :sonrisa:

Debe saber que al cambiar el título de "la consola", cuando la consola está alojada en una pestaña, _cambia el título de la pestaña_. 😄

Sí, tiene usted razón. :-)
No noté la forma en que se implementó esto porque también cambia el nombre de la consola ...

De hecho, el nombre de la pestaña en la que se centra actualmente se convierte en el título de la consola en la barra de tareas.
Y como consecuencia, si trabajas con varias consolas en paralelo (dedicadas a varias tareas con diferentes listas de pestañas remotas), los nombres de las consolas no son estables y tienes que buscar de nuevo: "¿En qué consola está mi pestaña?"

En ISE esto está separado.
Tienes el nombre de la consola en la barra de tareas:

$Host.UI.RawUI.WindowTitle = "new title"

y para los nombres de las pestañas dentro de la consola tienes:

$psISE.CurrentPowerShellTab.DisplayName = "tab title"

Un problema con $Host.UI.RawUI.WindowTitle = "new title" es que si ejecuto npm run dev , el título de la pestaña cambia a npm

Cmder lo hace bien.

Esta es la idea perfecta para mi rastreador de productividad que usa nombres de pestañas. Sería genial automatizarlo en tiempo de ejecución. Mi trabajo en torno a:
(Recibo una actualización cada vez que borro la consola, lo cual es mucho 😝

## UI
    $pIcon = "💥"
    $tIcon = "😍"
      function trloc ($pth){
        $pwd -replace [regex]::Escape($HomeDir), $pth
      }

  # Comand line
    function prompt {
      (trloc($pIcon)) + "💁‍"
    }

  # Tab - Window - Title - Name as actual path (Shorted because I'am using ManicTime to track my productivity)
    function tabName { $Host.UI.RawUI.WindowTitle = trloc($tIcon) }
    function c { tabName; Clear-Host }

Esta es la idea perfecta para mi rastreador de productividad que usa nombres de pestañas. Sería genial automatizarlo en tiempo de ejecución. Mi trabajo en torno a:
(Recibo una actualización cada vez que borro la consola, lo cual es mucho 😝

## UI
    $pIcon = "💥"
    $tIcon = "😍"
      function trloc ($pth){
        $pwd -replace [regex]::Escape($HomeDir), $pth
      }

  # Comand line
    function prompt {
      (trloc($pIcon)) + "💁‍"
    }

  # Tab - Window - Title - Name as actual path (Shorted because I'am using ManicTime to track my productivity)
    function tabName { $Host.UI.RawUI.WindowTitle = trloc($tIcon) }
    function c { tabName; Clear-Host }

Hola. Por favor, ¿qué rastreador usas?

Hola. Por favor, ¿qué rastreador usas?

ManicTime
Ahora en Linux está ActivityWatcher, también está bien, espero que crezca más rápido :)

El powershell solo ayuda si eso es lo que estás ejecutando. Al ejecutar terminales ssh con openssh, sería bueno cambiar el nombre de las pestañas para saber en qué host estoy. Recoge el primer host al que va y luego eso es lo que muestra, pero si cambia de servidor, no se actualiza. Me encantaría hacer clic con el botón derecho para cambiar el nombre de la opción, o incluso alguna variable de entorno que pueda configurar para que la recoja.

Quiero decir, eso es solo algo que puede configurar en esos servidores. :)

Dices eso cuando hablamos de más de 1000 servidores. Estoy probando esto en xshell, y tengo un host de bastión desde el que salto y busco una manera fácil de realizar un seguimiento del nombre del servidor. Con xshell, esto se hace con secuencias de comandos que utilizo para configurarlo internamente.

También estoy jugando con printf \033]0; y parece que estoy haciendo lo que necesito.

: tada: este problema se abordó en # 5775, que ahora se ha publicado con éxito como Windows Terminal Preview v1.1.1671.0 .: tada:

Enlaces útiles:

Wow .. Felicitaciones equipo: D Disculpas, no participé mucho en el hilo .. pero lo estaba siguiendo de cerca. Me dio una gran idea de cómo Microsoft planea las características ... Siempre he confiado en Microsoft ... pero este proceso me ha dado una especie de seguridad de que las características están pensadas en detalle ... y con una calidad en mente ... característica pequeña como esta cómo se puede convertir en una gran característica es lo que realmente enseña este hilo.

Sí, felicitaciones al equipo.

Todavía me pierdo una cosa, poder hacer doble clic en la pestaña para cambiarle el nombre, ¿está planificada esa función?

Necesita poder establecer un enlace de teclas para el cambio de nombre de la pestaña (¿F2 por defecto tendría sentido?)

@Inrego Puede simplemente hacer clic derecho en la pestaña para cambiarle el nombre. Los atajos de KB me parecen algo necesario para las acciones que realiza con frecuencia, por lo que no desea usar el mouse. Pero, ¿con qué frecuencia realmente cambia el nombre de una pestaña mientras trabaja? Creo que el menú del botón derecho es suficiente. Solo mis 2 centavos.

@mfeemster, una aplicación de consola me parece algo que no debería requerir un mouse para funcionar.

Además de eso, me gustaría automatizar las pestañas de nombres en mi administrador de contraseñas al iniciar sesión en un servidor.
Por ahora, lo he solucionado usando la paleta de comandos para abrir una nueva pestaña con el nombre deseado. pero no es lo ideal.

Hay un atajo de KB para abrir una nueva pestaña. Yo diría que cambiar el nombre de una pestaña podría ser una acción que se realiza con más frecuencia que abrir una pestaña. O también hay un atajo de KB para cerrar todas las pestañas. También es una acción que se realiza con menos frecuencia. El hecho de que rara vez cambie el nombre de una pestaña no significa que pueda asumir que es una acción poco común para todos. Lo que estoy tratando de decir, realmente no debería ser la razón para implementarlo o no, ya que es muy subjetivo y varía de persona a persona.

Necesita poder establecer un enlace de teclas para el cambio de nombre de la pestaña (¿F2 por defecto tendría sentido?)

Puede hacer esto con un enlace de teclas por renameTab , pero ahora solo puede codificar un título. Hay un PR abierto (# 7462) que agrega openTabRenamer . Necesitamos regresar a ese PR abierto.

Eso es exactamente lo que necesito, gracias. Seguiré ese PR

¿Fue útil esta página
0 / 5 - 0 calificaciones