mooz / xkeysnail

Yet another keyboard remapping tool for X environment
890 stars 112 forks source link

Are Umlauts supported (e.g. ü)? If yes, how to use them? #176

Open lprc opened 9 months ago

lprc commented 9 months ago

I couldn't find an entry in key.py. I tried using the following config:

from xkeysnail.transform import *

define_keymap(re.compile("code"), {
    K("ü"): K("{"),
    K("Ü"): K("}"),
})

but which yields the following error.

Traceback (most recent call last):
  File "/root/.local/pipx/venvs/xkeysnail/bin/xkeysnail", line 6, in <module>
    cli_main()
  File "/root/.local/pipx/venvs/xkeysnail/lib/python3.11/site-packages/xkeysnail/__init__.py", line 62, in cli_main
    eval_file(args.config)
  File "/root/.local/pipx/venvs/xkeysnail/lib/python3.11/site-packages/xkeysnail/__init__.py", line 6, in eval_file
    exec(compile(file.read(), path, 'exec'), globals())
  File "/home/simon/sciebo/bin/xkeysnail_config.py", line 5, in <module>
    K("ü"): K("{"),
    ^^^^^^
  File "/root/.local/pipx/venvs/xkeysnail/lib/python3.11/site-packages/xkeysnail/transform.py", line 144, in K
    key = getattr(Key, key_str)
          ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/enum.py", line 789, in __getattr__
    raise AttributeError(name) from None
AttributeError: Ü

I also tried replacing ü with udiaresis, which is the name that works with xmodmap.

FWIW this is what I used with xmodmap in the past:

xmodmap -e "keycode 34 = braceleft braceright" # remap ö
xmodmap -e "keycode 47 = parenleft parenright" # remap ä
xmodmap -e "keycode 48 = bracketleft bracketright" # remap ü

Which string can I use instead of e.g. ü in my config?