Cum să remapezi o singură tastă de tastatură Mac
On decembrie 31, 2021 by adminCum să remapezi o tastă de tastatură Mac OS X pe cealaltă fără a folosi instrumente externe?Este posibil să o faci fără a fi un dezvoltator Mac?Se pare că este destul de simplu în noul macOS X 10.12 Sierra folosind un mic utilitar numit hidutil
.
Problemă
Nu îți place aspectul tastaturii Mac sau, mai rău, trebuie să lucrezi cu un aspect diferit la locul de muncă decât cel pe care îl ai acasă.În ambele cazuri puteți instala un instrument extern care va face remapping-ul pentru dvs. dar poate că nu vă place să aveți o aplicație suplimentară doar pentru remapping-ul unei singure taste?Problema mea a fost legată de faptul că am o tastatură britanică acasă și una americană la locul de muncă. deși nu este IMO o problemă să te obișnuiești cu oricare dintre acestea trecerea de la una la alta în fiecare zi este enervantă. a existat o tastă în special care face lucrurile un pic mai dificile din punctul de vedere al unui dezvoltator. a fost o tastă tilde `. tasta Tilde este plasată lângă 1/! pe tasta americană și este înlocuită de o tastă cu semnul de secțiune § pe cea britanică.
Soluție
Acum se pare că pentru macOS X 10.12 Sierra nu trebuie să faceți nimic mai mult decât să rulați o scurtă bucată de cod pentru a face remapping-ul necesar.
Iată un exemplu simplu pentru problema cu care mă confruntam și care consta în remappingul tastei §/£ în `/~.
hidutil property --set '{"UserKeyMapping": }'
După cum vedeți, trebuie să plasați valorile corespunzătoare (ID de utilizare) pentru HIDKeyboardModifierMappingSrc
și HIDKeyboardModifierMappingDst
pe care va trebui să le găsiți într-un tabel din documentația oficială.Mai mult, pentru fiecare „ID de utilizare (hexazecimal)” va trebui să calculați „OR” în sensul biometric cu 0x700000000
, ceea ce este foarte ușor în majoritatea cazurilor, dar dacă întâmpinați dificultăți în acest sens, puteți utiliza, de asemenea, următoarea comandă Bash:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
În care 0x64
ar trebui să fie înlocuită cu o valoare din coloana „ID de utilizare (hexazecimal)”.
Pentru a verifica corespondențele actuale/efective puteți rula:
hidutil property --get "UserKeyMapping"
Și nu în ultimul rând. Pentru a reseta tot ce ați configurat până acum, executați doar:
hidutil property --set '{"UserKeyMapping": }'
NOTE
Toate modificările făcute cu
hidutil
sunt imediate, deci nu trebuie să reporniți nimic.
Automat setarea automată a mapării personalizate a tastelor după fiecare repornire
Crearea unui fișier plist, de exemplu /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>
Încărcați-l apoi cu sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
astfel încât să fie încărcat la fiecare repornire a sistemului.
Dacă doriți să verificați dacă fișierul plist a fost încărcat cu succes, puteți folosi sudo launchctl list | grep org.custom.keyboard-remap.plist
.
NOTAPentru a descărca fișierul plist de la pornirea automată a sistemului folosiți
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Imprejurări
Am o singură problemă cu această problemă care a fost găsirea unui „ID de utilizare (hexazecimal)” adecvat pentru cheia § semnul de secțiune.Se pare că a fost numit în documentele Apple ca Keyboard Non-US \ și |.Pentru a afla acest lucru am folosit o abordare de încercare și eroare, deci nimic sofisticat.Dacă veți găsi o modalitate mai bună de a găsi codurile „Usage ID (hex)”, vă rugăm să împărtășiți.
În cazul în care primiți mesajul de eroare Invalid property list
după încărcarea fișierului plist, cel mai probabil încercați să utilizați vechea sintaxă pentru fișierul plist cu <key>Program</key>
în loc de <key>ProgramArguments</key>
menționat.
Surse
- 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 același subiect găsit după ce am scris această postare
.
Lasă un răspuns