Hvordan omplacerer man en enkelt Mac-tastaturtast
On december 31, 2021 by adminHvordan omplacerer man en Mac OS X-tastaturtast til en anden uden at bruge eksterne værktøjer?Er det overhovedet muligt at gøre uden at være mac-udvikler?Det viser sig at være ret enkelt i det nye macOS X 10.12 Sierra ved hjælp af et lille hjælpeprogram ved navn hidutil
.
Problem
Du kan ikke lide dit Mac-tastaturlayout, eller endnu værre, du er nødt til at arbejde med et andet layout på arbejdet end derhjemme.I begge tilfælde kan du installere et eksternt værktøj, som vil gøre remapping for dig, men måske kan du ikke lide at have ekstra program bare for at remappe en enkelt tast?Mit problem var forbundet med at have britisk tastatur derhjemme og amerikansk på arbejdet. selv om det IMO ikke er et problem at vænne sig til nogen af dem at skifte mellem dem på daglig basis er irriterende. der var især en tast, som gør tingene lidt svært fra et udviklerperspektiv. det var en tilde tast `. tilde tasten er placeret ved siden af 1/! på det amerikanske tastatur og erstattet af et sektionstegn §-tasten på det britiske.
Løsning
Som det viser sig for macOS X 10.12 Sierra behøver man ikke gøre andet end at køre et kort stykke kode for at lave den nødvendige remapping.
Her er et simpelt eksempel på det problem, som jeg stod over for, som var remapping af §/£ til `/~-tasten.
hidutil property --set '{"UserKeyMapping": }'
Som du kan se, skal du placere passende værdier (brugs-id) for HIDKeyboardModifierMappingSrc
og HIDKeyboardModifierMappingDst
, som du skal finde i en tabel i de officielle dokumenter.Desuden skal du for hvert “Usage ID (hex)” beregne bitvis “OR” med 0x700000000
, hvilket er meget nemt i de fleste tilfælde, men hvis du har problemer med det, kan du også bruge følgende Bash-kommando:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
Hvor 0x64
skal erstattes med en værdi fra kolonnen “Usage ID (hex)”.
For at kontrollere aktuelle/effektive tilknytninger kan du køre:
hidutil property --get "UserKeyMapping"
Og sidst men ikke mindst. For at nulstille alt, hvad du har sat op indtil nu, skal du blot udføre:
hidutil property --set '{"UserKeyMapping": }'
NOTE
Alle ændringer foretaget med
hidutil
er øjeblikkelige, så du behøver ikke at genstarte noget.
Automatisk indstille brugerdefineret tastaturtilknytning efter hver genstart
Opret plist-fil f.eks. /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>
Lad den derefter med sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
, så den bliver indlæst ved hver genstart af systemet.
Hvis du vil kontrollere, om din plist-fil blev indlæst med succes, kan du bruge sudo launchctl list | grep org.custom.keyboard-remap.plist
.
NOTATFor at aflæse plist-filen fra systemets autostart skal du bruge
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Spørgsmål
Jeg har kun ét problem med dette problem, som var at finde et passende “Usage ID (hex)” for sektionstegnet §-nøglen.Det viste sig, at det blev navngivet i Apple-dokumentationen som Keyboard Non-US \ and |.For at finde ud af det har jeg brugt trial and error-metode, så intet smart.Hvis du støder på en bedre måde at finde “Usage ID (hex)”-koder, så del dem.
I tilfælde af, at du modtager Invalid property list
fejlmeddelelse efter indlæsning af plist-fil, forsøger du højst sandsynligt at bruge den gamle syntaks for plist-fil med <key>Program</key>
i stedet for den nævnte <key>ProgramArguments</key>
.
Kilder
- 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-emne om det
- https://en.wikipedia.org/wiki/British_and_American_keyboards – mulige tastaturlayouts
- https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – nøjagtig samme emne fundet efter at have skrevet dette indlæg
Skriv et svar