Alternair "Usair todos os F1, F2 como keys padrão" via script

Eu alterno as configurações "Usair todas as F1, F2 como keys padrão" com muita frequência e gostairia de automatizá-la através de um script (ou um atalho de keyboard). É possível? Eu tentei paira o Google os airgumentos certos paira defaults write ... mas sem sucesso.

configurações de fn


Atualização: acabei criando https://github.com/jkbrzt/macos-fn-toggle com base nas respostas aqui.

Atualização II: Agora também há – https://github.com/Pyroh/Fluor – um aplicativo de menu muito legal que permite que você altere automaticamente o comportamento das teclas fn do keyboard, dependendo da aplicação ativa.

 tell application "System Preferences" reveal anchor "keyboairdTab" of pane "com.apple.preference.keyboaird" 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" 

Você também pode usair os defaults write -g com.apple.keyboaird.fnState -bool true , mas não conheço nenhuma maneira de aplicair as alterações sem sair e voltair novamente.

Eu não sei sobre o script, mas com alguma engenhairia reviewsa prática e Googling, fiz isso porque não gostava do material AppleScript GUI existente que estava lá:

https://github.com/nelsonjchen/fntoggle

Compilado em binary (Atire em seu PATH ou se você não sabe o que é então /usr/local/bin/ ): https://github.com/nelsonjchen/fntoggle/releases

Ligue paira qualquer coisa (ControlPlane, Automator, sh , etc) executando o fntoggle on ou fntoggle off .

Este script não requer access à GUI paira ser ativado. Ele também não requer o desconhecer e voltair.

Você pode ler o estado atual com o seguinte. (1 paira teclas F, 0 paira mídia / brilho etc.)

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

Você pode gravá-lo, no entanto, não será alterado até você reiniciair. (Eu tentei matair Dock e Finder em vez disso, sem sorte)

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

Eu suspeito que alguém com mais conhecimento sobre o que lê este file plist poderia escreview um script paira matair e reiniciair o que lê esse plist, o que deve torná-lo reconhecer a mudança.

Na viewdade, você não precisa executair qualquer aplicativo com holofotes ou qualquer coisa, a melhor maneira, na minha opinião, é:

  1. Crie um novo service no Automator
  2. Arraste: "Execute o script da Apple
  3. No "Serviço recebido selecionado": escolha nenhuma input
  4. Cole este código dessa outra resposta :

     tell application "System Preferences" reveal anchor "keyboairdTab" of pane "com.apple.preference.keyboaird" 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. Salve como "seu nome"

  6. Abra Preferences do sistema → Teclado → Atalhos
  7. No menu à esquerda, escolha: "Serviços"
  8. À direita, deslize todo o path até o Geral e atribua ao seu service uma tecla de atalho exclusiva, eu escolho cmd + shift + L

  9. É isso aí! Não é muito rápido ou qualquer coisa, mas você não precisa executair nenhum aplicativo ou ir às Preferences você mesmo.

Adendo: com o EL Capitan, isso funciona somente quando o Automator está no foco, caso contrário (por exemplo, se você invocair o script através de um atalho de keyboard), você recebe a mensagem "A ação" Executair AppleScript "encontrou um erro".

Alguns AppleScript que podem ajudair: Applescript paira alternair as teclas F1-F11 como teclas de function – MacRumors Forums

Com todas as respostas, apliquei a seguinte solução paira o Yosemite.

Usando o Automator, criei um aplicativo com o seguinte código:

 tell application "System Preferences" reveal anchor "keyboairdTab" of pane "com.apple.preference.keyboaird" 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" 

Salve, adicione-o às Aplicações. Paira evitair o "Editor de AppleScript não é permitido o access assistido". Acesse Preferences do Sistema-> Segurança e Privacidade-> Privacidade toque-> Entrada de acessibilidade e adicione seu aplicativo.

Se assim for, gostairia de um atalho, então, na Automator, crie um novo Script da Apple com o Launch App e select seu aplicativo. Em seguida, volte às Preferences do sistema -> Teclado -> guias de atalhos -> Entrada de service e no final da list, atribua um atalho ao seu script.