What does this mean?: WARNING: Unknown X keysym "dead_belowmacron"

Getting this warning everytime after issuing update-initramfs and I can’t really tell if it’s just a minor annoyance or a real issue.

1 Like


not that that leaves me much more enlightened.

One thing that it does mean is that “it’s not just you”.


Looked at the url provided by @kieran , because the message alarmed me, too.

There is an update which points to this comment which says that it is a Debian bug. I looked at /usr/bin/ckbcomp and added the following line:

user@system:/usr/bin$ diff -u ckbcomp.orig ckbcomp
--- ckbcomp.orig	2019-10-08 20:21:06.996506838 +0200
+++ ckbcomp	2019-10-08 22:59:39.298948647 +0200
@@ -398,6 +398,7 @@
 my %xkbsym_table = (
+    'dead_belowmacron' => 'fe68',
     'space' => '0020',
     'exclam' => '0021',
     'quotedbl' => '0022',

WARNING: Unknown X keysym “dead_belowmacron” gone :slight_smile:


But this doesn’t explain what this message is about. :frowning:

Yes, you’re right. To get a grip what a xkeysym is you could read the Wikipedia article about X Windows.

Short: a keysym represents a letter (e.g. ‘a’, ‘Z’, ‘t’), sign (e.g. ‘#’, ‘$’ or ‘%’) or function/modifier (e.g. dead_belowmacron, dead_acute of Shift_L) in X.

The ksym is generated by translating various keycodes - each generated by any key press or release - to a keysym using the system wide keymap.

Important here is ‘systemwide’. The Debian tool ckbcomp which is used in generation of initramfs inside /usr/share/initramfs-tools/hooks/keymap somewhere maintains its own list of keysyms.

As one would expect there needs to be a point in time where the X maintainers change or add a keysym while the keysym is not added to Debians ckbcomp.

If this in our case new keysym is used (like for me on the german keyboard) ckbcomp complains about the keysym unknown to it.

Adding the missing keysym to the list in the ckbcomp perl script solves the problem.

Good example to demonstrate why it is a bad idea to keep the same data in two places. There might be reasons, but I do not understand them, because I barely scratched the topic.

If someone wants to find out how to find out: Nearly all components playing together to generate a initramfs are scripts (shell and perl). I used bash -xto show step by step execution of the scripts and looked through the perl code. There is a very good perl debugger also, but I preferred here to add just some additional messages to find out where the problem is located.


Thank you for your great explanation!