<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Cannot set layouts for individual keyboards"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=95355">95355</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Cannot set layouts for individual keyboards
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Wayland
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>x86-64 (AMD64)
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux (All)
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>major
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>libinput
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>wayland-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>brpocock@star-hope.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>XWayland presents a (partial) implementation of the XKB interface to set up
keyboard mappings. Unfortunately, in what I consider a regression, there does
not appear to be a mechanism to set the key mappings/layouts for individual
(hardware) keyboard devices.


(apologies if this is on the wrong component)


In a typical, single-keyboard system, this seems to work all right, but:

Imagine a computer with two physical keyboards connected, in which no single
key map will be useful/correct with both.

Examples include:
 1. QWERTY built-in laptop keyboard with Dvorak USB external keyboard that is
usually present
 2. Alternate language (alphabet) keyboards, eg, Greek and US/English,
connected at the same time, who may differ not only in letters but also bucky
keys (eg, AltGr, Compose, Alt/Meta)
 3. Laptop whose Num Lock function uses an overlay on the main keyboard area,
but used with an external keypad. Without separate key maps, enabling Num Lock
causes the main keyboard to be unusable.

I realise the default (eg, Gnome) settings programs all assume that they
“should” merely set the keymap for core input, but in these 3 cases (at least)
that behaviour is incorrect.

Particularly, relocating bucky (modifier) keys is annoying/troublesome and
makes switching between layouts constantly quite difficult.

Using “setxkbmap -device $DEVICE $KEYMAP” one can work around these problems,
which I routinely do. However, in Fedora 23 / Gnome 3 / Wayland, the
individual/constituent keyboards do not appear to be configurable in any way.

My instinct is to ask that the constituent keyboard devices be enumerated as
they are (correctly, IMHO) in X.org's native form. Presenting some alternative
mechanism would be acceptable as well, of course.

The current situation is, to me at least, a regression, and a blocker from
using Wayland on any of my “daily driver” workstations. This is mostly because
I use a custom multi-language Dvorak layout but somewhat frequently “pair” with
others who prefer (require) US/Qwerty.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>