summaryrefslogtreecommitdiffstats
path: root/virtual-programs
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2024-05-16 09:41:28 +0000
committers-ol <s+removethis@s-ol.nu>2024-05-18 15:52:54 +0000
commit02f579c8bae012c2590718888109efe11f20bcad (patch)
tree3bf69047cb7b0d8b88825558cd89896c6f006a05 /virtual-programs
parentdirty apriltag fix (diff)
downloadfolk-02f579c8bae012c2590718888109efe11f20bcad.tar.gz
folk-02f579c8bae012c2590718888109efe11f20bcad.zip
early keymap support
Diffstat (limited to 'virtual-programs')
-rw-r--r--virtual-programs/keyboard.folk13
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
}