Miten Mac-näppäimistön yksittäisen näppäimen uudelleenkohdistaminen
On 31 joulukuun, 2021 by adminMiten Mac OS X:n näppäimistön näppäinten uudelleenkohdistaminen toiselle näppäimelle ilman ulkoisia työkaluja?Onko se edes mahdollista ilman, että olet mac-kehittäjä?Se osoittautuu melko yksinkertaiseksi uudessa macOS X 10.12 Sierrassa käyttämällä pientä apuohjelmaa nimeltä hidutil
.
Ongelma
Et pidä Mac-näppäimistösi asettelusta tai vielä pahempaa, joudut työskentelemään työssäsi erilaisella asetteluasetelmalla kuin mitä käytössäsi on kotonasi.Kummassakin tapauksessa voit asentaa jonkin ulkoisen työkalun, joka tekee remappingin puolestasi, mutta ehkä et halua ylimääräistä sovellusta vain yhden näppäimen remappingia varten?Ongelmani liittyi siihen, että minulla on brittiläinen näppäimistö kotona ja amerikkalainen töissä.Vaikka IMO ei ole ongelma tottua mihinkään niistä, niiden välillä vaihtaminen päivittäin on ärsyttävää.Oli yksi näppäin erityisesti, joka tekee asiat hieman vaikeiksi kehittäjän näkökulmasta.Se oli tilde-näppäin `.Tilde-näppäin on sijoitettu 1/ vieressä! amerikkalaisessa näppäimistössä ja se on korvattu §-näppäimellä §-näppäimellä brittiläisessä näppäimistössä.
Ratkaisu
Kuten kävi ilmi, macOS X 10.12 Sierra -käyttöjärjestelmässä ei tarvitse tehdä muuta kuin ajaa lyhyt koodinpätkä, jotta tarvittava uudelleenmappaus saadaan tehtyä.
Tässä on yksinkertainen esimerkki kohtaamastani ongelmasta, joka oli §/£:n remapping `/~-näppäimeksi.
hidutil property --set '{"UserKeyMapping": }'
Kuten näet, sinun on asetettava sopivat arvot (usage ID) HIDKeyboardModifierMappingSrc
:lle ja HIDKeyboardModifierMappingDst
:lle, jotka sinun on löydettävä taulukosta virallisista asiakirjoista.Lisäksi jokaiselle ”Usage ID (hex)” -sarakkeelle on laskettava bittimainen ”OR” 0x700000000
:n kanssa, mikä on useimmissa tapauksissa hyvin helppoa, mutta jos sinulla on vaikeuksia sen kanssa, voit myös käyttää seuraavaa Bash-komentoa:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
Jossa 0x64
on korvattava arvolla sarakkeesta ”Usage ID (hex)”.
Tämänhetkisten/toimivien mappien tarkistamiseksi voit suorittaa:
hidutil property --get "UserKeyMapping"
Ja lopuksi. Nollataksesi kaikki tähän mennessä tekemäsi asetukset suorita vain:
hidutil property --set '{"UserKeyMapping": }'
Huomautus
Kaikki
hidutil
:llä tehdyt muutokset ovat välittömiä, joten sinun ei tarvitse käynnistää mitään uudelleen.
Automaattinen mukautetun näppäinkartoituksen asettaminen jokaisen uudelleenkäynnistyksen jälkeen
Luo plist-tiedosto esim. /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>
Lataa se sitten sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
:llä, jotta se ladataan jokaisella järjestelmän uudelleenkäynnistyksellä.
Jos haluat tarkistaa, onko plist-tiedostosi ladattu onnistuneesti, voit käyttää sudo launchctl list | grep org.custom.keyboard-remap.plist
.
HuomautusPoistaaksesi plist-tiedoston latauksen järjestelmän automaattisesta käynnistyksestä käytä
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Kysymykset
Minulla on vain yksi ongelma, joka oli sopivan ”Usage ID (hex)” -nimikkeen löytäminen §-avaimelle.Kuten kävi ilmi, se oli nimetty Applen asiakirjoissa Keyboard Non-US \ ja |.Löytääkseni sen olen käyttänyt kokeilu ja erehdys -menetelmää, joten ei mitään hienoa.Jos törmäät johonkin parempaan tapaan löytää ”Usage ID (hex)” -koodit, ole hyvä ja jaa se.
Jos saat Invalid property list
-virheilmoituksen sen jälkeen, kun olet ladannut plist-tiedoston, yrität luultavimmin käyttää vanhaa syntaksia plist-tiedoston kohdalla, jossa on <key>Program</key>
em. <key>ProgramArguments</key>
:n sijaan.
Lähteet
- https://developer.apple.com/library/archive/technotes/tn2450/_index.html – Applen tekninen huomautus koskien näppäinten uudelleenkuviointia macOS X Sierrassa
- https://apple.stackexchange.com/questions/283252/how-do-i-remap-a-key-in-macos-sierra-e-g-right-alt-to-right-control – Stack Overflow -aihe tästä
- https://en.wikipedia.org/wiki/British_and_American_keyboards – mahdolliset näppäimistöasettelut
- https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – täsmälleen sama aihe löytyi tuon postauksen kirjoittamisen jälkeen
.
Vastaa