Crear acceso directo global para ejecutar aplicaciones de línea de comandos

31

¿Qué pasos necesito para ejecutar un programa de línea de comando a través de un acceso directo global?

Configuré Automator para crear un nuevo Run Shell Script e intenté asignar un atajo en Preferencias del sistema -> Teclado -> Atajos de teclado, pero no pasó nada.

Adam Flott
fuente
1
Mi pregunta es diferente No quiero que se abra una ventana de terminal.
z-buffer
1
Si no desea que se abra una ventana de Terminal, está preguntando lo mismo que la publicación vinculada.
Daniel

Respuestas:

8

Applescript:

do shell script "ls ~/Desktop"

Agregue lo que desee allí, luego puede ejecutar el Applescript a través de una aplicación global de teclas de acceso rápido. Yo recomendaría Spark

Ah, y no sé cómo asignar un acceso directo a través de Preferencias del sistema

daviesgeek
fuente
Bingo. Es extraño que esta funcionalidad no esté integrada en OSX. ¡Muchas gracias!
Adam Flott
@ Adam Sí, es un poco extraño.
daviesgeek
8
Excepto que está integrado en OS X a través de Automator Services, @AdamFlott, es solo que la respuesta que aceptó no usa ese método.
Daniel
2
Además, AppleScript y Automator son parte de OS X.
Daniel
1
-1 por usar terceros sin ningún buen razonamiento.
cregox
32

Sin conocer los detalles de lo que está buscando, sugeriría crear un nuevo Servicio a través de Automator . Los servicios pueden estar vinculados a disparadores de teclas y pueden ejecutar scripts de shell (entre otras cosas). ingrese la descripción de la imagen aquí

Para configurar el atajo de teclado, vaya a Preferencias del sistema -> Teclado -> Atajos -> Servicios, seleccione el servicio que acaba de guardar y luego haga clic en el botón "Agregar atajo".

Daniel
fuente
No me queda claro después de guardar el servicio cómo configurar un atajo de teclado.
Liron Yahdav
@LironYahdav Ver edición anterior
Daniel
12

FastScripts incluye todos los scripts en ~ / Library / Scripts /, por lo que no tiene que agregar archivos manualmente. También es compatible con scripts específicos de la aplicación.

Otras aplicaciones que se pueden usar para asignar accesos directos para ejecutar scripts:

También puede crear un servicio Automator:

  1. Abra Automator y elija la plantilla de Servicio
  2. Agregar una acción Ejecutar script de shell o Ejecutar AppleScript
  3. Verifique que el tipo de entrada y el alcance de la aplicación sean correctos
  4. Pegue el script y guarde el servicio.
  5. Asignar un acceso directo en el panel de preferencias Teclado

Hay un error en 10.7 y 10.8 donde los atajos para los servicios no siempre funcionan hasta que el menú de servicios se muestra desde la barra de menú. Los accesos directos para servicios no funcionan cuando la aplicación principal no tiene una barra de menú o un menú de servicios. También hay un breve retraso antes de que se ejecuten los servicios.

Lri
fuente
más uno por mencionar otras aplicaciones que también lo hacen. Casi fui a instalar spark cuando ya usaba QuickSilver. No sabía que tenía esa opción.
Marlon
también, la sección en el panel "Preferencias de teclado" para agregar un acceso directo estará debajo de la sección "Servicios", si usa el enfoque Automator.
Brad Parks,
7

Probé todas esas opciones, pero son demasiado complejas y poco confiables o realmente caras. Así que terminé escribiendo mi propia solución (de código abierto y gratuita).

iCanHazShortcut

No puede hacer mucho en este momento, pero eso es un comienzo. Siéntase libre de contribuir agregando solicitudes de características y sugerencias.

deseven
fuente
1
He tratado de encontrar una solución fácil para este problema durante unas horas y su aplicación es la única que funciona y hace lo que se supone que debe hacer sin ningún tipo de complicación. ¡Gracias!
Stijn Martens
@StijnMartens de nada! Esa es toda la idea detrás de esto: si solo necesita un acceso directo para un comando, obtendrá un acceso directo para un comando. Nada más y nada menos.
deseven
Esto funcionó muy bien.
Brian Schermerhorn
2

Quicksilver se puede usar para vincular teclas de acceso rápido a acciones.

Si te encuentras haciendo algo con frecuencia, puedes acelerar la tarea aún más asignándole un "disparador". Los activadores pueden activarse mediante atajos de teclado o movimientos del mouse

Si desea ejecutar un comando de Unix o un script de shell, esta publicación de Stackoverflow proporciona más información sobre el uso del "Módulo terminal" de Quicksilver.

binarybob
fuente
1

Agregaré mi respuesta aquí usando BTT , ya que es fácil y en realidad puede vincularse directamente a un script de línea de comando:

  1. Seleccionar teclado de BTT

Seleccionar teclado de BTT

  1. Ingrese su acceso directo (o secuencia de teclas)

Ingrese su acceso directo (o secuencia de teclas)

  1. Seleccione "Activar acción predefinida" y escriba "shell" para buscar la acción.

Seleccione "Activar acción predefinida" y escriba "shell" para buscar la acción.

  1. Puede pegar su script y shell en el que desea ejecutar:

Puede pegar su script y shell en el que desea ejecutar:

Haga clic en guardar y ya está. Ahora pruebe su secuencia de comandos con el disparador del teclado que configuró.

  1. EXTRA: es posible que desee agregar notas para recordar para qué sirve el acceso directo ...

Es posible que desee agregar notas para recordar para qué sirve el acceso directo ...

cody.codes
fuente
Gracias, terminé yendo por esta ruta ya que tengo BTT.
Leo Ufimtsev
0

Parece que esto estaba disponible en 10.6, (ver http://hints.macworld.com/article.php?story=20090903085255430 ) pero algo se rompió en 10.7.2 (y posiblemente antes en 10.7)

Sin embargo, he descubierto que el método abreviado de teclado de Servicios se cumple cuando las Preferencias del sistema están a la vanguardia, pero no en ninguna otra aplicación, incluido Finder.

Sin embargo, la sugerencia anterior de usar Spark funcionó perfectamente en Lion, excepto que no pude usar Ctrl en mi atajo de teclado. (no es un showtopper!)

adamrmcd
fuente
solo cuando el menú de la aplicación está enfocado. Si hace clic en el escritorio y probó el acceso directo, no funciona. haga clic en el menú del buscador y luego pruébelo y funciona. Tengo un servicio para Terminal que tiene un acceso directo y aparece en todas las aplicaciones ... pero no funciona si no estoy dentro de una aplicación e incluso entonces el menú debe estar enfocado.
Marlon
@Lri incluso después de cerrar sesión y volver a iniciarla, reinició la máquina, etc. Todavía no funciona a menos que haga lo que describí anteriormente. Sin embargo, configurarlo en Quicksilver funciona. Me gustaría saber cómo QuickSilver puede detectar esos accesos directos "globales" y no el sistema operativo.
Marlon