Skip to content

Archives

  • styczeń 2022
  • grudzień 2021
  • listopad 2021
  • październik 2021
  • wrzesień 2021

Categories

  • Brak kategorii
Trend RepositoryArticles and guides
Articles

Jak zremapować pojedynczy klawisz klawiatury Maca

On 31 grudnia, 2021 by admin

Jak zremapować jeden klawisz klawiatury Mac OS X na drugi bez użycia żadnych zewnętrznych narzędzi? Czy to w ogóle możliwe bez bycia programistą Maca? Okazuje się, że jest to całkiem proste w nowym macOS X 10.12 Sierra przy użyciu małego utilka o nazwie hidutil.

  • Problem
  • Rozwiązanie
  • Automatycznie ustaw niestandardowe mapowanie klawiszy po każdym restarcie
  • Zagadnienia
  • Źródła

Problem

Nie podoba ci się układ twojej klawiatury Maca, lub co gorsza musisz pracować z innym układem w pracy niż masz w domu.W obu przypadkach możesz zainstalować jakieś zewnętrzne narzędzie, które wykona remapping za Ciebie, ale może nie lubisz mieć dodatkowej aplikacji tylko do remappingu jednego klawisza? Mój problem był związany z posiadaniem klawiatury brytyjskiej w domu i amerykańskiej w pracy.Chociaż IMO nie jest problemem przyzwyczaić się do żadnej z nich przełączanie się między nimi na co dzień jest irytujące.Był jeden klawisz w szczególności, który czyni rzeczy trochę trudne z perspektywy dewelopera.Był to klawisz tyldy `.Klawisz tyldy jest umieszczony obok 1/! na klawiaturze amerykańskiej i zastąpiony znakiem sekcji § na klawiaturze brytyjskiej.

Rozwiązanie

Jak się okazuje dla macOS X 10.12 Sierra nie trzeba robić nic więcej niż uruchomienie krótkiego fragmentu kodu, aby dokonać wymaganego remappingu.

Tutaj jest prosty przykład dla problemu, z którym się spotkałem, czyli remapping §/Ł do `/~ key.

hidutil property --set '{"UserKeyMapping": }'

Jak widać musisz umieścić odpowiednie wartości (usage ID) dla HIDKeyboardModifierMappingSrc i HIDKeyboardModifierMappingDst, które będziesz musiał znaleźć w tabeli w oficjalnych docs.Co więcej, dla każdego „Usage ID (hex)” będziesz musiał obliczyć bitowe „OR” z 0x700000000, co jest bardzo proste w większości przypadków, ale jeśli masz z tym trudności, możesz również użyć następującej komendy Bash:

printf '%X\n' "$(( 0x700000000 | 0x64 ))"

Gdzie 0x64 powinno być zastąpione wartością z kolumny „Usage ID (hex)”.

Aby sprawdzić aktualne/efektywne mapowania możesz uruchomić:

hidutil property --get "UserKeyMapping"

I ostatnie, ale nie mniej ważne. Aby zresetować wszystko, co do tej pory ustawiłeś, po prostu wykonaj:

hidutil property --set '{"UserKeyMapping": }'

NOTE

Wszystkie zmiany dokonane za pomocą hidutil są natychmiastowe, więc nie musisz niczego uruchamiać ponownie.

Automatycznie ustaw niestandardowe mapowanie klawiszy po każdym restarcie

Utwórz plik plist, np. /Library/LaunchDaemons/org.custom.keyboard-remap.plist:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"> <dict> <key>Label</key> <string>org.custom.keyboard-remap</string> <key>ProgramArguments</key> <array> <string>/usr/bin/hidutil</string> <string>property</string> <string>--set</string> <string>{"UserKeyMapping": }</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <false/> </dict></plist>

Następnie załaduj go za pomocą sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist, aby był ładowany przy każdym ponownym uruchomieniu systemu.

Jeśli chcesz sprawdzić, czy plik plist został pomyślnie załadowany, możesz użyć sudo launchctl list | grep org.custom.keyboard-remap.plist.

NOTEAAby wyładować plik plist z autostartu systemu użyjsudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist

Zagadnienia

Mam tylko jedno zagadnienie z tym problemem, którym było znalezienie odpowiedniego „Usage ID (hex)” dla znaku sekcji § key.Jak się okazuje został on nazwany w dokumentach Apple jako Keyboard Non-US \ i |.Aby się tego dowiedzieć użyłem metody prób i błędów, więc nic wymyślnego.Jeśli natkniesz się na jakiś lepszy sposób znalezienia kodów „Usage ID (hex)” proszę podziel się.

W przypadku otrzymania komunikatu błędu Invalid property list po załadowaniu pliku plist najprawdopodobniej próbujesz użyć starej składni pliku plist z <key>Program</key> zamiast wspomnianego <key>ProgramArguments</key>.

Źródła

  • https://developer.apple.com/library/archive/technotes/tn2450/_index.html – uwaga techniczna Apple dotycząca remappingu klawiszy w macOS X Sierra
  • https://apple.stackexchange.com/questions/283252/how-do-i-remap-a-key-in-macos-sierra-e-g-right-alt-to-right-control – temat na Stack Overflow na ten temat
  • https://en.wikipedia.org/wiki/British_and_American_keyboards – możliwe układy klawiatury
  • https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – dokładnie ten sam temat znaleziony po napisaniu tego posta

.

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Archiwa

  • styczeń 2022
  • grudzień 2021
  • listopad 2021
  • październik 2021
  • wrzesień 2021

Meta

  • Zaloguj się
  • Kanał wpisów
  • Kanał komentarzy
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress