• 2 Posts
  • 7 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle



  • Looks like evremap will do what I want, plus a nifty bonus! The following config lets me use CapsLock + N/P/etc to navigate. And if I just tap CapsLock without pressing anything else, it will act as escape.

    device_name = "Telink Wireless Receiver"
    
    [[dual_role]]
    input = "KEY_CAPSLOCK"
    hold = ["KEY_F19"]
    tap = ["KEY_ESC"]
    
    [[remap]]
    input = ["KEY_F19", "KEY_N"]
    output = ["KEY_DOWN"]
    
    [[remap]]
    input = ["KEY_F19", "KEY_P"]
    output = ["KEY_UP"]
    
    [[remap]]
    input = ["KEY_F19", "KEY_B"]
    output = ["KEY_LEFT"]
    
    [[remap]]
    input = ["KEY_F19", "KEY_F"]
    output = ["KEY_RIGHT"]
    
    [[remap]]
    input = ["KEY_F19", "KEY_A"]
    output = ["KEY_HOME"]
    
    [[remap]]
    input = ["KEY_F19", "KEY_E"]
    output = ["KEY_END"]
    

    Note: I used F19 because it doesn’t seem to be bound to anything by default. Apparently, a bunch of the other function keys already did things, as described in /usr/share/X11/xkb/symbols/inet

    $ cat /usr/share/X11/xkb/symbols/inet | grep FK13
        key    {      [ XF86Tools         ]       };
        key   {       [ XF86MailForward       ]       };
        key   {       [ XF86Word              ]       };      // F2
        key   {       [ XF86MailForward       ]       };      // F3
    
    $ cat /usr/share/X11/xkb/symbols/inet | grep FK20
        key    {      [ XF86AudioMicMute      ]       };