Last active
January 7, 2024 18:01
-
-
Save stepango/3b7dda91c8ab82ec88a14a3ef89a296a to your computer and use it in GitHub Desktop.
Hammerspoon change layout from Russian to English
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ctrlPressed = false | |
keyPressed = false | |
layoutWatcher = hs.eventtap.new({hs.eventtap.event.types.flagsChanged, hs.eventtap.event.types.keyUp}, function(e) | |
local flags = e:getFlags() | |
local keyCode = e:getKeyCode() | |
if flags.cmd and keyCode == 0x36 and not (flags.alt or flags.shift or flags.ctrl or flags.fn) then | |
ctrlPressed = true | |
keyPressed = false | |
elseif ctrlPressed and not (flags.cmd or flags.alt or flags.shift or flags.ctrl or flags.fn) and not keyPressed then | |
ctrlPressed = false | |
if keyCode == 0x36 then | |
local lay = hs.keycodes.currentLayout() | |
if lay == "U.S." then | |
hs.keycodes.setLayout("Russian") | |
else | |
hs.keycodes.setLayout("U.S.") | |
end | |
end | |
else | |
keyPressed = true | |
end | |
end):start() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment