1
0
Fork 0

fix build

blog
LEdoian 9 months ago
parent 8b766e41ff
commit 702f9571df

@ -57,8 +57,8 @@ My custom keyboard layout?
I didn't like fact that UCW layout is in fact just an overlay and not a I didn't like fact that UCW layout is in fact just an overlay and not a
"proper" level 3, so I started studying how to create a custom keyboard layout. "proper" level 3, so I started studying how to create a custom keyboard layout.
Few notable resources: `XKB page on ArchWiki`__, manpages for Few notable resources: `XKB page on ArchWiki <TODO>`__, manpages for
`xkeyboard-config(7)`__, `setxkbmap(1)`__ and `xkbcomp(1)`__ and looking into `xkeyboard-config(7) <TODO>`__, `setxkbmap(1) <TODO>`__ and `xkbcomp(1) <TODO>`__ and looking into
``/usr/share/X11/xkb/symbols/cz`` (found by grepping ``/usr/share/X11`` for ``/usr/share/X11/xkb/symbols/cz`` (found by grepping ``/usr/share/X11`` for
"ucw"). "ucw").
@ -66,7 +66,7 @@ Another reason for creating my own layouts is various tweaks esp. on laptop
keyboards. For example, the laptop I am typing this sentence on has broken the keyboards. For example, the laptop I am typing this sentence on has broken the
up arrow key, so I would like to map it somewhere. I use ``xmodmap`` for that, up arrow key, so I would like to map it somewhere. I use ``xmodmap`` for that,
but if this could be contained in a single layout, it would make stuff simpler but if this could be contained in a single layout, it would make stuff simpler
for me. (And as I will later learn, ``xmodmap`` `does not work well`__ with xkb for me. (And as I will later learn, ``xmodmap`` `does not work well <TODO>`__ with xkb
layouts…) layouts…)
Also, I have another tweak on my keyboards: Compose key. This really calls for Also, I have another tweak on my keyboards: Compose key. This really calls for
@ -108,7 +108,7 @@ The readable KcCGST are what is stored in the filesystem as well as what you
get from ``setxkbmap -print`` and may serve as a good starting point for get from ``setxkbmap -print`` and may serve as a good starting point for
tweaks. To get the complete ones one can use ``xkbcomp $DISPLAY -``. tweaks. To get the complete ones one can use ``xkbcomp $DISPLAY -``.
The processing of these description is `different`__ in Xorg and in Wayland. If The processing of these description is `different <TODO>`__ in Xorg and in Wayland. If
I were to bet where the bug is before digging into it, this sounds like a very I were to bet where the bug is before digging into it, this sounds like a very
likely culprit. likely culprit.
@ -116,7 +116,7 @@ A wild friend has appeared
========================== ==========================
… and he had a problem and asked me if I would have a look into it. Apparently, … and he had a problem and asked me if I would have a look into it. Apparently,
`group switching didn't work in XWayland`__. At first, I wanted to work it around `group switching didn't work in XWayland <TODO>`__. At first, I wanted to work it around
by finally creating the Unified UCW keymap™, but I wanted to learn more about by finally creating the Unified UCW keymap™, but I wanted to learn more about
XKB (from TODO GUIDES), which took me quite long, again. (Studying, working, XKB (from TODO GUIDES), which took me quite long, again. (Studying, working,
helping with camps *and* fixing layouts takes some time…) helping with camps *and* fixing layouts takes some time…)
@ -133,21 +133,21 @@ solving at that moment.
I wanted to help my friend, though, so I started looking more into using Sway I wanted to help my friend, though, so I started looking more into using Sway
on another laptop and reading about internals of input system on `Peter on another laptop and reading about internals of input system on `Peter
Hutterer's blog`__ TODO NAME SPELLING? Occasionally I would randomly google Hutterer's blog <TODO>`__ TODO NAME SPELLING? Occasionally I would randomly google
(`with DuckDuckGo`__ :-D) for the issue with group switching, just in case… (`with DuckDuckGo <TODO>`__ :-D) for the issue with group switching, just in case…
The nerd snipe issue The nerd snipe issue
==================== ====================
`TODO SOMEONE`__ on GitHub found out an interesting workaround: when they `TODO SOMEONE <TODO>`__ on GitHub found out an interesting workaround: when they
*disabled* the group switch, the UCW layout *started working*. Complete "huh?" *disabled* the group switch, the UCW layout *started working*. Complete "huh?"
moment, I knew I wanted to know more about why that worked. The moment, I knew I wanted to know more about why that worked. The
`xkeyboard-common(7) manpage`__ says about more group switching options, so I `xkeyboard-common(7) manpage <TODO>`__ says about more group switching options, so I
randomly tried switching by Menu key in XWayland (using ``setxkbmap`` even randomly tried switching by Menu key in XWayland (using ``setxkbmap`` even
though it complained and was supposed to do nothing), and ended up with *both* though it complained and was supposed to do nothing), and ended up with *both*
CapsLock and Menu adding diacritics. CapsLock and Menu adding diacritics.
After a bit of mathematic thinking (more in my `comment of the main issue`__) I After a bit of mathematic thinking (more in my `comment of the main issue <TODO>`__) I
concluded that it was actually working fine, just that the ``SetGroup`` action concluded that it was actually working fine, just that the ``SetGroup`` action
was evaluated *twice*, which would overflow back to the first group when two was evaluated *twice*, which would overflow back to the first group when two
layouts are set (probably the most common case). Mathematic term for this issue layouts are set (probably the most common case). Mathematic term for this issue
@ -168,7 +168,7 @@ Learning what happens
===================== =====================
I continued reading, this time mostly `who-t's post series about custom I continued reading, this time mostly `who-t's post series about custom
layouts`__, `core Wayland protocol`__ as well as the source code of various layouts <TODO>`__, `core Wayland protocol <TODO>`__ as well as the source code of various
tools (``xev``, ``wev``, ``xkbcli interactive-wayland`` &c.) Given that I knew tools (``xev``, ``wev``, ``xkbcli interactive-wayland`` &c.) Given that I knew
very little about the inner workings of the stack, I wanted to find some code very little about the inner workings of the stack, I wanted to find some code
that would be run and "enhance" it with so many debug prints that I would that would be run and "enhance" it with so many debug prints that I would
@ -192,7 +192,7 @@ One interesting observation is that contrary to my expectation, XWayland does
not seem to use libxkbcommon (according to the ``/proc/PID/maps`` file). This not seem to use libxkbcommon (according to the ``/proc/PID/maps`` file). This
can have several reasons, but its source code also contains a slightly tweaked can have several reasons, but its source code also contains a slightly tweaked
version of (Xorg-style) xkb, which might mean I will be dealing with `the ugly version of (Xorg-style) xkb, which might mean I will be dealing with `the ugly
code`__ :-/ (Actually, XWayland might not process key events itself, instead code <TODO>`__ :-/ (Actually, XWayland might not process key events itself, instead
just passing them to clients, but this seems inconsistent with the issue what just passing them to clients, but this seems inconsistent with the issue what
else would be introducing the second group switch?) else would be introducing the second group switch?)

Loading…
Cancel
Save