Você pode ativar / desativar as teclas de função com um atalho de teclado no OSX?

7

Eu sei que você pode ativar e desativar essa opção na tela Preferências do sistema para 'teclado', mas eu gostaria de saber se posso fazer isso através de um atalho, como faço o tempo todo.

Ben Waine
fonte

Respostas:

9

Para fazer o seguinte funcionar, você precisa Habilitar o acesso a dispositivos auxiliares em Preferências do Sistema »Acesso Universal .


Abra o Automator, selecione Serviço e escolha que o serviço não receba entrada (próximo à parte superior).

Clique duas vezes em Executar AppleScript na categoria Utilitários da biblioteca. Substitua o snippet de código padrão da ação recém-criada pelo seguinte:

tell application "System Preferences"
    set current pane to pane id "com.apple.preference.keyboard"
    tell application "System Events"
        tell process "System Preferences"
            click checkbox "Use all F1, F2, etc. keys as standard function keys" of tab group 1 of window "Keyboard"
        end tell
    end tell
    quit
end tell

As Preferências do Sistema serão iniciadas, mas não serão exibidas e serão encerradas imediatamente após alternar a configuração.

Pressione Command-Spara salvar, nomeie-o, por exemplo, alterne Fn . Resultado:

insira a descrição da imagem aqui


Vá para Preferências do Sistema »Teclado» Atalhos do Teclado »Serviços para atribuir um atalho de teclado para este Serviço.

Daniel Beck
fonte
1
Se as Preferências do Sistema já estiverem em execução quando você executar este comando, ele será encerrado. O código para evitar isso teria inchado essa resposta.
Daniel Beck
A pergunta é etiquetada osx-snow-leopard, que esta resposta parece exigir. Eu não acho que eu posso fazer um serviço no OS X 10.5 a julgar pelo que eu posso ver na minha frente em comparação com gigaom.com/apple/...
Philip Durbin
@ Phillip Não me lembro de como os Serviços funcionavam na versão 10.5, mas um serviço criado pelo Automator é apenas um fluxo de trabalho do Automator salvo ~/Library/Services. Talvez você possa replicar isso manualmente? Para configurar o menu Serviços, use ServiceScrubber.
Daniel Beck
isso funciona na versão 10.6, mas por algum motivo meu atalho de teclado continuava falhando ou disparando quando eu não queria. Então eu troquei para chamá-lo a partir da linha de comando com osascript baseado em stackoverflow.com/questions/3446128/...
Philip Durbin
@ Philips Você sempre pode ativar o menu AppleScript e armazenar o código como scptarquivo ~/Library/Scriptse chamar na barra de menus. Usando o FastScripts de terceiros, você pode atribuir um atalho de teclado.
Daniel Beck
4

Eu sei que este post é antigo, mas não foi possível obter o acima para rodar no Mountinan Lion. Encontrei um trecho semelhante, mas removi algumas partes desnecessárias.

tell application "System Preferences"
    set current pane to pane "com.apple.preference.keyboard"
end tell

tell application "System Events"
    -- If we don't have UI Elements enabled, then nothing is really going to work.
    if UI elements enabled then
        tell application process "System Preferences"
            get properties

            click radio button "Keyboard" of tab group 1 of window "Keyboard"
            click checkbox "Use all F1, F2, etc. keys as standard function keys" of tab group 1 of window "Keyboard"
        end tell
        tell application "System Preferences" to quit
    else
        -- GUI scripting not enabled.  Display an alert
        tell application "System Preferences"
            activate
            set current pane to pane "com.apple.preference.universalaccess"
            display dialog "UI element scripting is not enabled. Please activate \"Enable access for assistive devices\""
        end tell
    end if
end tell

Espero que isto ajude

pechar
fonte
0

Você também pode usar um private.xml como este com KeyRemap4MacBook:

<?xml version="1.0"?>
<root>
  <item>
    <name>test</name>
    <identifier>test</identifier>
    <autogen>__KeyToKey__ KeyCode::F1, VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_CONFIG_TOGGLE_fn</autogen>
    <autogen>__KeyToKey__ KeyCode::BRIGHTNESS_DOWN, VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_CONFIG_TOGGLE_fn</autogen>
  </item>
  <item>
    <name>fn</name>
    <identifier vk_config="true">fn</identifier>
    <autogen>__KeyToKey__ KeyCode::BRIGHTNESS_DOWN, KeyCode::F1</autogen>
    <autogen>__KeyToKey__ KeyCode::BRIGHTNESS_UP, KeyCode::F2</autogen>
    <autogen>__KeyToKey__ KeyCode::EXPOSE_ALL, KeyCode::F3</autogen>
    <autogen>__KeyToKey__ KeyCode::LAUNCHPAD, KeyCode::F4</autogen>
    <autogen>__ConsumerToKey__ ConsumerKeyCode::KEYBOARDLIGHT_LOW, KeyCode::F5</autogen>
    <autogen>__ConsumerToKey__ ConsumerKeyCode::KEYBOARDLIGHT_HIGH, KeyCode::F6</autogen>
    <autogen>__ConsumerToKey__ ConsumerKeyCode::MUSIC_PREV, KeyCode::F7</autogen>
    <autogen>__ConsumerToKey__ ConsumerKeyCode::MUSIC_PLAY, KeyCode::F8</autogen>
    <autogen>__ConsumerToKey__ ConsumerKeyCode::MUSIC_NEXT, KeyCode::F9</autogen>
    <autogen>__ConsumerToKey__ ConsumerKeyCode::VOLUME_MUTE, KeyCode::F10</autogen>
    <autogen>__ConsumerToKey__ ConsumerKeyCode::VOLUME_DOWN, KeyCode::F11</autogen>
    <autogen>__ConsumerToKey__ ConsumerKeyCode::VOLUME_UP, KeyCode::F12</autogen>
    <autogen>__KeyToKey__ KeyCode::F1, KeyCode::BRIGHTNESS_DOWN</autogen>
    <autogen>__KeyToKey__ KeyCode::F2, KeyCode::BRIGHTNESS_UP</autogen>
    <autogen>__KeyToKey__ KeyCode::F3, KeyCode::EXPOSE_ALL</autogen>
    <autogen>__KeyToKey__ KeyCode::F4, KeyCode::LAUNCHPAD</autogen>
    <autogen>__ConsumerToKey__ KeyCode::F5, ConsumerKeyCode::KEYBOARDLIGHT_LOW</autogen>
    <autogen>__ConsumerToKey__ KeyCode::F6, ConsumerKeyCode::KEYBOARDLIGHT_HIGH</autogen>
    <autogen>__ConsumerToKey__ KeyCode::F7, ConsumerKeyCode::MUSIC_PREV</autogen>
    <autogen>__ConsumerToKey__ KeyCode::F8, ConsumerKeyCode::MUSIC_PLAY</autogen>
    <autogen>__ConsumerToKey__ KeyCode::F9, ConsumerKeyCode::MUSIC_NEXT</autogen>
    <autogen>__ConsumerToKey__ KeyCode::F10, ConsumerKeyCode::VOLUME_MUTE</autogen>
    <autogen>__ConsumerToKey__ KeyCode::F11, ConsumerKeyCode::VOLUME_DOWN</autogen>
    <autogen>__ConsumerToKey__ KeyCode::F12, ConsumerKeyCode::VOLUME_UP</autogen>
  </item>
</root>

Consulte a fonte para obter os valores do código-chave e configurações predefinidas .

Lri
fonte