38 votos

Activar "Usar todas las F1, F2 como teclas estándar" mediante script

Activo la opción "Usar todas las F1, F2 como teclas estándar" muy a menudo y me gustaría automatizarlo mediante un script (o un atajo de teclado). ¿Es posible? He intentado buscar en Google los argumentos adecuados para defaults write ... pero sin éxito.

fn settings


Actualización: Terminé creando https://github.com/jkbrzt/MacOS-fn-toggle basado en las respuestas aquí.

Actualización II: Ahora también hay - https://github.com/Pyroh/Fluor - una aplicación de la barra de menús muy agradable que permite cambiar automáticamente el comportamiento de las teclas fn del teclado en función de la aplicación activa.

29voto

Fuzzy Purple Monkey Puntos 702
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 puede utilizar 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 entrar.

4 votos

He empaquetado este script como una aplicación usando Automator para que se pueda ejecutar rápidamente desde Spotlight: github.com/jkbr/MacOS-fn-toggle

0 votos

@jkbr Tu aplicación en github es justo el tipo de cosa que estaba buscando. Gracias.

1 votos

También puede guardar un script como una aplicación desde el Editor de AppleScript. Solo tiene que pegar el script en el Editor de AppleScript, pulsar S y establecer el formato en aplicación.

11voto

Joe Puntos 536

No sé de script pero con un poco de ingeniería inversa y googleando, hice esto ya que no me gustaba el material existente de AppleScript GUI que había:

https://github.com/nelsonjchen/fntoggle

Binario compilado (Poner en tu PATH o si no sabes lo que es entonces /usr/local/bin/ ): https://github.com/nelsonjchen/fntoggle/releases

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

Este script no requiere que la accesibilidad de la GUI esté activada. Tampoco requiere cerrar y volver a abrir la sesión.

0 votos

¿Sigue funcionando en Sierra? No funciona aquí.

0 votos

@WarrenP Este tema puede ser esclarecedor. github.com/nelsonjchen/fntoggle/issues/4

0 votos

Gracias. Funciona en Mojave 10.14.6

5voto

user2245192 Puntos 11

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

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

Puedes escribirlo, sin embargo no cambiará hasta que reinicies. (Traté de matar a Dock y Finder en su lugar, no hubo 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.

0 votos

Gracias, esa es la clave correcta. Sin embargo, cambiarla directamente no parece cambiar el comportamiento.

0 votos

No ayuda aunque se ha reiniciado

1voto

martinerk0 Puntos 16

En realidad, no tienes que ejecutar ninguna aplicación con spotlight ni nada por el estilo, lo mejor en mi opinión es hacerlo:

  1. Crear un nuevo servicio en Automator

  2. Arrastre: "Ejecutar Apple script

  3. En el "Servicio recibe seleccionado": elija 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 elija: "Servicios"

  8. En la derecha, desplázate hasta el General, y asigna a tu servicio alguna tecla de acceso rápido única, yo elijo cmd+mayúsculas+L

  9. ¡Eso es! No es muy rápido ni nada, pero no tienes que ejecutar ninguna aplicación ni ir a las Preferencias tú mismo.

Adenda: Con EL Capitan esto funciona sólo cuando Automator está enfocado, de lo contrario (por ejemplo, si invocas el script a través de un atajo de teclado) obtienes el mensaje "La acción "Ejecutar AppleScript" encontró un error".

0voto

alex Puntos 3964

0 votos

¡Bienvenido a Ask Different! Has publicado esto como una respuesta, que es sólo para cosas que responden directamente a la pregunta formulada. Las respuestas en Ask Different deben ser algo más que un simple enlace. Está bien que incluyas un enlace, pero por favor, resúmelo o haz un extracto en la respuesta. La idea es que la respuesta sea independiente. Por favor, echa un vistazo a la Preguntas frecuentes para más información. Gracias.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X