-
-
Save maurofaccenda/aca92d695220e545c5e7ffd28dc365c4 to your computer and use it in GitHub Desktop.
hs.hotkey.bind({}, "§", function() hs.eventtap.keyStroke({}, "`") end ) | |
hs.hotkey.bind({ "cmd" }, "§", function() hs.eventtap.keyStroke({ "cmd" }, "`") end ) | |
hs.hotkey.bind({ "shift" }, "§", function() hs.eventtap.keyStroke({ "shift" }, "`") end ) | |
hs.hotkey.bind({ "cmd", "shift" }, "§", function() hs.eventtap.keyStroke({ "cmd", "shift" }, "`") end ) |
I exactly want the same behavior you describe (shift + backtick
producing ~
). It doesn't works and still print ±
.
It looks like hs.hotkey.bind({ "shift" }, "§", function() hs.eventtap.keyStroke({ "shift" }, "`") end )
doesn't behave well for me.
@ghigt I am sorry to hear that. It works fine for me. You can also play with some debugging and see what's going on.
I used this (paste on the console and once you are done, just reload config) it might help identify the problem:
local function keyCallback(event)
hs.alert(hs.keycodes.map[event:getKeyCode()])
end
keyWatcher = hs.eventtap.new({ hs.eventtap.event.types.keyDown }, keyCallback)
keyWatcher:start()
As for reference, after pasting that on the console and pressing shift+§
I get 2 notifications: one with §
and another with backtick
.
After testing with your debug, I finally saw that the ~
worked out of the MacOS Terminal app (it works fine with iTerm though). So I don't know why but it works everywhere except in the app I want to use it 😄
Big thanks for your help!!
The sudo hdutil
stopped working for me as of today (macos 15.2) with the following error:
$ sudo hidutil property --set '{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc": 0x700000064, "HIDKeyboardModifierMappingDst": 0x700000035}]}'
Attempt to remap alphanumerics / special characters. If setting fails, ensure Terminal has input monitoring permissions.
This Hammerspoon config works and saved my day! Thank you! 🎉
@VojtechVitek hdutil
shouldn't need sudo
after MacOS 15.2 update any more. Did you try without?
$ hidutil property --set '{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc": 0x700000064, "HIDKeyboardModifierMappingDst": 0x700000035}]}'
Attempt to remap alphanumerics / special characters. If setting fails, ensure Terminal has input monitoring permissions.
Add Terminal
to your settings : https://support.apple.com/guide/mac-help/control-access-to-input-monitoring-on-mac-mchl4cedafb6/mac
My current MacBook has the American keyboard layout, so I don't need this anymore, however, it is important to keep this updated for those who need it.
Thank you @ghigt and @VojtechVitek. I updated the first comment to reflect your findings.
Hi @ghigt , not sure what you meant. But
shift + §
=±
and I wanted it to behave likeshift + backtick
which produces~
and it works fine. If you want it to enter another char, you can just replace the key combination on the keystroke part.Remember to always use the key modifier and the "lowercase" key (eg. if you want
(
usehs.eventtap.keyStroke({ "shift" }, "9")
)