Alterno la configuración "Usar todas las teclas F1, F2 como teclas estándar" con mucha frecuencia y me gustaría automatizarla a través de un script (o un atajo de teclado). ¿Es posible? He intentado buscar en Google los argumentos correctos defaults write ...
pero sin éxito.
Actualización: terminé creando https://github.com/jkbrzt/macos-fn-toggle según las respuestas aquí.
Actualización II: ahora también hay, https://github.com/Pyroh/Fluor , una aplicación de barra de menú realmente agradable que le permite cambiar automáticamente el comportamiento de las teclas fn del teclado según la aplicación activa.
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 podría usar defaults write -g com.apple.keyboard.fnState -bool true
, pero no conozco ninguna forma de aplicar los cambios sin cerrar la sesión y volver a iniciarla.
No sé sobre secuencias de comandos, pero con un poco de ingeniería inversa útil y búsqueda en Google, hice esto porque no me gustaban las cosas existentes de la GUI de AppleScript que existían:
https://github.com/nelsonjchen/fntoggle
Binario compilado (Tírelo a su RUTA o si no sabe qué es entonces /usr/local/bin/
): https://github.com/nelsonjchen/fntoggle/releases
Llámelo desde cualquier lugar (ControlPlane, Automator, sh
etc.) ejecutando fntoggle on
o fntoggle off
.
Este script no requiere que se active la accesibilidad de la GUI. Tampoco requiere cerrar sesión y volver a iniciarla.
Puede 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 a 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 conocimiento sobre lo que lee este archivo plist podría escribir un script para matar y reiniciar lo que sea que lea este plist, lo que debería hacer que reconozca el cambio.
En realidad, no tienes que ejecutar ninguna aplicación con Spotlight ni nada, la mejor manera, en mi opinión, es:
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"
Guardar como "tunombre"
A la derecha, desplácese hacia abajo hasta General y asigne a su servicio una tecla de acceso directo única, elijo cmd+shift+L
¡Eso es! No es muy rápido ni nada, pero no tienes que ejecutar ninguna aplicación o ir a Preferencias tú mismo.
Anexo: con EL Capitan, esto funciona solo cuando Automator está enfocado, de lo contrario (por ejemplo, si invoca el script a través de un atajo de teclado) obtendrá el mensaje "La acción "Ejecutar AppleScript" encontró un error".
Algunos AppleScript que podrían ayudar: Applescript para alternar las teclas F1-F11 como teclas de función - MacRumors Forums
He escrito una aplicación (gratuita) que hace justo lo que estás buscando. Puede descargarlo directamente desde http://www.techmasterdesign.com/fnswitch/
El código fuente está disponible aquí: http://www.techmasterdesign.com/forum/viewtopic.php?f=2&t=668
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árdelo, agréguelo a Aplicaciones. Para evitar el "Editor de AppleScript no tiene acceso de asistencia permitido", vaya a Preferencias del sistema->Seguridad y privacidad->Toque de privacidad->Entrada de accesibilidad y agregue su aplicación.
Si, como yo, desea un atajo, entonces en Automator cree un nuevo Apple Script con Iniciar aplicación y seleccione su aplicación. Luego regrese 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 secuencia de comandos.
Jakub Roztócil
mdwhatcott
Lrí
espía
usuario69047
tim dearborn