<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - /lib/udev/hwdb.d/60-keyboard.hwdb documentation issues"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=82311">82311</a>
          </td>
        </tr>

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

        <tr>
          <th>Summary</th>
          <td>/lib/udev/hwdb.d/60-keyboard.hwdb documentation issues
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>systemd-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>minor
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>vincent-fdt@vinc17.net
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

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

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

        <tr>
          <th>Component</th>
          <td>general
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>systemd
          </td>
        </tr></table>
      <p>
        <div>
        <pre>This is a copy of my bug report in the Debian BTS:
  <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757367">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757367</a>
(for systemd/208-7).

/lib/udev/hwdb.d/60-keyboard.hwdb contains some documentation at the beginning,
but there are several problems with it.

First, a typo: charcter -> character

It says:

#  Scan codes are specified as:
#    KEYBOARD_KEY_<hex scan code>=<key code identifier>
#  The scan code should be expressed in hex lowercase and in
#  full bytes, a multiple of 2 digits. The key codes are retrieved
               ^^^^^^^^^^^^^^^^^^^^^^
#  and normalized from the kernel input API header.

but in the settings, scan codes are also expressed on 3 or 5 digits, e.g.

# enhanced USB keyboard
keyboard:usb:v04B3p301B*
 KEYBOARD_KEY_90001=prog1 # ThinkVantage
 KEYBOARD_KEY_90002=screenlock
 KEYBOARD_KEY_90003=file
 KEYBOARD_KEY_90004=wordprocessor
 KEYBOARD_KEY_90005=spreadsheet
 KEYBOARD_KEY_90006=calc
 KEYBOARD_KEY_90007=mail
 KEYBOARD_KEY_90008=www

# Satellite U940
keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITEU940:pvr*
 KEYBOARD_KEY_13c=brightnessdown
 KEYBOARD_KEY_13d=brightnessup
 KEYBOARD_KEY_13e=switchvideomode
 KEYBOARD_KEY_13f=f21                                   # Touchpad toggle

Thus this is confusing.

It also says:

# To debug key presses and access scan code mapping data of
# an input device use the commonly available tool: evtest(1).

Unfortunately, evtest doesn't output scan codes for some keys:

  <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757356">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757356</a>

The udev keymap utility had the same problem, but once patched, it could output
the full keymap as a workaround. Unfortunately, evtest cannot do that (well, I
didn't see anything like that in its documentation). The input-kbd utility can
do that, so that it would be a good idea to mention it too.

Moreover this file should also say how one can do some tests and where one can
look for error messages.

And what should be done to take the changes into account? After a search on the
web, it seems that most users don't know either.

<a href="http://marcin.juszkiewicz.com.pl/2014/03/03/how-to-get-zoom-slider-on-microsoft-keyboard-recognized-by-x11/">http://marcin.juszkiewicz.com.pl/2014/03/03/how-to-get-zoom-slider-on-microsoft-keyboard-recognized-by-x11/</a>

says:

  udevadm hwdb --update
  udevadm control --reload

but one needs to replug the keyboard (or reboot!).

<a href="http://askubuntu.com/questions/499252/my-custom-udev-hwdb-rule-doesnt-work">http://askubuntu.com/questions/499252/my-custom-udev-hwdb-rule-doesnt-work</a>

just says:

  udevadm hwdb --update

but it doesn't work.

<a href="http://forums.fedoraforum.org/showpost.php?p=1681790&postcount=3">http://forums.fedoraforum.org/showpost.php?p=1681790&postcount=3</a>

says:

  udevadm hwdb --update
  udevadm trigger
  udevadm control --reload

which might be the solution.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>