Working Notes: a commonplace notebook for recording & exploring ideas.
Home. Site Map. Subscribe. More at expLog.
— Kunal
#!/bin/sh
# showkey --scancodes
# showkey --keycodes
# Capslock -> Left Ctrl
setkeycodes 3a 29
setkeycodes ba 29
# Right Alt -> Escape
setkeycodes e038 1
setkeycodes e0b8 1
# https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes
[Unit]
Description=Customize keycodes on boot
[Service]
Type=oneshot
# Capslock -> Left Ctrl
ExecStart=/usr/bin/setkeycodes 3a 29
ExecStart=/usr/bin/setkeycodes ba 29
# Right Alt -> Escape
ExecStart=/usr/bin/setkeycodes e038 1
ExecStart=/usr/bin/setkeycodes e0b8 1
[Install]
WantedBy=multi-user.target
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000e6,"HIDKeyboardModifierMappingDst":0x700000029}]}'
cat > ~/Library/LaunchAgents/com.local.keyremap.plist << 'EOF'
<?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>com.local.keyremap</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--set</string>
<string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000e6,"HIDKeyboardModifierMappingDst":0x700000029}]}</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
launchctl load ~/Library/LaunchAgents/com.local.keyremap.plist