From 4bdefc30c0b9672a3ea8390354793e8f4338679a Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Thu, 14 May 2009 23:56:52 +0200 Subject: 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. --- keymap/Makefile.am | 1 + keymap/findkeyboards | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100755 keymap/findkeyboards 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 +# +# 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 -- cgit