1 votos

¿Cómo puedo añadir un atajo de teclado para un perfil de Terminal?

Antes era posible (al menos en macOS 10.14), configurar un atajo de teclado para abrir un perfil de terminal específico:

ingresar descripción de la imagen aquí

Desafortunadamente, en macOS 12 y versiones posteriores (al menos, nunca usé 10.15 ni 11), esto ya no funciona. El menú resalta como si reconociera el atajo de teclado, pero no abre una nueva ventana (o pestaña). Supongo que esto se debe a que reconoce el comando en dos lugares diferentes, tanto en el submenu de Nueva Ventana como en el de Nueva Pestaña. En 10.14, solo la opción Nueva Ventana > Página del Manual tenía el atajo de teclado listado.

¿Hay alguna forma de hacer que esto funcione de nuevo? Intenté agregar "Nueva Ventana > Página del Manual" como opción de comando, pero no funcionó.

1voto

hym3242 Puntos 31

Editar: ¡Ja! ¡Lo descubrí! ¡AppKit siempre ha tenido esta funcionalidad! Solo necesitas ejecutar un comando como este, que escribe un NSUsreKeyEquivalent con 0x1B (ASCII ESC, \e, \033) como separador entre los títulos en la ruta del título:

defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add $'\eShell\eNew Window\eMan Page' '@$m'

...o también puedes simplemente escribir Shell->New Window->Man Page en el campo "Título del menú" en la configuración del sistema, lo cual hará esto por ti.

fuente: descompila AppKit y busca cadenas "titlepathbased"; llegué a -[NSMenuItem _fetchFreshUserKeyEquivalentInfo] que menciona r13 = loc_7ff841d3cc10(rbx, @selector(componentsJoinedByString:), "\x1B");. También se menciona en esta pregunta de la comunidad de Apple. Esto también responde tu pregunta.

Probado en Ventura 13.4 22F66.

RESPUESTA ORIGINAL:

Creo que estás usando la característica "NSUserKeyEquivalents" en AppKit, que Apple llama "Atajos de aplicación". Apple no te permite usar una ruta de menú allí, y cuando varios elementos comparten el mismo nombre, como en Terminal.app, suceden cosas extrañas. Los atajos pueden funcionar la primera vez, pero a partir de la segunda vez, AppKit invocará otro con el mismo nombre (lo que puedes notar al ver que el elemento de la barra de menú parpadea).

AppKit tiene una variable global llamada _hasTitlePathBasedUserKeyEquivalent, lo que puede indicar que con algo de truco podamos hacer que haga lo que quieres. Hasta entonces, deberías revisar algunas herramientas de productividad de terceros que pueden hackear macOS o invocar el título del menú de forma indirecta.

0voto

IronCraftMan Puntos 1345

@hym3242 publicó una solución mejor, pero si deja de funcionar por alguna razón:


Puedes utilizar una acción de Automator que ejecute un AppleScript para abrir una nueva ventana de terminal con una acción específica.

Crea una nueva "Acción rápida" de Automator, arrastra el bloque "Ejecutar AppleScript", luego desde esta respuesta, modifiqué el código a esto:

tell application "Terminal" to launch
tell application "System Events"
    set terminal to application process "Terminal"
    set frontmost of terminal to true
    click menu item "Man Page" of ¬
        first menu of menu item "New Window" of ¬
        first menu of menu bar item "Shell" of ¬
        first menu bar of terminal
end tell

Este código debe ser pegado en tu bloque de código en Automator. Si estás probando esto en Automator/AppleScript Editor, necesitarás concederles permiso para controlar la computadora. Guárdalo con un nombre como "Abrir Man Page". Luego ve a las preferencias de Atajos de teclado y agrega tu atajo a tu nueva acción rápida que aparece bajo "Servicios". Si es el mismo que solías usar para el terminal, asegúrate de eliminarlo de la sección de Atajos de apps primero, o lo reemplazará. La primera vez que lo ejecutes, deberás habilitar la capacidad del terminal para controlar tu computadora.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X