diff options
| author | s-ol <s+removethis@s-ol.nu> | 2024-05-16 09:41:28 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2024-05-18 15:52:54 +0000 |
| commit | 02f579c8bae012c2590718888109efe11f20bcad (patch) | |
| tree | 3bf69047cb7b0d8b88825558cd89896c6f006a05 /virtual-programs | |
| parent | dirty apriltag fix (diff) | |
| download | folk-02f579c8bae012c2590718888109efe11f20bcad.tar.gz folk-02f579c8bae012c2590718888109efe11f20bcad.zip | |
early keymap support
Diffstat (limited to 'virtual-programs')
| -rw-r--r-- | virtual-programs/keyboard.folk | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/virtual-programs/keyboard.folk b/virtual-programs/keyboard.folk index f28da39b..46b2ebf0 100644 --- a/virtual-programs/keyboard.folk +++ b/virtual-programs/keyboard.folk @@ -47,7 +47,8 @@ set keyboardDevices [walkInputEventPaths] foreach keyboard $keyboardDevices { Claim the keyboards are $keyboardDevices Start process "keyboard-$keyboard" { - source "lib/key-codes.tcl" + source "lib/Keymap.tcl" + set km [keymap load "us"] set KEY_STATES [list up down repeat] Wish $::thisProcess shares statements like \ @@ -74,19 +75,17 @@ foreach keyboard $keyboardDevices { if {$type == 0x01} { ;# EV_KEY set shift [dict get $modifiers shift] - set key [keyFromCode $code $shift] + set key [keymap resolve $km $code $shift] if {$key eq ""} { continue } set keyState [lindex $KEY_STATES $value] set isDown [expr {$keyState != "up"}] - if {[string match *SHIFT $key]} { + if {$key eq "Shift"} { dict set modifiers shift $isDown - } - if {[string match *CTRL $key]} { + } elseif {$key eq "Control"} { dict set modifiers ctrl $isDown - } - if {[string match *ALT $key]} { + } elseif {$key eq "Alt"} { dict set modifiers alt $isDown } |
