2010-08-10 15 views
17

Casi nunca utilizo las teclas de función en mi macbook pro. La mayoría de las veces los utilizo para volumen, brillo, etc. Ahora que comencé a jugar a Starcraft 2, quiero usarlos sin tener que presionar la tecla fn.Activar/desactivar claves Fn desde la línea de comandos en Mac

Quiero escribir un pequeño script de shell que activará la casilla de verificación "Utilizar todas las teclas F1, F2, etc. como teclas de función estándar". Estaba pensando que podría usar el comando defaults para cambiarlo, pero no estaba seguro de qué valores usar. De esta forma no tengo que cambiar las preferencias cada vez que quiero jugar. Puedo ejecutar el script que cambiará las teclas e incluso lanzará el juego.

¿Alguna idea?

+0

Esta pregunta puede ser muy antigua, pero sigue siendo bastante alta en el ranking de búsqueda. Para cualquiera que lo encuentre ahora, hay una aplicación llamada Palua (http://www.molowa.com/mac-os-x/palua/palua-3-0/) que cambia el estado por usted, incluido de manera inteligente en el cambio de aplicación. También está FunctionFlip (http://kevingessner.com/software/functionflip/) que gira permanentemente solo un subconjunto de las teclas. – spikeheap

Respuesta

3

El comando es defaults write -g com.apple.keyboard.fnState, aunque he tenido problemas en el pasado al cambiarlo. Terminé simplemente usando un AppleScript. Darle una oportunidad.

defaults write -g com.apple.keyboard.fnState -boolean true 

Editar
Para detalles, los problemas que he tenido es que se cambia el valor real, pero no cambia la configuración activa en Preferencias del sistema ni la palanca fnState, porque el archivo es solo leer en el inicio/inicio de sesión, etc. Además, realizar cambios en un archivo de configuración que se abre con otra tarea parece una buena manera de dañar el archivo.

+0

Hasta donde yo sé, el comando 'defaults' no es lo mismo que simplemente cambiar el archivo. Me da la impresión de que está ingresado en el mecanismo de valores predeterminados/preferencias del sistema operativo, que debe notificar a cualquier aplicación que le interese. –

+1

Al igual que una nota añadida, acabo de probar esto en Mavericks sin resultado funcional. – Tango

8

Un AppleScript que debe hacer el truco - tomado de http://scriptbuilders.net/files/fn1.1.html, con ligeras modificaciones

--Check if GUI Scripting is Enabled 
tell application "System Events" 
    if not UI elements enabled then 
     set UI elements enabled to true 
    end if 
end tell 

--Enable/Disable "Use all F1, F2, etc. keys as standard function keys" option in Keyboard & Mouse Preference pane and close System Preferences 
tell application "System Events" 
    tell application "System Preferences" 
     reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard" 
    end tell 
    click checkbox 1 of tab group 1 of window 1 of application process "System Preferences" 
end tell 
if application "System Preferences" is running then 
    tell application "System Preferences" to quit 
end if 

Probado en MacOS 10.6.4

+0

Este _technically_ no es una solución de línea de comando, ya que usa AppleScript para acceder a los elementos de la GUI, dejando así la línea de comando. –

+1

si realmente lo desea, puede ejecutar esto en la línea de comando usando 'osascript << EOF [pegar script aquí] EOF' – user123444555621

+0

Al igual que una nota añadida, acabo de probar esto en Mavericks y recibí mensajes de error. No funcionará en Mavericks. – Tango

2

Puede instalar el impresionante Keyremap4Macbook.

En Preferencias del sistema-> Preferencias del teclado, asegúrese de que "Usar todas las teclas F1, F2, etc. como teclas de función estándar" esté marcado como un requisito.

  • Abrir KeyRemap4MacPreferencias de libros.
  • Navegue a la opción "Modo de paso".
  • Compruebe el "Cambiar Fn + Escape para alternar" Modo de paso "
  • Abra" Cambiar clave F1..F19 "y compruebe la opción" Macbook Pro "o" Macbook Air "eligiendo el tipo de mac correcto.
+0

También es posible alternar la configuración con algo como 'k =/Applications/KeyRemap4MacBook.app/Contents/Applications/KeyRemap4MacBook_cli.app/Contents/MacOS/KeyRemap4MacBook_cli; s = remap.functional2fn_2008; $ k cambiado | grep -q $ s && $ k deshabilita $ s || $ k habilita $ s'. Consulte [Tests/lib/string/data/checkbox.xml] (https://raw.github.com/tekezo/KeyRemap4MacBook/master/Tests/lib/string/data/checkbox.xml) para los identificadores de la configuración predefinida . – user495470

Cuestiones relacionadas