GNU bug report logs - #40456
Invalid keyboard layouts pass through

Previous Next

Package: guix;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Sun, 5 Apr 2020 21:00:02 UTC

Severity: important

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: bug-guix <at> gnu.org
Subject: Invalid keyboard layouts pass through
Date: Sun, 05 Apr 2020 22:59:28 +0200
Hello,

After a painful debugging session where I was blaming GDM for not using
the right keyboard layout, I found that I had specified an invalid
keyboard layout variant, as in:

  (keyboard-layout "fr" "does-not-exist")

‘ckbcomp’ would build a layout for the console just fine, only with a
warning.  Xorg would switch to the default “fr” layout (which exists)
and ignore the “does-not-exist” variant.

However, GNOME Shell would reject it in ‘keyboardManager.js’ because:

     [found, , , _layout, _variant] = this._xkbInfo.get_layout_info(id);

returns ‘found = false’ since ‘fr+does-not-exist’ is not found, and thus
goes on to use the US layout:

      if (found)
          return { layout: _layout, variant: _variant };
      else
          return { layout: DEFAULT_LAYOUT, variant: DEFAULT_VARIANT };

(This is just for GNOME Shell because again, Xorg itself installs the
“fr” layout, as can be seen if you start ratpoison or similar.)

Long story short: it would be great if invalid keyboard layouts were
caught when the system is instantiated.  It could be ‘ckbcomp’ errorring
out, or we could have additional code that browses xkeyboard-config’s
‘base.xml’ file.

Ludo’.




This bug report was last modified 195 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.