Uwaga techniczna Apple TN2450 opisuje sposób mapowania kluczy. Uruchomienie następującego polecenia spowoduje ponowne mapowanie Right Alt na Right Control.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
Zauważ, że powyższe polecenie nie przełącza prawego Alt i Right Control. Obaj będą mieli Prawą Kontrolę. Jeśli masz MacBooka, nie zauważysz tego, dopóki nie podłączysz zewnętrznej klawiatury. Jeśli chcesz przełączyć Right Alt i Right Control, musisz dodać drugie polecenie przełączania, takie jak poniżej.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e4,
"HIDKeyboardModifierMappingDst":0x7000000e6},
{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
Tabela u dołu Noty technicznej zawiera listę wartości szesnastkowych dla każdego klucza. Aby uogólnić powyższą odpowiedź na zamianę dowolnego klucza, musisz or
wraz z nią podać wartość szesnastkową z tej listy 0x700000000
. Poniższy kod Python pokazuje jeden ze sposobów na to.
In [1]: def convert(val):
...: int_val = int(val, 16)
...: int_ref = 0x700000000
...:
...: return hex(int_ref | int_val)
...:
In [2]: r_alt = '0xE6'
In [3]: print(convert(r_alt))
0x7000000e6
Src
iDst
.\
w mojej klawiaturze jest tym,Shift+Option+7
który chciałbym zastąpić czymś prostszym, na przykład zOption+.
którego prawie nie korzystam. W jaki sposób mogę to zrobić? Dzięki za pomoc.Bardziej ogólne i przyjazne dla użytkownika podejście to użycie Karabiner-Elements , która jest wersją Karabinera, która działa na Sierra.
źródło
To jest uzupełnienie odpowiedzi Stevena C. Howella.
Mam nowego MacBooka Pro ze skandynawską klawiaturą. Ten nowy model nie ma już klawisza Esc, co jest dla mnie znaczącym utrudnieniem.
Odkryłem, że następujące słowa będą tłumaczyć klawisz § (lewy górny, lewy 1 i powyżej klawisza tab) - co, jak sądzę, nigdy wcześniej nie używałem do niczego - do utworzenia Esc.
W dokumentacji Apple'a (połączonej z odpowiedzią Stevena) jest to oznaczone jako „Klawiatura poza USA \ i |” (0x64).
Kilka „nie-amerykańskich” klawiszy jest trudnych do wykrycia, ponieważ zazwyczaj odnoszą się do klawiszy, które mają inną etykietę na używanej klawiaturze. (Odkryłem również, że „poważny akcent i tylda” odnosi się do klawisza między lewym shiftem a z, który wytwarza się na mojej klawiaturze
<
. Nie byłem w stanie ustalić, który klawisz odpowiada „Non-US#
and~
” i nie eksperymentowałem dalej, gdy znalazłem mój klucz.) Jeśli chcesz eksperymentować, spróbuj uruchomić skrypt w terminalu, aż znajdziesz klucz, którego potrzebujesz:Powoduje to zapętlenie klawiszy i zmienia je pojedynczo, w nadziei, że dzięki próbom i błędom znajdziesz klucz, który nie jest szczególnie przydatny. Spróbuj wpisać coś, gdy o to poprosi - jeśli otrzymasz
g
zamiast tego, czego się spodziewałeś, znalazłeś odpowiedni kod klucza. (Zmień0x70000000a
na coś innego, jeślig
nie jest to dla ciebie wygodny wybór. Może chcesz ponownie przypisaćg
klucz?) Po zakończeniu pisania naciśnij Enter, aby przejść do następnego klawisza.Jeśli chodzi o wartość, ostatnim poleceniem w pętli jest sposób zapełniania wszystkich
UserKeyMapping
ustawień:Po uruchomieniu uruchamia
hidutil property --get UserKeyMapping
sięale wygląda na to, że nie możesz podać tej wartości, aby zmienić ustawienie (a raczej akceptuje, ale ignoruje to wejście).
(Jeśli nie jesteś zaznajomiony z terminalem, po prostu skopiuj / wklej rzecz od
for
do momentu, gdy zostanieszdone
o tobash$
poproszony lub podobny.)Zgodnie z tym powiązanym pytaniem Przepełnienie stosu możesz umieścić polecenie w pliku skryptu w katalogu domowym i dodać je do
launchd
konfiguracji, aby ta zmiana była trwała.W przypadku, gdy niektórzy czytelnicy nie czują się komfortowo, robiąc to samodzielnie, oto krótki skrypt, który zrobi to za Ciebie. Ponownie po prostu skopiuj / wklej to w wierszu polecenia Terminal.
Oczywiście, jeśli skończyłeś z innym kluczem niż
0x700000064
musisz to zmienić w skrypcie lub w pliku,"$HOME"/bin/userkeymapping
to kończy się tworzenie, jeśli już uruchomiłeś powyższe.źródło
LoginHook
ale to nie działa na mnie, a na podstawie stackoverflow.com/a/22872222/874188 przeszedłem dolaunchd
podejścia zamiast.Jeśli wszystko, co chcesz zrobić, to zmienić przypisanie jednego klucza
Przykład: Jak zmienić przypisanie klawisza Escape na komputerze Mac
Przejdź do menu Apple i wybierz „Preferencje systemowe”, a następnie przejdź do panelu preferencji „Klawiatura” i wybierz kartę „Klawiatura”
Kliknij przycisk „Klawisze modyfikujące” w prawym dolnym rogu
odniesienie
źródło
Jeśli chcesz przywrócić ustawienia domyślne:
źródło