Hogyan lehet egyetlen Mac billentyűzetbillentyűt átcsoportosítani
On december 31, 2021 by adminHogyan lehet az egyik Mac OS X billentyűzetbillentyűt átcsoportosítani a másikra külső eszközök használata nélkül?Egyáltalán lehetséges ez anélkül, hogy mac fejlesztő lennél?Kiderült, hogy az új macOS X 10.12 Sierra-ban elég egyszerű egy kis hidutil
nevű util segítségével.
Probléma
Nem tetszik a Mac billentyűzetkiosztása, vagy rosszabb esetben a munkahelyeden más kiosztással kell dolgoznod, mint otthon.Mindkét esetben telepíthetsz valamilyen külső eszközt, ami elvégzi helyetted a remappinget, de talán nem szeretnéd, ha csak egyetlen billentyű remappingjéhez további alkalmazásod lenne?Az én problémám azzal függött össze, hogy otthon brit billentyűzetem van, a munkahelyemen pedig amerikai.Bár IMO nem probléma megszokni bármelyiket, a kettő közötti napi szintű váltás bosszantó.Volt egy billentyű, ami fejlesztői szempontból kicsit megnehezíti a dolgokat.Ez egy tilde billentyű `.A tilde billentyű az 1/ mellett van elhelyezve! az amerikai billentyűzeten, a brit billentyűzeten pedig egy szakaszjeles § billentyűvel helyettesítve.
megoldás
Mint kiderült, a macOS X 10.12 Sierra esetében nem kell mást tenni, mint egy rövid kódfuttatással elvégezni a szükséges remappinget.
Itt egy egyszerű példa arra a problémára, amivel szembesültem, ami a §/£ átképzése volt a `/~ billentyűre.
hidutil property --set '{"UserKeyMapping": }'
Amint láthatod, a HIDKeyboardModifierMappingSrc
és HIDKeyboardModifierMappingDst
megfelelő értékeket (usage ID) kell elhelyezned, amelyeket a hivatalos dokumentumokban található táblázatban kell keresned.Mi több, minden egyes “Usage ID (hex)” esetében ki kell számolnod a bitenkénti “OR”-t a 0x700000000
-vel, ami a legtöbb esetben nagyon egyszerű, de ha ez nehézségekbe ütközik, használhatod a következő Bash parancsot is:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
Ahol az 0x64
értéket a “Usage ID (hex)” oszlopból származó értékkel kell helyettesíteni.
Az aktuális/hatékony hozzárendelések ellenőrzéséhez futtathatja:
hidutil property --get "UserKeyMapping"
És végül, de nem utolsósorban. Ahhoz, hogy mindent visszaállítson, amit eddig beállított, csak futtassa:
hidutil property --set '{"UserKeyMapping": }'
NOTE
Az
hidutil
segítségével végrehajtott összes változtatás azonnali, tehát nem kell újraindítani semmit.
Automatikusan beállítja az egyéni billentyűleképezést minden újraindítás után
Készítsen plist fájlt pl. /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>
Aztán töltse be a sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
segítségével, hogy minden rendszer újraindításakor betöltődjön.
Ha ellenőrizni szeretné, hogy a plist fájl sikeresen betöltődött-e, akkor használhatja a sudo launchctl list | grep org.custom.keyboard-remap.plist
-t.
MEGJEGYZÉSA plist fájl rendszer automatikus indításából való kitöltésének megszüntetéséhez használd a
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Kérdések
Egyetlen problémám van ezzel a problémával, ami a megfelelő “Használati azonosító (hex)” megtalálása volt a szakaszjelző § kulcshoz.Mint kiderült, az Apple dokumentációban Keyboard Non-US \ és |.Annak érdekében, hogy ezt kiderítsem, próbálgatással és hibával közelítettem meg, tehát semmi különös.Ha jobb módszerrel találkozol a “Usage ID (hex)” kódok megtalálására, kérlek, oszd meg velünk.
Ha a plist fájl betöltése után Invalid property list
hibaüzenetet kapsz, valószínűleg a plist fájl régi szintaxisát próbálod használni az említett <key>ProgramArguments</key>
helyett <key>Program</key>
-val.
Források
- https://developer.apple.com/library/archive/technotes/tn2450/_index.html – Apple Technical Note regarding key remapping in 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 – Stack Overflow topic about that
- https://en.wikipedia.org/wiki/British_and_American_keyboards – possible keyboard layouts
- https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – exact same topic found after writing that post
.
Vélemény, hozzászólás?