diff options
author | Martin Pitt <martin.pitt@ubuntu.com> | 2009-05-14 23:56:52 +0200 |
---|---|---|
committer | Martin Pitt <martin.pitt@ubuntu.com> | 2009-05-14 23:56:52 +0200 |
commit | 4bdefc30c0b9672a3ea8390354793e8f4338679a (patch) | |
tree | 59443d122a2d91db5bd59c3e7bf57ebccb3a9e24 | |
parent | 82509f1714275723e57461f5a0863974854ac0d0 (diff) |
keymap: add findkeyboards script
findkeyboards prints out the device names of all "real" keyboards (atkbd and
the separate modules as found in ThinkPads or Sonys). This makes it much easier
to use a tool like keymap -i or do other debugging.
-rw-r--r-- | keymap/Makefile.am | 1 | ||||
-rwxr-xr-x | keymap/findkeyboards | 45 |
2 files changed, 46 insertions, 0 deletions
diff --git a/keymap/Makefile.am b/keymap/Makefile.am index 77476e5..74c788a 100644 --- a/keymap/Makefile.am +++ b/keymap/Makefile.am @@ -62,6 +62,7 @@ udevkeymap_DATA = \ keymaps/toshiba-satellite_a100 \ keymaps/toshiba-satellite_a110 +dist_pkgdata_SCRIPTS = findkeyboards # keymap program diff --git a/keymap/findkeyboards b/keymap/findkeyboards new file mode 100755 index 0000000..e39084c --- /dev/null +++ b/keymap/findkeyboards @@ -0,0 +1,45 @@ +#!/bin/sh -e +# Find "real" keyboard devices and print their device path. +# Author: Martin Pitt <martin.pitt@ubuntu.com> +# +# Copyright (C) 2009, Canonical Ltd. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + + +# print a list of input devices which are keyboard-like +keyboard_devices() { + input_devs=`udevadm trigger --dry-run --verbose --subsystem-match=input --attr-match=dev` + + # standard AT keyboard + for dev in $input_devs; do + info=`udevadm info --attribute-walk --path=$dev` + + if echo "$info" | grep -q 'DRIVERS=="atkbd"'; then + echo -n 'AT keyboard: ' + udevadm info --query=name --path=$dev + fi + done + + # modules + module=`udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*Extra Buttons'` + module="$module +`udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='Sony Vaio Keys'`" + for m in $module; do + evdev=`ls -d $m/event* 2>/dev/null` + if [ -e "$evdev/dev" ]; then + echo -n 'module: ' + udevadm info --query=name --path=$evdev + fi + done +} + +keyboard_devices |