Próbowałem to rozgryźć od dłuższego czasu. Mam dość typowy skrypt obsługi administracyjnej Mac OS:
https://gist.github.com/ryanpcmcquen/b2e608311f286a4ab3e1
Chciałbym zmienić skróty Kontroli misji na wszystkie Ctrl+ Alt+ ...zamiast Ctrl+ .... Na przykład wartością domyślną jest: Ctrl+, Upaby aktywować kontrolę misji. Chciałbym zmienić to na Ctrl+ Alt+ Up, ponieważ obecny skrót jest w konflikcie z innymi programami, których używam.
Zauważ, że już wiem, jak to zrobić System Preferences > Keyboard > Shortcuts
, szukam skryptowalnego rozwiązania dla wiersza poleceń.
EDYCJA: Dzięki @ user3439894 przeszedłem i napisałem skrypt, aby zmienić wszystkie klucze Plist na to, co chcę, aby były. Jedynym problemem jest to, że nie działa. :-(
Oto co mam do tej pory:
#!/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
źródło
type = standard;
powinna w rzeczywistości zawieraćtype = 'standard';
cytaty'standard'
. To powiedziawszy jednak, czasami nawet przy poprawnie utworzonej linii poleceń zmiana po prostu nie działa, nawet po; killall -u $USER cfprefsd
dodaniu na końcudefaults
polecenia . Również pełna ścieżka do.plist
pliku w tym przypadku użycia nie jest konieczna i po prostu npdefaults write com.apple.symbolichotkeys AppleSymbolicHotKeys ...
. Reszta polecenia jest wszystkim, co jest konieczne.Odpowiedzi:
To nie jest bezpośrednia odpowiedź, chociaż mam nadzieję, że przedstawione tu informacje pomogą ci uzyskać bezpośrednią odpowiedź.
Mogę powiedzieć, jakie zmiany w którym pliku, po zmianie domyślnego skrótu klawiaturowego do kontroli misji z Strzałka kontrolna w górę na Strzałka kontrolna-opcja. Jest to „numer pozycji 2” tablicy „parametrów” w słowniku „wartości” słownika „32” i słownika „34” słownika „AppleSymbolicHotKeys” w
/Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plist
pliku.Oto
defaults read
reprezentacjacom.apple.symbolichotkeys.plist
struktury pliku, ponieważ odnosi się do zmian dokonanych w określonych powyżej okolicznościach.Kontrola misji z domyślną strzałką kontroli
Kontrola misji zmieniła się na Strzałkę w górę, Control-Option
Sekcja BŁĘDY strony podręcznika
defaults
mówi:Jest to doskonały przykład, ponieważ będzie to bardzo złożona linia poleceń, w
defaults
której zapisuje wartości docelowe do elementów tablicy docelowej, jeśli jest to wykonalne. Tylko do Twojej wiadomości ... Jeśli masz zamiar wykonaćdefaults write com.apple.symbolichotkeys ...
polecenie, najpierw wykonaj kopię zapasową pliku docelowego.Inną opcją jest użycie AppleScript do zmiany ustawień poprzez nawigację w interfejsie GUI Preferencji systemowych, co również będzie nieco skomplikowane w porównaniu do ustawiania obiektu najwyższego poziomu, którym nie jest tutaj cel. Nie jestem nawet pewien, czy to wykonalne, ale gdybym potrzebował zautomatyzowanego sposobu, wymyśliłbym to, jednak nie mam czasu, aby wymyślić którąkolwiek z metod, przepraszam.
Przynajmniej teraz wiesz, jakie zmiany gdzie i skąd możesz być w stanie samodzielnie to ustalić lub uzyskać dodatkową pomoc w poznaniu tego trochę więcej.
Oto obcięty obraz w Xcode
com.apple.symbolichotkeys.plist
pliku.BTW Zatrzymałem zmiany za pomocą narzędzia innej firmy, które zarejestrowało zmiany w systemie plików, a następnie przekonwertowałem te informacje na dane bardziej czytelne dla człowieka, aby dostarczyć te informacje.
źródło
filemon
było to częścią Dodatków z książki „Mac OS X Internals - Do rdzenia Apple” w postaci kodu źródłowego,filemon.c
który skompilowałem do pliku wykonywalnego w moim systemie. Następnie porównałem różnice w zmienionym pliku jego aktualnego stanu z plikiem z kopii zapasowej Time Machine wykonanej tuż przed zmianami. Możesz także użyć natywnego polecenia fs_usage .Oto moje zalecenie: skorzystaj z narzędzia takiego jak Karabiner, aby dokonać takiej personalizacji.
Jako programista chcę powiedzieć, że osobiście uważam to za fascynujący i kuszący problem, i naprawdę pokazuje brzydszą, ciemniejszą stronę macOS, która ukrywa się za kulisami, którą tylko twórcy oprogramowania i hakerzy mogą naprawdę docenić ...
Problem jest dość prosty: chcę tylko zmienić domyślną kombinację klawiszy na własne powiązanie.
Dlaczego, u licha, jest to takie trudne / skomplikowane? Zamierzam znaleźć i opublikować rozwiązanie ... Bądź na bieżąco.
źródło