Terminal: Solicitud de función: tecla de acceso rápido desplegable ala quake / guake / tilda

Creado en 10 may. 2019  ·  106Comentarios  ·  Fuente: microsoft/terminal

La pequeña cosa que más extraño cuando aparezco en Windows es tener una terminal de teclas de acceso rápido separada para cada uno de mis tres monitores. Lo más cerca que he estado de creer en Dios fue cuando me di cuenta de que se podía obtener y si podía hacer que eso sucediera en Windows, podría tener que besarte.

Area-User Interface Help Wanted Issue-Feature Product-Terminal

Comentario más útil

El modo Quake sería un requisito para cambiar de ConEmu. Sin embargo, preferiría que siempre abra la misma instancia, independientemente del monitor / escritorio virtual que esté actualmente en foco.

Personalmente uso win + tilde para abrir ConEmu, pero obviamente el acceso directo debería ser configurable.

Todos 106 comentarios

Entonces, ¿quiere decir que si tiene tres monitores (por ejemplo), podría presionar una tecla de acceso rápido diferente para hacer que el terminal se deslice hacia abajo al estilo de la consola Quake desde cualquier monitor que elija?

Entonces, ¿quiere decir que si tiene tres monitores (por ejemplo), podría presionar una tecla de acceso rápido diferente para hacer que el terminal se deslice hacia abajo al estilo de la consola Quake desde cualquier monitor que elija?

Exactamente. Sé que parece un poco extravagante / innecesario / engañoso para lo que se supone que es un terminal convencional muy utilizado, pero les prometo que la productividad es lo que realmente hace brillar los menús desplegables de teclas de acceso rápido.

Idealmente, cada monitor tiene su propio terminal que se puede mantener abierto simultáneamente con los demás.
En nix, usando 3 instancias de Tilda, lo tengo configurado para que f1 caiga, cierre o seleccione si está abierto pero no activo el monitor izquierdo. F2 hace mi pantalla central y f3 hace mi derecha. Puedo usar estas teclas de acceso rápido para saltar entre estos tres terminales si también están abiertos. El resultado final hace que moverse entre terminales y otras aplicaciones en segundo plano sea un sueño de flujo de trabajo. También se ve bastante genial si lo digo yo mismo.

Guake, otra alternativa que me gusta está limitada a solo una ventana / instancia a la vez y simplemente se despliega en cualquier monitor en el que se encuentre actualmente el mouse en el momento en que se presiona la tecla de acceso rápido. Esta también es una característica muy interesante, pero no es lo que estoy buscando. No me opondría a una elección de comportamiento, pero las líneas de código no crecen en los árboles, por lo que prefiero el diseño de tilda.

Realmente estamos malcriados en cuanto a terminales en el lado nix de las cosas y eso es lo que hace que Microsoft se esfuerce por construir una nueva terminal más avanzada rica en funciones tan emocionante. Realmente parece que Microsoft está luchando por el tiempo que los desarrolladores y futuros desarrolladores (estudiante aquí) dedican a su sistema operativo y si emparejas WSL2 con un terminal desplegable, sé con certeza que pasaría mucho menos tiempo reiniciando y adelante entre Mint y 10.

El modo Quake sería un requisito para cambiar de ConEmu. Sin embargo, preferiría que siempre abra la misma instancia, independientemente del monitor / escritorio virtual que esté actualmente en foco.

Personalmente uso win + tilde para abrir ConEmu, pero obviamente el acceso directo debería ser configurable.

Sí, una instancia bajando, debería caer en el monitor donde está el cursor del mouse, y debería enfocarse, pero no debería aparecer cuando estás haciendo Alt + Tab, por lo que se siente como si estuviera integrado en el sistema operativo. Como guake.

@cyberhck, ¿estás seguro de que debería estar donde está el mouse y no donde está la ventana actualmente enfocada?

@Jaykul
El comportamiento predeterminado de Guake es tal que la tecla de acceso rápido activa el terminal en cualquier monitor que el mouse resida actualmente como lo describió Cyberhck. También tiene la opción de asignarle un monitor específico si así lo desea. Está limitado solo en que solo se puede ejecutar una instancia a la vez, algo con lo que Windows Terminal no tiene problemas. Si Windows Terminal pudiera configurarse de la forma en que guake es con la opción entre comportamiento estático o de seguimiento, todo lo que necesitaría es una configuración independiente por instancia para que coincida con la funcionalidad de guake (seguimiento o estático) y tilda (múltiples instancias).

Sí, podríamos tener una configuración de 3 vías, una en un monitor específico, otra en cualquier ventana que esté enfocada y una en la que esté presente el mouse (también es muy importante tener una opción para esconderse de la lista de aplicaciones (alt + tab) si este modo está habilitado, porque imagino que los usuarios no querrán ver eso mientras cambian entre IDE y navegador)

:)

@Jakul , la razón por la que digo dónde está presente el mouse es porque cuando estás navegando por algo, es probable que el mouse siempre esté frente a tus ojos, y si estás usando teclas cortas, es muy fácil cambiar tus ojos. que tener que mover el mouse hasta el final.

+1

No responda a los hilos con un "+1" sin proporcionar comentarios adicionales útiles. Github tiene un +1 perfectamente bueno que no hace ping a todos en la bandeja de entrada del hilo aquí mismo:
image

Entonces, ¿quiere decir que si tiene tres monitores (por ejemplo), podría presionar una tecla de acceso rápido diferente para hacer que el terminal se deslice hacia abajo al estilo de la consola Quake desde cualquier monitor que elija?

El comportamiento predeterminado en varios monitores para Guake es donde esté el mouse, es donde se despliega el terminal.

Sin embargo, puede configurarlo para que se despliegue en el monitor que desee a través de la configuración si no desea este comportamiento.

Lo que necesito con esto es la capacidad de deshabilitar la animación y ocultar la ventana por completo (desde la barra de tareas, alt + tab, win + tab, etc.)

Yo también desearía la opción adicional para no mostrar nunca el botón de la barra de tareas, pero podría estar fuera del alcance de este problema

Me encanta la propuesta, y es lo único que evitaría usarla a diario (una vez lanzada). Me encanta usar ctrl + `en ConEmu y ni siquiera uso el terminal integrado VSCode por eso. Sin embargo, no estoy seguro de si me importa mucho la vinculación de teclas por idea de monitor.

Además, ¿esta propuesta incluiría iniciar una instancia del terminal si no se estuviera ejecutando ninguno, similar a otros términos de Linux como el menú desplegable del terminal xfce con acceso directo a la aplicación ? No me importaría si fuera Win + `como un acceso directo al sistema, similar a Win + \

Eso sería factible con un acceso directo existente en algún lugar con una tecla de acceso rápido global vinculada a él y ese acceso directo usando CLI para llamar a alternar si alguna instancia ya se está ejecutando. Hacerlo una tecla de acceso rápido en todo el sistema parece una mala idea en mi opinión

Consideraría desarrollar más en Windows (actualmente el 95% se hace en Linux) si tuviera una terminal que pudiera desplegarse como guake.

También uso principalmente cmder / conemu en Windows y esta es también la razón principal por la que no estoy cambiando todavía, especialmente porque estoy usando dos monitores y (generalmente) 3 computadoras de escritorio, sin una forma global de simplemente llamar al terminal I esencialmente tiene 6 lugares donde podría estar la ventana real, suena tonto, pero es molesto.

Además, muchos de ustedes mencionan el uso de un atajo de teclado para esto, pero todos deberían considerar mapearlo también en un botón dedicado del mouse y, si es posible, hacer un gesto. Agradéceme después.

Me alegra ver que otras personas están entusiasmadas con la idea de un terminal desplegable configurable. Está claro que las personas tienen preferencias muy distintas sobre cómo se comportan estos menús desplegables de forma predeterminada, pero creen que la preferencia de la mayoría de todos es posible siempre que

  1. Cada instancia se puede configurar para seguir con el mouse o vincularse a un monitor.
  2. Cada instancia puede tener su propia tecla de acceso rápido.

Entonces no importa lo que te guste, está dentro del ámbito de las posibilidades configurables.

Yo personalmente uso una combinación de quake y tilda para tener una terminal vinculada a cada pantalla y otra que sigue al mouse.

@NOFUNEVER tienes la mayor parte de lo que la gente está pidiendo correctamente, pero @cyberhck y @zakius identificaron un par de otras características que podrían ser importantes:

  • Agregue el foco de la ventana a la lista de opciones de configuración, además de supervisar el enlace / seguimiento del mouse.
  • ¿Debería tener una opción configurable para no mostrar en alt-tab / barra de tareas?

Parece que todavía hay una discusión si esto debería tener múltiples instancias, como tilda (que nunca he usado y no puedo comentar), o una sola instancia, como Guake. ¿Me estoy perdiendo algo más? Si no es así, deberíamos resolver esa cuestión y avanzar hacia la redacción de una especificación.

( @zakius , también mencionaste el deseo de deshabilitar la animación desplegable. ¿Razón? No veo nada malo en eso, pero una justificación ayudaría).

No me gustan las animaciones en general, ya que me roban la atención (si algo te mueve instintivamente, míralo, en el pasado podría salvarte la vida). Pero también hay lo que yo llamo blocking animations , los que tienes que esperar antes de poder actuar, lo que te impide leer el texto o emitir comandos de entrada. Estos son aún más perturbadores para el flujo de trabajo, ya que no tiene más remedio que esperar, algunos de ellos fueron diseñados para marcar una ejecución lenta, pero en máquinas rápidas lo ralentizan.

El mejor enfoque sería poder elegir el tiempo de animación con 0 deshabilitándolo por completo

no queremos animaciones como mac que es demasiado lenta, pero guake termina su animación en menos de 100ms, creo, así que es rápido, tal vez el retraso también puede ser una configuración, 0 para ninguna animación. La animación de Guake parece "perfecta", es muy rápida, pero puedes ver de dónde viene o hacia dónde va.

Agregar configuración sería increíble, ya que alguien a quien no le gusta la animación puede deshabilitarla, o convertirla en una animación lenta como Mac, solo haría 80ms o 120ms.

Ah, cómo desearía que ConEmu fuera una solución para mí, no funciona para todos, está construido sobre Hotkey, y cualquier cosa encima de Hotkey se detecta como troyano (falsa alarma).

Mucha gente está usando el terminal para trabajar y su trabajo no les permite instalar algo que se detecta como un troyano. (igual que Qonsole) https://github.com/joedf/Qonsole/issues/9

Otra cosa importante a considerar al implementar esto es que el menú desplegable debería aparecer en el escritorio virtual actualmente activo. Uso mucho los escritorios virtuales. Cuando comencé a usar ConEmu, descubrí que el terminal desplegable siempre me devolvía al escritorio 1 y luego mostraba el menú desplegable. Finalmente encontré la configuración para que funcione como se esperaba en ConEmu, y es fundamental que Windows Terminal se comporte de la misma manera.

Sí, eso debería haber sido obvio en realidad: D imagina presionando la tecla de acceso rápido y el terminal apareciendo en el primero cuando estás en otro espacio de trabajo.

Entonces, hasta que nuestros señores supremos agreguen esto a la terminal, he inventado una pieza simple de C # que me arregla esto mientras tanto: https://github.com/flyingpie/windows-terminal-quake.

Hace un menú desplegable de estilo Quake usando CTRL + ~ y CTRL + Q, que es totalmente modificable, por supuesto. Actualmente, se despliega a pantalla completa y aparece en la pantalla + espacio de trabajo donde está el mouse.

Si alguien se siente atraído, estoy abierto a sugerencias y / o relaciones públicas.

@flyingpie Ese es un código bastante bueno que tienes allí. Parece que la mayor parte también funcionaría en c ++, así que es bueno saberlo.

Solo quiero reiterar que, si bien nadie en el equipo va a tener los ciclos para hacer esto para 1.0, estaríamos muy felices de revisar una contribución de la comunidad. Idealmente, alguien de la comunidad podría recopilar las sugerencias y comentarios de este hilo en la Plantilla de especificaciones y enviar un PR para esa especificación. Una vez que se apruebe esa especificación, con gusto revisaremos un PR con el cambio de código necesario. Me parece que @flyingpie realmente tiene el 90% de los conceptos básicos, principalmente sería pulir los casos

Tengo un caso de uso similar. No uso el estilo Quake, pero me gusta mucho la terminal siempre abierta.

Mi configuración de ConEmu hace lo siguiente que wt.exe parece faltar hasta ahora (en orden aproximado de importancia):

  1. Mi ConEmu literalmente no se cierra excepto cuando se apaga o cuando se le pide explícitamente. Si cierro la última pestaña, todavía está abierta sin pestañas.
  2. Se lanza a la misma ubicación cada vez. (0,0) en mi segundo monitor.
  3. Tengo una tecla de acceso rápido global para alternar el enfoque (ctrl + `).
  4. No aparece en la barra de tareas. Tiene un icono de bandeja.
  5. Solo puede iniciar una instancia de él.
  6. Se inicia automáticamente al iniciar sesión en Windows. (importante para lo siguiente)
  7. Es el terminal predeterminado, que consume automáticamente otros terminales (IE, si 'Ejecuto' wt.exe, luego ejecuto cmd.exe, esperaría que wt.exe simplemente abriera una nueva pestaña con la nueva pestaña cmd.exe) *

Todos esos son aproximadamente bloqueadores para que cambie a wt.exe desde ConEmu.

Adicionalmente:

  • Algunas personas querrían estar siempre arriba.
  • Algunas personas quieren minimizar la pérdida de enfoque, y esas personas generalmente quieren deshabilitar la animación de minimización / maximización.
  • Algunos quieren que el terminal salte a su monitor "activo" al enfocarse.
  • ¿Algunos quieren múltiples instancias de terminal? *

Todas estas son características diferentes que deberían tener sus propias especificaciones, en mi opinión. Estoy dispuesto a conducir parte de este proceso de especificaciones. @ zadjii-msft ¿Conoce alguno de estos puntos que ya tienen especificaciones, que no se cumplirán por alguna razón, etc.?

* ¿Difícil?

Así que ha enumerado una serie de problemas separados, déjeme ver si puedo vincularlos todos:

  1. # 2080 es la especificación WIP para esta función, que se convertirá en una especificación masiva cuando esté lista.
  2. # 1043 probablemente no necesita una especificación TBH, solo necesita a alguien para hacer el trabajo
  3. # 653 (este número)
  4. Francamente, no he escuchado la solicitud de no tenerlo en la barra de tareas antes. Entonces eso definitivamente no tiene su propio problema. Tener un icono de bandeja parece necesario para no tener un icono de barra de tareas, por lo que probablemente podrían ser una sola especificación / tarea
  5. Esto cae bajo el # 2080
  6. N.º 2189
  7. # 492 está rastreando esto, pero probablemente requerirá algunos cambios en el sistema operativo. Esto también aparece con frecuencia en el n. ° 2080.
  8. Podría haber jurado que esto tenía su propio problema, pero parece que no es así.
  9. Nunca escuché esta solicitud antes, pero me suena genial
  10. Parece vagamente similar a esta característica TBH. ¿Quizás deberíamos considerar ambos escenarios en esta especificación?
  11. No estoy seguro de lo que quiere decir en este punto, ¿se refiere a paneles, como el # 1000?

De esos, los números 1043, 653 y 2189 están marcados como "Se busca ayuda" 😉

Mencioné 4. antes, y para asegurarme de que Terminal no aparezca en Alt + Tab ni Win + Tab cuando la ventana está oculta

múltiples instancias significa múltiples ventanas que pueden, pero no tienen que estar distribuidas en múltiples pantallas o escritorios virtuales, supongo, pero eso haría que el manejo de teclas de acceso rápido globales sea mucho más complejo o incluso imposible (creo que conemu deshabilita múltiples instancias al habilitar el modo de terremoto)

Para 11 / "múltiples instancias significa múltiples ventanas", me refiero específicamente a lo que el OP describe aquí: https://github.com/microsoft/terminal/issues/653#issuecomment -491389892

Eso no me importa particularmente, pero es un tema relacionado aparte. Supongo que quieren múltiples teclas de acceso rápido globales para abrir / activar / enfocar múltiples instancias de la misma manera que quiero una tecla de acceso rápido para el elemento n. ° 3 de mi lista.

@zakius

Mencioné 4. antes, y para asegurarme de que Terminal no aparezca en Alt + Tab ni Win + Tab cuando la ventana está oculta

múltiples instancias significa múltiples ventanas que pueden, pero no tienen que estar distribuidas en múltiples pantallas o escritorios virtuales, supongo, pero eso haría que el manejo de teclas de acceso rápido globales sea mucho más complejo o incluso imposible (creo que conemu deshabilita múltiples instancias al habilitar el modo de terremoto)

Varias instancias deshabilitadas es lo que sucede en ConEmu cuando se usa el menú desplegable de terremotos.
Es casi imposible manejar ese comportamiento de una manera lógica; debe utilizar sus pestañas o usar un multiplexor de terminal si desea algo así como varias instancias CON el menú desplegable de terremotos.

EDITAR:
Posiblemente podría trabajar en algo donde la primera ventana de terminal abierta es la maestra y esta es la ventana que siempre se llama cuando se usa la tecla de acceso rápido de Quake.

Podría ser complicado trabajar con el soporte de pestañas, que tal vez sea la razón por la que ningún otro terminal que conozca admite ese comportamiento. También hay algunos casos extremos a considerar en ese escenario, como lo que sucede si cierra la ventana principal principal y hay una ventana secundaria aún abierta: ¿la tecla de acceso rápido continuaría ignorando esta ventana de terminal secundaria, etc.

Para ConEmu, cuando Quake está habilitado e intenta abrir ConEmu nuevamente (digamos desde el acceso directo del escritorio), no abrirá una nueva ventana, en su lugar, solo enfocará la terminal en ejecución existente.

Posiblemente podría trabajar en algo donde la primera ventana de terminal abierta es la maestra y esta es la ventana que siempre se llama cuando se usa la tecla de acceso rápido de Quake.

También existe la posibilidad de permitir ejecutar una sola instancia por pantalla física por escritorio virtual y de esta manera la tecla de acceso rápido principal siempre mostraría la instancia en su VD y pantalla activos actuales, pero eso es bastante complicado, creo que deshabilitar múltiples instancias es razonable

Creo que se pueden ignorar varias instancias si se siguen mejorando las pestañas y se puede llamar a la ventana de estilo terremoto desde cualquier lugar. Por ahora.

También existe la posibilidad de permitir ejecutar una sola instancia por pantalla física por escritorio virtual y de esta manera la tecla de acceso rápido principal siempre mostraría la instancia en su VD y pantalla activos actuales, pero eso es bastante complicado, creo que deshabilitar múltiples instancias es razonable

No ignoraría por completo varias instancias; a veces es muy útil tener abierto un terminal en una pantalla que transmite registros o muestra la carga del sistema mientras se trabaja dentro de otro terminal en una pantalla adyacente.

Anteriormente he estado usando el escritorio de Ubuntu durante los últimos años (acabo de volver a Windows desde WSL v2) y dado que Guake y el terminal de Ubuntu son muy similares en términos de capacidad de respuesta, diseño de interfaz de usuario / temas, etc., a menudo tenía abierto el terminal predeterminado de Ubuntu. en mi pantalla vertical viendo los registros y la carga del sistema.

Obviamente, esa es la forma más fácil de solucionar el problema si se deshabilitan varias instancias con el menú desplegable: use una terminal diferente.
El problema es que la mayoría de los terminales en Windows son basura completa (de ahí este proyecto de c).

las instancias adicionales fueron con varios monitores en mente cuando sugerí
eso. Uno por monitor, cada uno con su propia tecla de acceso rápido. Yo uso un retrato de paisaje
retrato configurado en casa y mientras se ejecuta menta tener guake corriendo en el
center pero no ofrece las instancias adicionales que tiene tilda, así que lo uso en
los monitores de retratos exteriores.

El lunes, 16 de septiembre de 2019 a las 2:00 p.m., nofunatall [email protected] escribió:

también existe la posibilidad de permitir ejecutar una sola instancia por
pantalla física por escritorio virtual y de esta manera la tecla de acceso rápido principal siempre
abre la instancia en tu VD y pantalla activos actuales, pero eso es
bastante complicado, creo que deshabilitar varias instancias es razonable

No ignoraría por completo varias instancias, a veces es muy útil
tener abierto un terminal en una pantalla que transmite registros o muestra el sistema
cargar mientras trabaja dentro de otro terminal en una pantalla adyacente.

Anteriormente he estado usando el escritorio de Ubuntu durante los últimos años (solo
volvió a Windows desde WSL v2) y desde Guake y la terminal de Ubuntu
son muy similares en términos de capacidad de respuesta, diseño / temas de la interfaz de usuario, etc.
tenía la terminal predeterminada de Ubuntu abierta en mi pantalla vertical viendo registros
y carga del sistema.

Obviamente, esa es la forma más sencilla de solucionar el problema si se
el menú desplegable está deshabilitado: use una terminal diferente.
El problema es que la mayoría de los terminales en Windows son basura completa (por lo tanto, esto
proyecto ofc).

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/microsoft/terminal/issues/653?email_source=notifications&email_token=ACAH5BIA5ZPETCBZK77LMVLQJ7XYVA5CNFSM4HL735C2YY3PNVWWK3TUL52HS4DFVREXWHJ3VMV53
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/ACAH5BM722EZEB5LQBXGW6TQJ7XYVANCNFSM4HL735CQ
.

Chicos, claramente tenemos dos problemas separados aquí. ¿Podríamos editar este para que sea solo sobre la tecla de acceso rápido "estilo Quake" (terminal global / única)?

Luego, un segundo problema, que sería bloqueado por este, para permitir la asignación de una tecla de acceso rápido dedicada "estilo Quake" a diferentes pantallas.

El primero parece ser más popular y deseado. Me encantaría ver el segundo también (idea genial @NOFUNEVER nunca pensó en tal característica, parece útil), pero sería bueno si pudiéramos aclarar un poco el tema.

El problema del OP es en realidad más del segundo, a pesar del nombre de este problema. Independientemente, creo que tener una tecla de acceso rápido abierta en una sola terminal está bloqueado en gran medida por # 2080. Realmente no podemos tener una tecla de acceso rápido para abrir una sola terminal hasta que podamos hacer cumplir una sola terminal.

https://github.com/microsoft/terminal/issues/653#issuecomment -520419611

Creo que este es el mejor desglose.

@rlabrecque Sí, sé que el problema original estaba relacionado con una solución más elegante, pero al mirar los comentarios, la mayoría de la gente expresó su deseo por el estilo "terremoto" solamente, y mucho menos la gente estaba interesada en teclas rápidas personalizadas para cualquier pantalla.

Es por eso que propuse convertir este problema en uno relacionado con el estilo de terremoto y extraer la solicitud de función de seguimiento a un problema separado donde también podremos rastrearlo.

Me parece que esto debe dividirse en varios problemas para cada una de las diversas funciones, comenzando con la función fundamental de tecla de acceso rápido para alternar la visibilidad. Eso se puede hacer sin ninguna de las otras funciones, ¿verdad?

Con múltiples problemas, sería mucho más fácil ver cuál era la demanda de cada giro particular en la receta y priorizar el desarrollo. Parece que la característica mínima viable eliminaría la picazón de muchas personas.

¿No es eso lo que describe el comentario https://github.com/microsoft/terminal/issues/653#issuecomment -520419611?

Para cualquiera que esté esperando que esto cambie de conemu (como yo), etc. Puede usar autohotkey y un elemento fijo de la barra de tareas como solución.

secuencia de comandos autohotkey:

^`::Send #5

Esto asignará ctrl + `a winkey + 5, cámbielo a sus necesidades.

la herramienta proporcionada por flyingpie es mucho mejor: no requiere fijación y oculta el botón de la barra de tareas por completo, tbh lo estoy usando con otra aplicación (ya que Terminal pierde algunas otras cosas también)

Llevando la solución AutoHotKey un poco más lejos:

#SC29::ToggleTerminal()

ShowAndPositionTerminal()
{
    WinShow ahk_class CASCADIA_HOSTING_WINDOW_CLASS
    WinActivate ahk_class CASCADIA_HOSTING_WINDOW_CLASS

    WinMove, ahk_class CASCADIA_HOSTING_WINDOW_CLASS,, -5, -10, A_ScreenWidth + 10, A_ScreenHeight * 0.7,
}

ToggleTerminal()
{
    WinMatcher := "ahk_class CASCADIA_HOSTING_WINDOW_CLASS"

    DetectHiddenWindows, On

    if WinExist(WinMatcher)
    ; Window Exists
    {
        DetectHiddenWindows, Off

        ; Check if its hidden
        if !WinExist(WinMatcher) || !WinActive(WinMatcher)
        {
            ShowAndPositionTerminal()
        }
        else if WinExist(WinMatcher)
        {
            ; Script sees it without detecting hidden windows, so..
            WinHide ahk_class CASCADIA_HOSTING_WINDOW_CLASS
            Send !{Esc}
        }
    }
    else
    {
        Run "c:\Users\kim\AppData\Local\Microsoft\WindowsApps\wt.exe"
        Sleep, 1000
        ShowAndPositionTerminal()
    }
}

Este script vincula win + ½ (en el teclado danés, el botón superior izquierdo debajo de escape) a una función que enfoca una instancia de terminal en ejecución, o inicia una nueva instancia si no se está ejecutando, y la cambia de tamaño y la coloca "correctamente". Si el terminal ya está enfocado, oculta la ventana (por lo que no aparece en alt + tab).

Actualicé un poco la solución

Puede encontrar el código en mi esencia aquí , o copiarlo directamente desde abajo:

; How much height of screen size the terminal window takes.
VRatio := 0.8
; The path to the Windows Terminal exe file.
WtPath = "%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe"

#SC29::ToggleTerminal()

ShowAndPositionTerminal()
{
    ScreenX := GetScreenLeft()
    ScreenY := GetScreenTop()
    ScreenWidth := GetScreenWidth()
    ScreenHeight := GetScreenHeight()
    global VRatio

    WinShow ahk_class CASCADIA_HOSTING_WINDOW_CLASS
    WinActivate ahk_class CASCADIA_HOSTING_WINDOW_CLASS

    WinMove, ahk_class CASCADIA_HOSTING_WINDOW_CLASS,, ScreenX-5, ScreenY-10, ScreenWidth+10, ScreenHeight * VRatio,
}

ToggleTerminal()
{
    WinMatcher := "ahk_class CASCADIA_HOSTING_WINDOW_CLASS"

    DetectHiddenWindows, On

    if WinExist(WinMatcher)
    ; Window Exists
    {
        DetectHiddenWindows, Off

        ; Check if its hidden
        if !WinExist(WinMatcher) || !WinActive(WinMatcher)
        {
            ShowAndPositionTerminal()
        }
        else if WinExist(WinMatcher)
        {
            ; Script sees it without detecting hidden windows, so..
            WinHide ahk_class CASCADIA_HOSTING_WINDOW_CLASS
            Send !{Esc}
        }
    }
    else
    {
        global WtPath
        Run %WtPath%
        Sleep, 1000
        ShowAndPositionTerminal()
    }
}

; Gets the edge that the taskbar is docked to.  Returns:
;   "top"
;   "right"
;   "bottom"
;   "left"
GetTaskbarEdge() {
  WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,

  if (TW = A_ScreenWidth) { ; Vertical Taskbar
    if (TY = 0) {
      return "top"
    } else {
      return "bottom"
    }
  } else { ; Horizontal Taskbar
    if (TX = 0) {
      return "left"
    } else {
      return "right"
    }
  }
}

GetScreenTop() {
  WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,
  TaskbarEdge := GetTaskbarEdge()

  if (TaskbarEdge = "top") {
    return TH
  } else {
    return 0
  }
}

GetScreenLeft() {
  WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,
  TaskbarEdge := GetTaskbarEdge()

  if (TaskbarEdge = "left") {
    return TW
  } else {
    return 0
  }
}

GetScreenWidth() {
  WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,
  TaskbarEdge := GetTaskbarEdge()

  if (TaskbarEdge = "top" or TaskbarEdge = "bottom") {
    return A_ScreenWidth
  } else {
    return A_ScreenWidth - TW
  }
}

GetScreenHeight() {
  WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,
  TaskbarEdge := GetTaskbarEdge()

  if (TaskbarEdge = "top" or TaskbarEdge = "bottom") {
    return A_ScreenHeight - TH
  } else {
    return A_ScreenHeight
  }
}

No quiero seguir desviando esta solicitud de función, pero quería compartir los cambios que hice en el trabajo que @kimbirkelund ya han hecho. Realmente nunca usé AHK antes, así que es bastante pirateado, pero en resumen, agregué un menú y un archivo de configuración para que pueda cambiar lo siguiente:

  • altura terminal
  • opacidad terminal
  • tipo y tamaño de fuente del terminal
  • esquema de colores

Todo esto sin recompilar el archivo o abrir el archivo JSON y editarlo manualmente. Guarda la configuración que no es profile.json (por ejemplo, el tamaño del terminal) en su propio archivo settings.ini en el mismo directorio. Feliz de aceptar cambios si alguien quiere contribuir. En algún momento también agregaré un creador de temas aquí, ya que fue un poco complicado convertir un tema de Monokai que estoy usando actualmente (en mi esencia, si alguien quiere descubrirlo). Aquí hay una pequeña vista previa del menú de configuración:

image

EDITAR: captura de pantalla actualizada

Puede obtener el código aquí: https://gist.github.com/alenbasic/004c5abeb4cc0e0b31b7681371d48898

Uno de los problemas de duplicados vinculados que se mencionan incluye la compatibilidad con el modo de control tmux, algo que actualmente solo es compatible con iTerm en Mac OS. Es una pieza de funcionalidad increíblemente poderosa, pero que yo sepa, todos los intentos de implementarlo en otras terminales murieron como una muerte silenciosa de bifurcaciones sin mantenimiento. Sería fantástico tenerlo fuera de Mac OS.

Seguí adelante y comencé un proyecto, básicamente por esta característica. https://github.com/dotjosh/WinTermPlus

@dotjosh ¡ Eso se ve genial! ¿Hay alguna razón por la que lo implementó como una herramienta independiente y no como un PR? ¿Cuánto esfuerzo sería fusionarlo?

@dotjosh ¡ Eso se ve genial! ¿Hay alguna razón por la que lo implementó como una herramienta independiente y no como un PR? ¿Cuánto esfuerzo sería fusionarlo?

Soy fuerte en C # / WPF y pude hacerlo rápidamente. Estaría dispuesto a ayudar a portarlo si estamos contentos con el comportamiento.

Honestamente, creo que se ve genial. Definitivamente estaría feliz de revisar ese PR.

Puede ser un poco complicado trasladar los bits de la bandeja de la barra de tareas al modelo más parecido a UWP que tenemos (probablemente necesitará modificar con el package.appxmanifest), aunque este tutorial se veía bien . Probablemente también tenga más sentido establecer la configuración del tamaño para abrir la ventana dentro de profiles.json , y tener el enlace definido allí también (incluso si en realidad no hace nada en la TerminalApp, ya que supongo que el enlace debería registrarse con el sistema operativo. Estoy seguro de que hay una manera de hacerlo en C ++, aunque no sé qué es 😄

Solo cito algo que dije antes:

Solo quiero reiterar que, si bien nadie en el equipo va a tener los ciclos para hacer esto para 1.0, estaríamos muy felices de revisar una contribución de la comunidad. Idealmente, alguien de la comunidad podría recopilar las sugerencias y comentarios de este hilo en la plantilla de especificaciones y enviar un PR para esa especificación. Una vez que se apruebe esa especificación, con gusto revisaremos un PR con el cambio de código necesario. Me parece que @flyingpie @dotjosh realmente tiene el 90% de los conceptos básicos, en su mayoría sería pulir los casos

Honestamente, no necesitamos que se complete _todo_ en la plantilla de especificaciones, solo me gustaría asegurarme de que cualquier contribución que aceptemos haya pensado en los casos extremos aquí y defina claramente el comportamiento para esos casos. A saber:

  • ¿Qué sucede cuando el usuario aún no tiene una instancia de Terminal abierta y presiona la tecla de acceso rápido global?
  • ¿Qué sucede cuando el usuario tiene varias ventanas de Terminal abiertas? Cual abre? ¿No sucede nada en ese caso?

    • Con varias ventanas de terminal abiertas y una terminal actualmente enfocada, ¿la tecla de acceso rápido global oculta la ventana activa o invoca una minimizada?

  • ¿Puede el usuario elegir que la ventana aparezca maximizada? ¿Pantalla completa?
  • ¿Qué sucede cuando el usuario aún no tiene una instancia de Terminal abierta y presiona la tecla de acceso rápido global?

Creo que depende de qué instancia de Terminal sea exactamente. Si la Terminal no se está ejecutando, no debería suceder nada. No creo que deba haber un servicio o algo que enganche eso. Si no quedan shells en Terminal, aún debería estar ejecutándose, esperando a que se abra un nuevo shell. Salir de Terminal debería ser más explícito.

  • ¿Qué sucede cuando el usuario tiene varias ventanas de Terminal abiertas? Cual abre? ¿No pasa nada en ese caso?
  • Con varias ventanas de terminal abiertas y una terminal actualmente enfocada, ¿la tecla de acceso rápido global oculta la ventana activa o invoca una minimizada?

Creo que la suposición general es que este modo solo permitiría una instancia de terminal. ¿Lanzar el ejecutable por segunda vez simplemente enfocaría el terminal, posiblemente lanzando un nuevo shell predeterminado en él? (Al igual que la función de las aplicaciones UWP. Abra Configuración, luego enfoque en otra cosa, luego abra Configuración nuevamente, solo una instancia).

  • ¿Puede el usuario elegir que la ventana aparezca maximizada? ¿Pantalla completa?

No veo por qué no si ambos son compatibles actualmente. 👍 La tecla de acceso rápido funcionaría aproximadamente igual que minimizar / restaurar desde minimizado en ambos casos.

¿Puedo sugerir comenzar con la experiencia del usuario de otros terminales populares y modificarla desde allí si no son óptimos?

  • ¿Qué sucede cuando el usuario aún no tiene una instancia de Terminal abierta y presiona la tecla de acceso rápido global?

Nada, porque el terminal no está funcionando. Además, la tecla de acceso rápido debe liberarse para que otros programas la utilicen en este caso. Así es como se comportan ConEmu y Terminator.

  • ¿Qué sucede cuando el usuario tiene varias ventanas de Terminal abiertas? Cual abre? ¿No pasa nada en ese caso?

Si la configuración de instancia única está activa: no puede haber varias ventanas abiertas.

Si la configuración de instancia única no está activa, Terminator envía el comando a todas las instancias y todas alternan estados. Ésta podría ser la solución más sencilla; No tiene mucho sentido usar el modo de terremoto con múltiples instancias y de esta manera los terminales no se quedarán atascados permanentemente en estado oculto (el terminador oculta la ventana de la barra de tareas en estado oculto).

ConEmu: habilitar el modo terremoto impone el modo de instancia única y desactiva la casilla de verificación. Esto tiene más sentido en cuanto al comportamiento, pero introduce más complejidad.

No creo que la ausencia del modo de instancia única (# 2227) deba interponerse en la implementación de esta funcionalidad.

  • Con varias ventanas de terminal abiertas y una terminal actualmente enfocada, ¿la tecla de acceso rápido global oculta la ventana activa o invoca una minimizada?

Vea arriba - ambos. Cambia sus estados.

  • ¿Puede el usuario elegir que la ventana aparezca maximizada? ¿Pantalla completa?

Tanto en ConEmu como en Terminator, esto no es relevante para el modo de terremoto, la ventana se restaura a cualquier estado en el que se encontraba antes de ocultarse. Si estaba en pantalla completa, se restaura a pantalla completa; lo mismo para las ventanas maximizadas y no maximizadas.

solo ser un poco quisquilloso: ninguno de los terminales populares usa la pantalla completa real (exclusiva), pero se puede renderizar sin bordes

y creo que es mucho mejor para el caso de uso

Desde el punto de vista del usuario, la principal diferencia entre "pantalla completa" y ventana maximizada parece ser que la "pantalla completa" cubre la barra de tareas.
-------- Mensaje original -------- De: zakius [email protected] Fecha: 15/11/2019 22:38 (GMT + 00: 00) Para: microsoft / terminal terminal @ noreply.github.com Cc: Igroeg Okiob [email protected] , comentario [email protected] Asunto: Re: [microsoft / terminal] Solicitud de función: tecla de acceso rápido desplegable ala
quake / guake / tilda (# 653) simplemente siendo un poco quisquilloso: ninguno de los terminales populares usa pantalla completa real (exclusiva) pero se puede renderizar sin bordes
y creo que es mucho mejor para el caso de uso

—Está recibiendo esto porque comentó. Responda a este correo electrónico directamente, véalo en GitHub o cancele la suscripción.
[
{
"@context": " http://schema.org ",
"@type": "Mensaje de correo electrónico",
"potencialAcción": {
"@type": "ViewAction",
"target": " https://github.com/microsoft/terminal/issues/653?email_source=notifications\u0026email_token = AB2TW7D3V347CBC62MCQ32TQT4QHVA5CNFSM4HL735C2YY3PNVWWK3TULBXH5WLVFVFMFVWWWWK3TULBXH5H5DWFV2,
"url": " https://github.com/microsoft/terminal/issues/653?email_source=notifications\u0026email_token = AB2TW7D3V347CBC62MCQ32TQT4QHVA5CNFSM4HL735C2YY3PNVWWK3TULDVH5H4DFV2, problema 55
"name": "Ver problema"
},
"description": "Ver este problema en GitHub",
"editor": {
"@type": "Organización",
"nombre": "GitHub",
"url": " https://github.com "
}
}
]

Una tecla de acceso rápido estilo consola Quake (ConEmu) es imprescindible. ¿Alguien ha podido conectar la Terminal a ConEmu?

@dotjosh ¡ Eso se ve genial! ¿Hay alguna razón por la que lo implementó como una herramienta independiente y no como un PR? ¿Cuánto esfuerzo sería fusionarlo?

Soy fuerte en C # / WPF y pude hacerlo rápidamente. Estaría dispuesto a ayudar a portarlo si estamos contentos con el comportamiento.

¡Estamos! ¿Podemos tener esta solicitud de extracción?

Quiero decir que me encanta lo que estás haciendo con la nueva Terminal. Y entiendo totalmente que no puedo acceder a una solicitud de función debido a otros tickets priorizados. Esto le pasa a todos los equipos, mi equipo tampoco es inmune a esto.

Pero tengo que decir que la falta de esta característica es la falla del PM y muestra que no comprenden completamente el impacto de esta característica en tantos usuarios. ¿Esto es qué, un puntero 2? ¿Quizas 3?

Esta es una característica de fruta madura que tiene un gran impacto. Me gusta que ustedes acepten relaciones públicas públicas, pero si el público no lo hace, tírelo a un sprint. Este boleto ha estado abierto durante un año.

Para algunas personas no es importante en absoluto, para otras es un factor decisivo, aunque podría vivir sin él gracias a algunas soluciones publicadas aquí, así que personalmente priorizaría las cosas que no se pueden complementar de ninguna manera como el # 574 (o probablemente muchos otros, ese es solo mi segundo factor decisivo)

Correcto. Estás hablando de cómo no hemos podido priorizar esto de manera adecuada, y aprecio que esta característica sea importante para ti. Sin embargo, me gustaría preguntar: con los cuatro ingenieros del equipo central, ¿cuál de las funciones completadas en los siguientes hitos (consulta con alcance, más funciones sueltas) deberíamos haber recortado para dejar espacio para la gestión de ventanas personalizada?

  • _ Funciones marcadas con arreglo a compromiso y cerradas _
  • accesibilidad
  • pestañas en la barra de título
  • paneles
  • validación de la configuración
  • detección de perfil
  • semántica de salida racionalizada
  • representación adecuada para ideogramas CJK
  • soporte de entrada para usuarios de teclados que no sean US-ANSI
  • cambio de tamaño que no borra tu historial
  • buscar
  • (podría continuar enumerando características aquí)

Puedo dedicar ingeniería a una, tal vez dos funciones por desarrollador por mes. Han pasado 10 meses, y en la mayor parte de ese tiempo hemos tenido un equipo de 2-3 en lugar de 4.

Si puede identificar cuáles de esas cosas que decidimos eran estacas de mesa sin las que deberíamos haber enviado, me alegra tener esa conversación con usted.

No estoy diciendo que esas características no sean importantes en absoluto. Mi punto es que esta es una fruta madura con casi 300 pulgares arriba, múltiples tickets duplicados creados al respecto y no es tan complicado como la mayoría de las otras funciones / correcciones de errores que ha enumerado.

No quiero menospreciar el trabajo que se está haciendo aquí, al contrario, creo que lo que ha logrado el equipo es increíble. Tanto el equipo como usted merecen crédito.

Tal vez fui un poco duro, así que me disculpo por eso. Pero sigo pensando que mi punto se mantiene. Depende de usted y del equipo decidir, por supuesto, solo mis dos centavos.

Si esta es una fruta tan fácil, entonces me complacerá revisar un RP de un miembro de la comunidad para abordar esta característica 😉. Tal como está actualmente, el equipo de desarrollo se encuentra en un sprint de congelación de funciones y corrección de errores / pulido durante los próximos meses. Ciertamente, revisaremos nuestra acumulación de tareas para comenzar una vez que llegue la versión 1.0, y quiero dejar en claro que el equipo entiende que esta es una pregunta popular.

fijarlo en la barra de tareas y usar Win + 1 para acceder a él está bien como solución alternativa (aunque ahora estoy usando el script kimbirkelund autohotkey de https://github.com/microsoft/terminal/issues/653#issuecomment-541408854). No creo que esto deba ser una prioridad.

¿Quizás alguien podría compilar el script de kimbirkelund o wizcas y proporcionar un binario para aquellos que no quieren instalar autohotkey?

hay soluciones mucho mejores que mantenerlo en la barra de tareas, qué es exactamente lo que queremos evitar, pero como dijiste, hay algunas, aunque es importante, está más abajo en la lista de prioridades que las cosas que no se pueden complementar con herramientas externas

Agregando mis dos centavos a la discusión, mi versión modificada del script AutoHotKey proporcionado por @kimbirkelund :

  • La tecla de acceso rápido es Ctrl + ~
  • La terminal está configurada para permanecer en la parte superior
  • Una cosa que pensé que podría ser útil fue esta: si tienes tu terminal abierta y abres una ventana mientras se muestra la terminal, si ocultas la terminal, no conoce esta "nueva ventana" y vuelve a la antiguo activo. Lo he estado usando durante un par de horas y parece estar funcionando

ACTUALIZACIÓN: Actualicé mi script para que si cambias a otra ventana (alt + pestaña), por ejemplo, cambiará a esa ventana cuando ocultes la terminal


Aquí está el guión, ojalá sea útil para otros 🙂:

#Persistent
SetBatchLines, -1
Process, Priority,, High

Gui +LastFound
hWnd := WinExist()

; Subscribe to win-create events to get the activated window
DllCall( "RegisterShellHookWindow", UInt,hWnd )
MsgNum := DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" )
OnMessage(MsgNum, Func("OnWin"))
Return

OnWin(event, hwnd)
{
  ; WinGetClass, winClass, ahk_id %lParam%
  WinGetClass, winClass, ahk_id %hwnd%
  if (winClass = "CASCADIA_HOSTING_WINDOW_CLASS")
  {
    global activatedWindow
    activatedWindow = -1
  }
  else
  {
    ; 1 is HSHELL_WINDOOWCREATED
    ; 4 is HSHELL_WINDOWACTIVATED
    if (event == 1 || event & 4)
    {
      global activatedWindow
      activatedWindow = -1
      activatedWindow = %hwnd%
    }
  }
}

; Toggle windows terminal using Ctrl,`
^`::ToggleTerminal()

ShowAndPositionTerminal()
{
  WinShow ahk_class CASCADIA_HOSTING_WINDOW_CLASS
  WinActivate ahk_class CASCADIA_HOSTING_WINDOW_CLASS

  WinMove, ahk_class CASCADIA_HOSTING_WINDOW_CLASS,, -5, -10, A_ScreenWidth + 10, A_ScreenHeight * 0.7,
  Winset, AlwaysOnTop, On, A
}

ToggleTerminal()
{
  global activatedWindow
  WinMatcher := "ahk_class CASCADIA_HOSTING_WINDOW_CLASS"

  DetectHiddenWindows, On

  if WinExist(WinMatcher)
  {
    DetectHiddenWindows, Off

    if WinExist(WinMatcher)
    {
      ; Script sees it without detecting hidden windows, so..
      WinHide ahk_class CASCADIA_HOSTING_WINDOW_CLASS
      if activatedWindow > 0
      {
        WinActivate, ahk_id, %activatedWindow%
        activatedWindow = -1
      }
      else
      {
        Send !{Esc}
      }
    }
    ; Check if its hidden
    else if !WinExist(WinMatcher) || !WinActive(WinMatcher)
    {
      ShowAndPositionTerminal()
    }
  }
  else
  {
    Run "%SCOOP%\apps\windows-terminal\current\WindowsTerminal.exe"
    Sleep, 1000
    ShowAndPositionTerminal()
  }
}

@ zadjii-msft, ¿eso significa que un PR no se fusionará durante un par de meses?
Esto fue lo primero que busqué en Google cuando instalé el terminal, que también muchas gracias por crear un terminal real. Super excitado

@ chazt3n Estamos bastante

Realmente no puedo dar ninguna estimación sobre cuándo es alguna de esas fechas en este momento, principalmente solo "cuando esté lista".

Lo siento si esto ya está cubierto anteriormente, ya que no leí el hilo completo en detalle. Desde una perspectiva de comportamiento; Creo que sería mejor si pudiéramos elegir entre el 'modo de terremoto' o simplemente las ventanas / pestañas existentes en primer plano en la tecla de acceso rápido.

Actualmente uso otra plataforma de consola que simplemente me da una casilla de verificación en la configuración para 'poner en primer plano la aplicación con Ctrl + ~', pero por lo demás respeta completamente el tamaño y el estado de mi ventana existente.

Esta característica es muy, muy, muy agradable de tener, ya que a menudo tenemos tantas ventanas y la ventana del terminal (dado que casi siempre no está en pantalla completa) puede perderse en segundo plano.

La parte más importante es que no solo tenemos la ventana escalada al ancho completo, sino que conservamos su barra de título. La barra de título también debe ser invisible.

Lo siento si esto ya está cubierto anteriormente, ya que no leí el hilo completo en detalle. Desde una perspectiva de comportamiento; Creo que sería mejor si pudiéramos elegir entre el 'modo de terremoto' o simplemente las ventanas / pestañas existentes en primer plano en la tecla de acceso rápido.

Se perdió en los elementos ocultos del hilo, pero @flyingpie compartió un programa C # para agregar la función de estilo de terremoto. Puede encontrarlo aquí , y si mira Toggler.cs en la línea 51 y 72, debería poder modificar su comportamiento para que solo lleve la ventana en primer plano sin modificar su tamaño. Aunque no lo he intentado.

Cambié al enfoque ahk después de un tiempo, una de las principales razones es que no tengo que usar VS para construirlo, pero después de algunos retoques obtuve resultados realmente buenos, la base también está en algún lugar de este hilo.

tenga en cuenta que lo uso para Messenger en su lugar, ya que WT pierde algunas cosas más para mí

_Una solución alternativa hasta que haya un modo desplegable nativo para Terminal. 😃_

Después de un par de semanas de uso, puedo recomendar https://eugeny.github.io/terminus/

Agradable terminal con también conocido como "modo de terremoto" (Configuración> "Acople el terminal" configurado en Top y "Teclas rápidas"> "Ventana de terminal Toggl" en Ctrl-` ).

Está construido sobre Electron, por lo que no es un "ligero", pero funciona bastante bien con WSL2.

Disfruté configurándolo en la primera parte de mi barra de tareas y usando WIN + 1 para abrirlo.

Mi único problema es que no siempre puedo abrirlo en admin, lo que equivale a que WSL esté inutilizable. Así que haga clic derecho, haga clic derecho, abra como administrador - WIN + 1 a partir de entonces.

@ chazt3n Si desea abrir en admin usando el teclado sería:
WIN + ALT + 1 para abrir el menú del botón derecho para ese elemento de la barra de tareas.
Tecla de menú (junto a la tecla CTRL derecha) o MAYÚS + F10
Elija "abrir como administrador" con las teclas de flecha e ingrese.

@ chazt3n @SamHasler no hay necesidad de hacerlo de la manera difícil.
Si mantienes presionada la tecla Mayús mientras abres una aplicación, obtienes una segunda copia.
Si mantienes presionadas las teclas Mayús y Ctrl mientras abres una aplicación, se abre elevada.
_Eso es cierto ya sea desde el menú de inicio, el diálogo de ejecución o la barra de tareas, y si lo abre con el teclado o haciendo clic en ..._

En otras palabras, aplaste toda la esquina del teclado antes de presionar 1: Ctrl + Shift + Win + 1 abrirá una nueva copia elevada.

@Jaykul Cuando le hablo a la gente sobre el modificador mágico del ascensor, siempre dicen "whattttt"

De hecho, estoy trabajando en un proyecto como este y me encantaría colaborar con cualquier persona interesada en ayudar. Debería tener una versión alfa para el fin de semana que admita CMD, powershell y WSL con funcionalidad de estilo desplegable.

Estoy interesado en expandirme sobre guake / yakuake y lo que hicieron, sin embargo, con algunas ideas adicionales como NOFUNEVER, que describe la posibilidad de usar varios monitores a la vez, pero no estoy seguro de cómo se vería.

Esto NO está listo para la prueba todavía, pero debería tener un alfa listo para la prueba al final del fin de semana. Si alguien está interesado en colaborar, envíeme un correo electrónico a mwayne. [email protected]. Alguien que sea bueno para tematizar aplicaciones y trabajar con controles en C # sería de gran ayuda.

https://github.com/usrcletus/winuake

Por favor, sé amable conmigo, está en etapas súper difíciles jajaja.

Me encantaría ver esta funcionalidad entrar. Muy satisfecho con el funcionamiento de Terminal de Windows (¡es una de las pocas aplicaciones de terminal de Windows que no se ahoga y muere en la prueba de velocidad "cmatrix"!). Por favor inclúyalo (cuando pueda :)), una vez que esté acostumbrado a esta funcionalidad, no podrá vivir sin ella.

Esta característica ahorra mucho tiempo.
Realmente esperando a Windows Terminal 2.0

Una característica muy apreciada, realmente haría que el entorno cambiara entre Linux y Windows mucho mejor.

Una característica muy apreciada, realmente haría que el entorno cambiara entre Linux y Windows mucho mejor.

eso requeriría que algunos de los emuladores de terminal de Linux tuvieran todas las características de conemu, Windows ya lo tiene todo

El equipo publicó una hoja de ruta y este problema está ahí 🥳 Aunque tiene prioridad 3 en una escala de 0 a 2 😢

Lo sentimos, nuestra escala realmente llega a 3. ¡Vaya! :sonreír:

Sin embargo, parece que estos problemas podrían no aparecer ni siquiera en el lanzamiento en 1 año. Demasiado. Tenía muchas ganas de usar la nueva terminal, pero sin la función de teclas de acceso rápido es demasiado engorroso en comparación con guake en Linux.

Feliz de que al menos hiciera la lista. :) - WSL2 Docker ha hecho de Windows un controlador diario más factible, esta característica lo impulsará aún más cuando aterrice.

Estoy de acuerdo en que esta es una característica útil, y realmente la necesitaría si uso Windows.
Sin embargo, todas las funcionalidades mencionadas deben ser manejadas por el administrador de ventanas, en lugar de una terminal.

Técnicamente, eso sería óptimo si WM lo permitiera, podría manejar todas y cada una de las ventanas con facilidad, pero es poco probable que lo obtengamos pronto. La mejor apuesta sería agregar eso a PowerToys

No necesariamente. Simplemente significa que el personal de Microsoft no trabajará en ello.
Cualquiera puede enviar la función como PR.

Si alguien quiere una solución AutoHotkey muy simple, consulte la esencia: https://gist.github.com/atruskie/99a498ac43b91deb91eab4069b6047b9

No es la solución exacta, pero funciona sin mucho esfuerzo.

#NoEnv
#SingleInstance force
SendMode Input
DetectHiddenWindows, on
SetWinDelay, 0

#`::
    terminal := WinExist("ahk_exe WindowsTerminal.exe")
    if (terminal) 
    {
        active := WinActive("ahk_id " terminal)
        if (active)
            WinMinimize, ahk_id %active%
        else
            WinActivate, ahk_id %terminal%
    }
    else
        Run, wt.exe
Return

@ Defcon0 Lo puse como la primera entrada en mi barra de tareas y uso WIN + 1, honestamente, es un poco más conveniente para mí ya que puedo colocarlo en cualquier lugar de la pantalla.

@Jaykul también proporcionó una apertura de un paso en la administración

Si alguien quiere una solución AutoHotkey muy simple, consulte la esencia: https://gist.github.com/atruskie/99a498ac43b91deb91eab4069b6047b9

No es la solución exacta, pero funciona sin mucho esfuerzo.

#NoEnv
#SingleInstance force
SendMode Input
DetectHiddenWindows, on
SetWinDelay, 0

#`::
    terminal := WinExist("ahk_exe WindowsTerminal.exe")
    if (terminal) 
    {
        active := WinActive("ahk_id " terminal)
        if (active)
            WinMinimize, ahk_id %active%
        else
            WinActivate, ahk_id %terminal%
    }
    else
        Run, wt.exe
Return

Escribí una esencia como esta hace un tiempo: https://gist.github.com/sharunkumar/af7ba56e3cce8238ae9c986c619e8d1c

este cambia de nuevo a la ventana activa en la que estaba, antes de cambiar a WT

global PreviousActiveWindow

#`::
DetectHiddenWindows, On
if (WinExist("ahk_class CASCADIA_HOSTING_WINDOW_CLASS")) {
    if(WinActive("ahk_class CASCADIA_HOSTING_WINDOW_CLASS")) {
        WinActivate, ahk_id %PreviousActiveWindow%
    } else {
        WinGet, PreviousActiveWindow, , A ; 'A' for currently active window
        WinActivate, ahk_class CASCADIA_HOSTING_WINDOW_CLASS
    }
} else {
    TerminalLink = %localappdata%\Microsoft\WindowsApps\wt.exe
    if FileExist(TerminalLink) {
        WinGet, PreviousActiveWindow, , A ; 'A' for currently active window
        Run, %TerminalLink%
    } else {
        MsgBox, Windows Terminal not installed
    }
}
Return

Encontré este repositorio para una aplicación simple que agrega quake a la terminal:
https://github.com/flyingpie/windows-terminal-quake

Funciona lo suficientemente bien para mis casos de uso.

Descubrí que esto se puede lograr fácilmente usando Keyboard Manager PowerToy y el acceso directo de Windows Key + NUM antes mencionado para iniciar una aplicación anclada a su barra de tareas. Simplemente fije la Terminal de Windows a su barra de tareas (la mía está en la posición 6) y luego abra la herramienta PowerToys Keyboard Manager. He usado WIN + ` con Cmder y así _remapeado_ el atajo WIN + ` a WIN + 6 . Ahora, cada vez que hago WIN + ` la Terminal de Windows pasará al frente o lanzará una nueva instancia si aún no se está ejecutando (que es incluso mejor que lo que Cmder hace de forma nativa).

image

no, no es lo mismo
minimizar! = ocultar ventana
ocultar la ventana hace que se salga de tu camino por completo

Tienes razón, ciertamente este no es el modo de terremoto, perdón por cualquier confusión. Encontré este problema simplemente buscando una manera de tener un acceso directo global personalizado para llevar la Terminal al primer plano, lo que fue un factor decisivo para mí, ya que estoy acostumbrado a ese comportamiento de Cmder. Personalmente, no he sentido la necesidad del modo Quake, por lo que esta solución de atajo llenó el vacío y pensé en pasarla.

¿Esta es la solicitud de función más votada y ha estado abierta durante más de un año?

¿Cómo diablos no se ha implementado esto todavía?

Oye, solo estoy publicando algunas notas de investigación aquí, porque no quiero perderlas.

RegisterHotKey no pareció hacer nada en mi experimentación. ¿Quizás lo estaba haciendo mal? ¿Quizás la isla XAML está comiendo el mensaje WM_HOTKEY incluso antes de que llegue a nuestro wndproc? No parece haber ningún comentario sobre esa función de todos modos, por lo que no estoy seguro de cuán útil sea en un "modo de instancias múltiples".

SendMessage(_window.get(), WM_SETHOTKEY, VK_OEM_3, 0) realidad _ sí_ funcionó. Incluso devuelve 2 si hay otra ventana con esa tecla de acceso rápido configurada, lo cual es bueno. Eso hará todo por nosotros: cuando se presione la tecla en cualquier lugar del sistema, se activará la ventana de Terminal, incluso si está minimizada. No estoy seguro acerca de "minimizado a la barra de tareas", pero el progreso es progreso.

Desafortunadamente, no es trivial tener una segunda ventana de terminal esperando a que se cierre la primera ventana y luego hacer que active la tecla de acceso rápido. Además, ¿quién obtiene la tecla de acceso rápido si hay 3 ventanas WT abiertas? Entonces, en este momento, solo la primera ventana obtendría la tecla de acceso rápido asignada, y luego las ventanas posteriores creadas _no_ obtendrían la tecla de acceso rápido asignada, hasta que se cierre la primera ventana. Entonces, la _siguiente ventana WT creada_ obtendría la tecla de acceso rápido. Eso es ciertamente incómodo.

La recarga de la configuración probablemente también resultaría en una ventana de WT _random_ obteniendo la tecla de acceso rápido asignada.

Hay un montón de preguntas en este hilo, así que intentaré resumirlas, pero no prescribiré una solución holística todavía.

  • Presione una tecla de acceso rápido en cualquier lugar para activar la ventana de Terminal única donde sea que esté (requiere el modo de instancia única, así como el soporte de teclas de acceso rápido global)
  • Presione una tecla de acceso rápido en cualquier lugar para activar la ventana de Terminal única _en el monitor actual_. Si no estaba previamente en ese monitor, muévalo allí. (requiere el modo de instancia única, así como la compatibilidad con teclas de acceso rápido global)
  • Presione una tecla de acceso rápido para activar la ventana de terminal "más cercana". (Esto probablemente requerirá algo de IPC como en el que está trabajando # 5000)
  • Minimizar a la bandeja, presione una tecla de acceso rápido para activar la ventana de terminal única / la ventana de terminal más cercana (# 5727)
  • La terminal no aparece en la vista alt + pestaña, presione una tecla de acceso rápido para activar la ventana de terminal única / la ventana de terminal más cercana (no estoy seguro de que esto sea distinto de lo anterior
  • cuando se invoca la Terminal usando la tecla de acceso rápido, haga que se "deslice" desde la parte superior (No estoy seguro si esto es posible con el método SendMessage(WM_SETHOTKEY) anterior).

    • Del mismo modo, deslice hacia fuera en desactivar?

Wow, estoy seguro de que me perdí algunos de los escenarios cubiertos en los 95 comentarios de este hilo, pero eso ya es un desastre de configuraciones.


EDITAR 17-Aug-2020: Oh, hey, así es como PowerToys conecta el teclado para mensajes globales, hagamos eso.
https://github.com/microsoft/PowerToys/blob/49b56d9b52bdfedd6ad1404bd0b20e884d2b574b/src/modules/shortcut_guide/shortcut_guide.cpp#L150 -L173

En mi humilde opinión, minimizar a la bandeja suena como una característica diferente.

Tener múltiples instancias y tener diferentes instancias convocadas en diferentes pantallas suena como algo para una segunda iteración de esta función.

Creo que sería mejor concentrarse primero en escenarios más simples, como una instancia única que se invoca mediante el deslizamiento en una tecla de acceso rápido y el deslizamiento hacia afuera en la misma tecla de acceso rápido. Si hay múltiples instancias, probablemente debería haber una regla a la que se convoca entonces

En mi opinión, como WT tiene múltiples pestañas, el mejor escenario es una instancia y ser convocado donde está el mouse, si hay múltiples escritorios o monitores virtuales. Como Guake.

Hola @ zadjii-msft: también he estado analizando algunas áreas similares y quería consolidar la investigación junto con compartir algunas ideas sobre implementaciones. Al leer los materiales, no podía estar seguro si me estaba perdiendo donde el equipo había buscado formas de aprovechar las características de UAP / UWP que podrían ser relevantes, así que espero que este no sea un terreno ya pisado.

En primer lugar, el registro de la tecla de acceso rápido. Encontré que la investigación de WM_HOTKEY que realizó es complementaria a esta ruta de registro de teclas de acceso rápido de UWP que se describe aquí . ¿Es este un enfoque que ya ha considerado? Pensé que podría ser un buen enfoque, ya que el menú contextual del explorador "lanzar el terminal de Windows aquí" ya se ha implementado, eliminando la necesidad de construir / probar el AppService / IPC (# 5000) ya que simplemente podríamos extender y mejorar lo que ya está allí. .

Mientras profundizaba en esto, encontré esta respuesta SO posiblemente relevante que describe un enfoque que se adjunta a Windows.UI.Core.CoreDispatcher.AcceleratorKeyActivated para recibir notificaciones cuando se presionan combinaciones de teclas especiales, por ejemplo, CTRL+~ . ¿Es esto algo que podría ser aplicable?

Hablando del modelo de proceso ...

Desafortunadamente, no es trivial tener una segunda ventana de terminal esperando a que se cierre la primera ventana y luego hacer que active la tecla de acceso rápido. Además, ¿quién obtiene la tecla de acceso rápido si hay 3 ventanas WT abiertas? Entonces, en este momento, solo la primera ventana obtendría la tecla de acceso rápido asignada, y luego las ventanas posteriores creadas _no_ obtendrían la tecla de acceso rápido asignada, hasta que se cierre la primera ventana. Entonces, la _siguiente ventana WT creada_ obtendría la tecla de acceso rápido. Eso es ciertamente incómodo.
La recarga de la configuración probablemente también resultaría en una ventana de WT _random_ obteniendo la tecla de acceso rápido asignada.

Hay un hilo común con estos desafíos que, una vez eliminados de la ecuación, hace que las cosas sean mucho más claras y simples. Ese hilo común es la lógica y la complejidad involucradas en la administración de instancias wt; creo que gran parte del resto es consecuencia de ese desafío central. Al igual que muchos desafíos, este podría resolverse mejor dividiéndolo en desafíos más pequeños. Aquí, creo que la introducción de un intermediario hace innecesario que WT necesite saber algo sobre la administración de instancias, y mucho menos sobre el manejo global (por ejemplo, la aplicación no está enfocada), el registro y la vinculación de teclas de acceso rápido. Esto me atrae desde el punto de vista de SRP, y me parece que el trabajo para proporcionar el menú contextual del explorador "iniciar Windows Terminal Here" se alinea con esto conceptualmente, si no en la realidad. Los servicios de IPC pueden usar TriggerEvent de las extensiones de escritorio de UWP para pasar acciones serializadas (comandos) a instancias de wt en ejecución o analizarse y pasar como argumentos de lanzamiento para nuevos procesos de wt

El proceso que maneja la tecla de acceso rápido global sería tanto una aplicación de la bandeja del sistema _y_ un proceso de modo de instancia única (probablemente una aplicación WinForms) que contiene un componente NotifyIcon junto con el menú contextual del icono de la bandeja del sistema y los componentes del despachador. Esto tiene el efecto secundario positivo de obviar la necesidad de agregar una gran cantidad de configuraciones nuevas y complicadas + lógica al código base de WT, ya que wt no necesitará saber nada sobre el llamado "modo terremoto": smile :. La aplicación de la bandeja del sistema sería la fuente / repositorio para este tipo de configuraciones, y creo que absolutamente funcionará y se beneficiará de la # 7170

  • Presione una tecla de acceso rápido en cualquier lugar para activar la ventana de Terminal única donde sea que esté (requiere el modo de instancia única, así como el soporte de teclas de acceso rápido global)

El menú contextual de la aplicación de la bandeja del sistema podría tener un control flotante que muestre una lista de perfiles wt en los que los usuarios pueden hacer clic para seleccionar el perfil que se utilizará cuando se invoca "al estilo del modo Quake". Es posible que se establezca de forma predeterminada en el primer perfil de la lista si no se especifica. Si hay planes / especificaciones para implementar la lógica interna para obtener listas de perfiles y sus detalles, el diseño se beneficiaría de la capacidad de usarse fuera del proceso wt.exe (como en el caso de la aplicación de notificación no debería tener que duplicar la funcionalidad para cargar la lista de perfiles y tal si es posible). Debido a que la aplicación systray administra instancias, wt no necesariamente necesita implementar el modo de instancia única. Los repositorios de PowerToys muestran los declives de IPC de UWP en el manifiesto y probablemente tenga más pepitas útiles.

Resumiendo una publicación ya densa en información:

La mayoría de las preocupaciones con viñetas desaparecen o se mitigan en gran medida con este enfoque si lo piensa. Cuando doy un paso atrás y miro el conjunto, siento que esta característica está más cerca de convertirse en realidad de lo que pensábamos.

  • Presione una tecla de acceso rápido en cualquier lugar para activar la ventana de Terminal única _en el monitor actual_. Si no estaba previamente en ese monitor, muévalo allí. (requiere el modo de instancia única, así como la compatibilidad con teclas de acceso rápido global)
  • Presione una tecla de acceso rápido para activar la ventana de terminal "más cercana". (Esto probablemente requerirá algo de IPC como en el que está trabajando # 5000)
  • Minimizar a la bandeja, presione una tecla de acceso rápido para activar la ventana de terminal única / la ventana de terminal más cercana (# 5727)
  • La terminal no aparece en la vista alt + pestaña, presione una tecla de acceso rápido para activar la ventana de terminal única / la ventana de terminal más cercana (no estoy seguro de que esto sea distinto de lo anterior
  • cuando se invoca la Terminal usando la tecla de acceso rápido, haga que se "deslice" desde la parte superior (No estoy seguro de si esto es posible con el método SendMessage(WM_SETHOTKEY) anterior).

    • Del mismo modo, deslice hacia fuera en desactivar?

Recursos para NotifyIcon, WinForms y WPF:
http://www.abhisheksur.com/2012/08/notifyicon-with-wpf-applications.html
https://www.codeproject.com/articles/36788/wpf-xaml-notifyicon-and-taskbar-system-tray-popup
https://mcguirev10.com/2019/01/27/system-tray-icons-wpf-net-core-preview.html

HTH!

EDITAR:
Al leer el borrador de las especificaciones del modelo de proceso, parece que también ha identificado el enfoque de proceso separado . Supongo que la parte del "monarca" podría en parte o tal vez (?) En su totalidad desempeñada por el IPC / appservice

Hice una utilidad rápida y sucia que registra la tecla de acceso rápido global para alternar la última ventana de Terminal de Windows. Creo que sería una buena solución antes de la implementación oficial.

https://github.com/Inndy/TerminalSummoner

Modifiqué una solución de autohotkey de https://github.com/ehpc/quake-windows-bash para una mejor experiencia de usuario. No he investigado la solución de

Mi script se encuentra aquí: https://github.com/rengler33/dotfiles/blob/master/C/Users/Rub/wt-quake-like.ahk

Usando la tecla de acceso rápido Ctrl + `

  1. Si el terminal de Windows no se inicia, lo inicia *
  2. Si se inicia pero se minimiza, se restaura
  3. Si está activo, se minimiza
  4. De lo contrario (lo que significa que está restaurado pero desenfocado), enfóquelo

* Nota: este script también usa un atajo de Windows que me gusta usar y que agrega algunas opciones al abrir
https://github.com/rengler33/dotfiles/blob/master/C/Users/Rub/wt.exe.lnk
Pero podría ser reemplazado para simplemente lanzar BashHandle en lugar de Shortcut

Modifiqué una solución autohotkey de https://github.com/ehpc/quake-windows-bash

Gracias por eso.

Me inspiré en el script de @ rengler33 e hice algunas modificaciones para mi propia configuración de 3 pantallas:
https://gist.github.com/oryon-dominik/562970f77f2ad4d9bd57bea58ddc8ef5
El script genera una Terminal de Windows en la pantalla activa. (CTRL + CIRCUNFLEX)
Sin embargo, malas animaciones y un poco de parpadeo, por lo que es más una solución.

Tengo muchas ganas de que esta función se implemente oficialmente ...

También quería cambiar de ConEmu a Windows Terminal, pero también me faltaba Quake Style. Si alguien está interesado, creé una pequeña aplicación, que almacena y extrae la ventana del terminal de Windows (puede agregar otras aplicaciones para tener este Quake Style si lo desea).

Consulte mi repositorio y todas las funciones aquí: https://github.com/rzym-on/termial-tray

Realmente espero que esta característica venga por defecto en algún momento. Por ahora, siéntete libre de usar mi pequeña solución.

También quería cambiar de ConEmu a Windows Terminal, pero también me faltaba Quake Style. Si alguien está interesado, creé una pequeña aplicación, que almacena y extrae la ventana del terminal de Windows (puede agregar otras aplicaciones para tener este Quake Style si lo desea).

Consulte mi repositorio y todas las funciones aquí: https://github.com/rzym-on/termial-tray

Realmente espero que esta característica venga por defecto en algún momento. Por ahora, siéntete libre de usar mi pequeña solución.

Gracias por esto. ¿Hay alguna manera de ajustar la velocidad de animación de la ventana del Terminal de Windows que aparece ... de la misma manera que lo hace ConEmu?

@mkanet Me gustaría redirigir la discusión sobre el proyecto de otra persona a su repositorio y mantener este hilo centrado en el problema en cuestión. ¡Gracias!

Otra idea podría ser un parámetro para ordenar wt.exe como: -T, --toggle
Si la instancia de terminal no existe, abra una nueva
Else (si está activo minimizar Else restaurar / activar)

Es como la lógica de AutoHotKey anterior, pero está dentro de wt.exe y es accesible para accesos directos de .lnk / asignaciones de teclas globales / barra de tareas de Windows Win + Number, etc.

Sería genial si no necesita otra aplicación de terceros para esto. Y también soy adicto a Ctrl + `

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