¿Cómo mapeo un comando de terminal a una tecla de función?

Tengo un comando de terminal que puede controlar el brillo de mi pantalla externa. Estoy tratando de asignar ese comando a una tecla en el teclado para que funcione como una tecla de "subir el brillo" y "bajar el brillo".

Karabiner no parece admitir teclas de asignación a comandos de terminal

Respuestas (2)

Usaría Automator para ejecutar un Shell Script y luego agregaría un atajo de teclado para ejecutarlo.

Para hacer esto:

  1. Automatizador abierto
  2. Presione commandN(o vaya a Archivo > Nuevo)
  3. Seleccione la opción Servicio y haga clic en el Choosebotón
  4. Asegúrese de que esté configurado para no recibir entradas en ninguna aplicación
  5. En el panel de la izquierda, seleccione la opción Biblioteca > Utilidades
  6. En el panel central, haga doble clic en la acción Ejecutar script de Shell
  7. Ahora ingrese el comando de terminal en la ventana Run Shell Script dentro del panel derecho
  8. Presione commandS(o vaya a Archivo > Guardar...)
  9. Dale al Servicio un nombre apropiado
  10. Haga clic en el Savebotón
  11. Ahora ve a Apple > Preferencias del Sistema... > Teclado
  12. Seleccione la pestaña Accesos directos
  13. Seleccione Servicios en el panel izquierdo
  14. Busque y seleccione el Servicio que acaba de crear en la lista del lado derecho
  15. Haga clic en el Add Shortcutbotón y presione el atajo de teclado que desea usar

NOTA: deberá asegurarse de que no sea un acceso directo que ya esté utilizando macOS.

Karabiner Elements hace lo mismo con mucho menos esfuerzo. S.th. como {"shell_command": "open -a 'Alfred 3.app'"} es realmente simple, definir un atajo se hace en un abrir y cerrar de ojos.

Estoy usando elementos de mosquetón para hacer exactamente esto en un monitor Dell, puede vincular las pulsaciones de teclas a los comandos de shell:

{
"title": "F5 to dim, F6 to bright",
"rules": [
    {
        "manipulators": [
            {
              "description": "dim",
              "type": "basic",
              "from": {
                "key_code": "f5"
              },
              "to": [
                {
                    "shell_command": "/usr/local/bin/ddcctl -d 1 -b 1"
                }
              ]
            },
            {
                "description": "bright",
                "type": "basic",
                "from": {
                  "key_code": "f6"
                },
                "to": [
                  {
                      "shell_command": "/usr/local/bin/ddcctl -d 1 -b 100"
                  }
                ]
              }
          ]
    }
]

}

(Tengo ddctl instalado, que le permite controlar el brillo pasándole un valor porcentual: https://github.com/kfix/ddcctl )

Puede consultar los documentos para escribir sus modificaciones complejas como esta: https://pqrs.org/osx/karabiner/json.html

Eres increíble 🥳 no me di cuenta de que tenía que darle la ruta completa al binario porque probablemente no los tiene en PATH 😅 🚀