Skip to content

Instantly share code, notes, and snippets.

@Im0rtality
Last active June 9, 2025 10:01
Show Gist options
  • Save Im0rtality/582cf302b3dcdada989c7bdf52eca3e1 to your computer and use it in GitHub Desktop.
Save Im0rtality/582cf302b3dcdada989c7bdf52eca3e1 to your computer and use it in GitHub Desktop.
Putting tilde (~) into correct place for Macbook keyboard

Usage

Enable

bash -c "$(gh gist view 582cf302b3dcdada989c7bdf52eca3e1 -f enable-tilde-switch.sh)"

Install

bash -c "$(gh gist view 582cf302b3dcdada989c7bdf52eca3e1 -f install-tilde-switch.sh)"

Disable

bash -c "$(gh gist view 582cf302b3dcdada989c7bdf52eca3e1 -f disable-tilde-switch.sh)"

Uninstall

bash -c "$(gh gist view 582cf302b3dcdada989c7bdf52eca3e1 -f uninstall-tilde-switch.sh)"
#!/bin/bash
sudo hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000035,"HIDKeyboardModifierMappingDst":0x700000035},{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000064}]}'
#!/bin/bash
sudo hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000035,"HIDKeyboardModifierMappingDst":0x700000064},{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000035}]}'
#!/bin/bash
sudo cat << 'EOF' > ~/.tilde-switch && chmod +x ~/.tilde-switch
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000035,"HIDKeyboardModifierMappingDst":0x700000064},{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000035}]}'
EOF
sudo /usr/bin/env bash -c "cat > /Library/LaunchDaemons/org.custom.tilde-switch.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>org.custom.tilde-switch</string>
<key>Program</key>
<string>${HOME}/.tilde-switch</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
</dict>
</plist>
EOF
sudo launchctl load -w -- /Library/LaunchDaemons/org.custom.tilde-switch.plist
#!/bin/bash
sudo launchctl unload -w -- /Library/LaunchDaemons/org.custom.tilde-switch.plist
sudo rm -f -- /Library/LaunchDaemons/org.custom.tilde-switch.plist ~/.tilde-switch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment