Eu tenho tentado descobrir isso por um longo tempo. Eu tenho um script de provisionamento bastante típico do Mac OS:
https://gist.github.com/ryanpcmcquen/b2e608311f286a4ab3e1
Gostaria de alterar os atalhos de controle da missão para todos ser Ctrl+ Alt+ em ...vez de Ctrl+ .... Por exemplo, o padrão é: Ctrl+ Uppara ativar o Controle da Missão. Gostaria de mudar isso para Ctrl+ Alt+ Up, porque o atalho atual está em conflito com outros programas que eu uso.
Observe que já estou ciente de como fazer isso System Preferences > Keyboard > Shortcuts
. Estou procurando uma solução de linha de comando com script.
EDIT: Graças a @ user3439894, eu fiz um script para alterar todas as chaves plist para o que eu quero que elas sejam. O único problema é que não funciona. :-(
Aqui está o que eu tenho até agora:
#!/bin/bash
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 32 "{enabled = 1; value = { parameters = (65535, 126, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 33 "{enabled = 1; value = { parameters = (65535, 125, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 34 "{enabled = 1; value = { parameters = (65535, 126, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 35 "{enabled = 1; value = { parameters = (65535, 125, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 79 "{enabled = 1; value = { parameters = (65535, 123, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 80 "{enabled = 1; value = { parameters = (65535, 123, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 81 "{enabled = 1; value = { parameters = (65535, 124, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 82 "{enabled = 1; value = { parameters = (65535, 124, 3014656); type = standard; }; }"
chown -Rf `whoami` ~/Library/Preferences/com.apple.symbolichotkeys.plist;
defaults read com.apple.symbolichotkeys
fonte
type = standard;
deve realmentetype = 'standard';
observar as aspas'standard'
. Dito isto, porém, às vezes, mesmo com uma linha de comando devidamente formada, a alteração simplesmente não entra em vigor, mesmo com a; killall -u $USER cfprefsd
adição ao final dodefaults
comando . Além disso, o caminho completo para o.plist
arquivo neste caso de uso não é necessário e, simplesmente, por exemplo,defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys ...
e o restante do comando é tudo o que é necessário.Respostas:
Esta não é uma resposta direta, embora eu espere que as informações aqui apresentadas ajudem você a obter uma resposta direta.
Posso dizer o que muda em qual arquivo quando você altera o atalho de teclado padrão para o Controle de Missão, de Seta para Cima para Controle e Seta para Cima para Opção de Controle. É o "Número do item 2" da matriz "parameters" no dicionário "value" do dicionário "32" e no dicionário "34" do dicionário "AppleSymbolicHotKeys" no
/Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plist
arquivo.Aqui está uma
defaults read
representação dacom.apple.symbolichotkeys.plist
estrutura do arquivo, no que se refere às alterações feitas nas circunstâncias definidas acima.Controle de missão com o padrão de seta de controle
O Controle da Missão foi alterado para Seta com Ctrl e Opção Acima
A seção BUGS da
defaults
página de manual diz:E este é um exemplo perfeito, pois será uma linha de comando muito complexa, usada
defaults
para gravar os valores de destino nos elementos da matriz de destino, se possível. Apenas um FYI ... Se você tentardefaults write com.apple.symbolichotkeys ...
executar um comando, primeiro faça backup do arquivo de destino.A outra opção é usar um AppleScript para alterar as configurações, navegando na GUI de Preferências do Sistema e isso também será um pouco complexo em comparação com a configuração de um objeto de nível superior, que o destino aqui não é. Eu nem tenho certeza de que é possível, no entanto, se eu precisasse de uma maneira automatizada, eu descobriria, no entanto, não tenho tempo para descobrir nenhum dos métodos, desculpe.
Pelo menos agora você sabe o que muda de onde e de onde você pode descobrir por conta própria ou obter ajuda adicional para saber um pouco mais.
Aqui está uma imagem cortada no Xcode do
com.apple.symbolichotkeys.plist
arquivo.Entre, prendi as alterações usando um utilitário de terceiros que registrou as alterações no sistema de arquivos e depois converti essas informações em uma saída legível por humanos para fornecer essas informações.
fonte
filemon
foi parte dos extras do livro "Mac OS X Internals - Para o núcleo da Apple" na forma de código-fontefilemon.c
que eu compilei para um executável no meu sistema. Em seguida, comparei as diferenças no arquivo alterado de seu estado atual com o arquivo de um backup do Time Machine feito pouco antes das alterações. Você também pode usar o comando nativo fs_usage .Esta é minha recomendação: use um utilitário como o Karabiner para aceitar essa personalização.
Como desenvolvedor, quero dizer que, pessoalmente, acho que é um problema fascinante e tentador, e realmente mostra o lado mais feio e sombrio do macOS se escondendo nos bastidores que apenas os desenvolvedores e hackers de software podem realmente apreciar ...
O problema é bastante simples: eu só quero remapear a combinação de teclas padrão para minha própria ligação.
Por que diabos é tão difícil / complicado? Pretendo descobrir e publicar uma solução ... Fique ligado.
fonte