Alternar "Usar F1, F2 como teclas estándar" a través del script

23

Yo alterno la configuración de "Usar todos los F1, F2 como teclas estándar" muy a menudo y me gustaría automatizarlo a través de un script (o un método abreviado de teclado). ¿Es posible? He intentado buscar en Google los argumentos correctos para defaults write ... pero sin éxito.

Actualización:Acabédecrear enlace en función de las respuestas aquí.

Actualización II: ahora también hay enlace : una aplicación de barra de menús realmente agradable que te permite Cambia automáticamente el comportamiento de las teclas Fn del teclado según la aplicación activa.

    
pregunta Jakub 03.08.2012 - 01:09

6 respuestas

23
tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

También puedes usar defaults write -g com.apple.keyboard.fnState -bool true , pero no conozco ninguna forma de aplicar los cambios sin cerrar sesión y volver a iniciar sesión.

    
respondido por el user495470 12.08.2012 - 16:42
9

No sé sobre el script, pero gracias a un poco de ingeniería inversa y Google Googling, hice esto porque no me gustaba el contenido de la GUI de AppleScript existente:

enlace

Binario compilado (Tira en tu RUTA o si no sabes lo que es entonces /usr/local/bin/ ): enlace

Llámelo desde cualquier cosa (ControlPlane, Automator, sh , etc.) ejecutando fntoggle on o fntoggle off .

Este script no requiere que se active la accesibilidad de la GUI. Tampoco es necesario cerrar sesión y volver a iniciarla.

    
respondido por el crazysim 06.02.2014 - 19:52
4

Puedes leer el estado actual con lo siguiente. (1 para teclas F, 0 para medios / brillo, etc.)

defaults read "Apple Global Domain" "com.apple.keyboard.fnState"

Puede escribirlo, sin embargo, no cambiará hasta que reinicie. (Intenté matar Dock y Finder en su lugar, sin suerte)

defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "1" ## F1 F2 etc
defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "0" ## Brightness/Media

Sospecho que alguien con más conocimientos sobre lo que lee este archivo plist podría escribir un script para matar y reiniciar lo que lea este plist, lo que debería hacer que reconozca el cambio.

    
respondido por el user2245192 19.04.2014 - 05:32
1

En realidad, no tienes que ejecutar ninguna aplicación con foco ni nada, la mejor manera en mi opinión es:

  1. Crear nuevo servicio en Automator
  2. Arrastra: "Ejecutar script de Apple
  3. En "Recepción de servicios seleccionados": no seleccione ninguna entrada
  4. Pegue este código de esta otra respuesta :

    tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
    end tell
    tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
    end tell
    quit application "System Preferences" 
    
  5. Guardar como "tu nombre"

  6. Abra Preferencias del sistema → Teclado → Accesos directos
  7. En el menú de la izquierda, elige: "Servicios"
  8. En la derecha, desplácese hasta el General, y asigne a su servicio alguna tecla de acceso directo única, elijo cmd + shift + L

  9. Eso es todo! No es muy rápido ni nada, pero no tiene que ejecutar ninguna aplicación ni ir a las Preferencias usted mismo.

Addendum: con EL Capitan, esto solo funciona cuando Automator está enfocado, de lo contrario (por ejemplo, si invoca el script mediante un método abreviado de teclado) aparece "La acción" Ejecutar AppleScript "encontró un mensaje de error".

    
respondido por el Teaman 10.12.2014 - 00:52
0
respondido por el user26787 12.08.2012 - 16:25
0

Dadas todas las respuestas, apliqué la siguiente solución para Yosemite.

Usando Automator, creé una aplicación con el siguiente código:

tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

Guárdalo, agrégalo a Aplicaciones. Para evitar el "AppleScript Editor no está permitido el acceso de asistencia", vaya a Preferencias del sistema - > Seguridad & Privacidad: > privacidad toca- > entrada de accesibilidad y agrega tu aplicación.

Si, como yo, quisiera un acceso directo, en Automator cree un nuevo Apple Script con la aplicación de inicio y seleccione su aplicación. Luego, vuelva a Preferencias del sistema - > Teclado- > Pestañas de acceso directo- > Entrada de servicio y al final de la lista, asigne un acceso directo a su script.

    
respondido por el Rwanou 23.08.2015 - 12:03

Lea otras preguntas en las etiquetas