Jako intensywny użytkownik Emacsa lubię mapować klawisz Caps Lock, aby działał jak klawisz Ctrl. Aby to zrobić, w okienku preferencji klawiatury znajduje się wygodne okno dialogowe. Problem polega jednak na tym, że to ustawienie zostaje utracone, gdy ktoś zaloguje się na inne konto, które nie ma ustawionej preferencji.
Czy jest jakiś sposób zrobić to samo, co okno dialogowe preferencji z wiersza poleceń?
Odpowiedzi:
Zmiana preferencji i uruchomienie
defaults -currentHost read -g
pokazuje, jakie zmiany są zapisywane. Zamierzałem napisać krótki skrypt bash, aby go zautomatyzować, ale wygląda na to, że zostałem pobity:źródło
-g
robi flaga? Nie widziałem tego na stronie podręcznika dladefaults
. Wygląda na to, że zamienia dwa zestawy wartości: 4 z 2 i 10 z 12, ale zmieniają się tylko dwa modyfikatory. Czy możesz opracować, czy po prostu spojrzałeś na wyniki, ale nie wiesz, co one właściwie przedstawiają? (Na początku podejrzewałem cztery kody kluczy - dwa po lewej, dwa po prawej - ale nie wydają się być kodami kluczowymi, przynajmniej nie tak, jak zgłosił sterownik klawiatury.)Możesz użyć KeyRemap4MacBook z PCKeyBoardHack . Pozwala także używać kluczy Emacsa w dowolnej aplikacji Mac, w tym także tych, które nie używają Cocoa, takich jak aplikacje MS.
źródło
Z „Aktualizowanie mapowania klawiszy modyfikatora poprzez domyślne narzędzie poleceń” :
defaults -currentHost write -g com.apple.keyboard.modifiermapping.1133-50475-0 -array '<dict><key>HIDKeyboardModifierMappingSrc</key><integer>0</integer><key>HIDKeyboardModifierMappingDst</key><integer>2</integer></dict>
Zmień
1133
oraz50475
na identyfikatory dostawcy i produktu pokazane przezioreg -n IOHIDKeyboard -r
.src 0
idst -1
wyłączy się caps lock.defaults -currentHost write -g
modyfikuje:~/Library/Preferences/ByHost/.GlobalPreferences.*.plist
Musisz się wylogować i zalogować ponownie, aby zastosować zmiany. Jeśli wartości są łańcuchami (jak w odpowiedzi @pithyless), zmiany są pokazane w Preferencjach systemowych, ale nie mają żadnego efektu.
Wartości kluczy :
źródło
Łącząc kilka odpowiedzi razem, wymyśliłem ten skrypt, który wydaje się działać ( mapowanie Caps-lock na Control ).
Jedyny problem, że wydaje się, że nie ma to żadnego wpływu ... :(
Zaktualizuję, jeśli go uruchomię.
źródło
Chciałem zamienić prawe polecenie tylko za pomocą odpowiednich klawiszy opcji .
Kiedy konfiguruję globalną wymianę poleceń i opcji w Preferencjach systemowych ...> Klawiatura> Klawisze modyfikujące ..., w systemie jest następująca konfiguracja (która działa zgodnie z oczekiwaniami):
Ale kiedy go modyfikuję, zamieniam tylko prawą stronę jak poniżej - to nie działa:
Jest tak, ponieważ wartości są zapisywane jako ciągi, a nie liczby całkowite. Możesz to zobaczyć za pomocą:
Tak więc właściwym sposobem aktualizacji ustawienia jest użycie formatu XML:
Na koniec musisz się wylogować i zalogować ponownie.
źródło