34 votos

Asignar un método abreviado para ejecutar una secuencia de comandos de OS X

¿OS X proporciona una manera fácil para enlazar combinaciones de teclas para los comandos que normalmente se ejecutan en la línea de comandos?

Por ejemplo, ¿hay alguna forma de asignar ⌘ Cmd+L como un acceso directo global para /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine?

36voto

Dave Puntos 986

Yo actualmente uso FastScripts. Incluye todas las secuencias de comandos en ~/Library/Scripts/, así que usted no tiene que agregar secuencias de comandos manualmente. También admite la aplicación específica de secuencias de comandos, y tiene algunas características que son útiles con AppleScripts, como se detiene una secuencia de comandos antes de que un keystroke o key code comando hasta que las teclas modificadoras son liberados.



Si has comprado el Powerpack para Alfred 2, puede crear flujos de trabajo como este:



Teclas de acceso rápido de un breve retraso por defecto, pero se puede reducir cambiando el comportamiento de activación:



KeyRemap4MacBook también permite ejecutar secuencias de comandos de shell:

<?xml version="1.0"?>
<root>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_SHELL_say_a</name>
    <url type="shell">say a</url>
  </vkopenurldef>
  <item>
    <name>test</name>
    <identifier>test</identifier>
    <autogen>__KeyToKey__ KeyCode::A, KeyCode::VK_OPEN_URL_SHELL_say_a</autogen>
  </item>
</root>

Otras aplicaciones que admiten la asignación de accesos directos a las secuencias de comandos:

Otra opción es crear un Automator servicio:

  1. Abrir Automator y elegir la plantilla de Servicio.
  2. Comprobar que el tipo y alcance de la solicitud son correctos, o cambiar "texto seleccionado" a "no entrada" si el servicio no recibe ninguna entrada.
  3. Añadir un Ejecutar el Shell Script o Ejecutar AppleScript de acción para la secuencia de comandos.
  4. Guarde el servicio y darle un acceso directo desde las Preferencias del Sistema.

Ha habido un error ya 10.7 donde los accesos directos de los servicios no siempre funcionan hasta que se pase el ratón sobre el menú de la barra de menú. Accesos directos para los servicios no funcionan cuando una aplicación que no tiene un menú de servicios (como el de la Torre) está situado en primer plano. También hay un retraso notable antes de que los servicios se ejecutan.

21voto

radai Puntos 165

Sí, usted puede hacer esto con Applescript o Automator.

La forma en que lo he hecho cosas como esta es el uso de Automator para crear un Servicio que está disponible en todas las aplicaciones. Un servicio puede ser realizado para ejecutar bash/zsh/ruby/lo que sea de secuencia de comandos. A continuación, puede enlazar una combinación de teclas para el servicio en el Teclado del panel de preferencias del sistema.

Cerca del final de este MacBreak podcast de este procedimiento se muestra en el detalle.

Edit: me acabo de dar cuenta de que no estás usando Snow Leopard. No creo que la creación de un servicio del sistema es tan fácil con 10.5.8. Supongo que no se puede actualizar, ya que es un Powerbook. Es posible que desee buscar en FastScripts que le permite asignar atajos de teclado a los applescripts (de uso gratuito para hasta 10 atajos de teclado) y el uso de los siguientes Applescript:

do shell script "/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine"

1voto

endolith Puntos 1021

Si usted está usando BetterTouchTool puede asignar un acceso directo a comandos de shell mediante la selección de una siguiente acción: el Control de Otras Aplicaciones > Ejecutar el Comando de Terminal

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: