keys: use inputplug to configure keyboards

This commit is contained in:
Vincent Bernat 2014-06-10 01:44:42 +02:00
parent b7c2ca10e7
commit 41bfe7fa0d
6 changed files with 93 additions and 0 deletions

41
bin/input-event Executable file
View file

@ -0,0 +1,41 @@
#!/bin/sh
# Event handler for inputplug
event="$1"
device="$2"
use="$3"
name="$4"
[ x"$event" = x"XIDeviceEnabled" ] || exit 0
# Load the given keymap
xkb() {
xkbcomp -i ${device} -w 0 -I$HOME/.config/awesome/xkb \
$HOME/.config/awesome/xkb/$1.xkb ${DISPLAY}
}
printf "$use: [%3d] $name\n" $device
case "$use,$(uname -n),$name" in
XISlaveKeyboard,guybrush,"AT Translated Set 2 keyboard")
xkb norwin
;;
XISlaveKeyboard,*,"ThinkPad Extra Buttons")
xkb thinkpad-extra
;;
XISlaveKeyboard,*)
xkb default
;;
XISlavePointer,*,"Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)")
xinput set-ptr-feedback $device 3 3 1
;;
XISlavePointer,*,"TPPS/2 IBM TrackPoint")
xinput set-prop $device 'Evdev Wheel Emulation' 1
xinput set-prop $device 'Evdev Wheel Emulation Button' 2
xinput set-prop $device 'Evdev Wheel Emulation Axes' 6 7 4 5
;;
XISlavePointer,guybrush,"SynPS/2 Synaptics TouchPad")
xinput set-prop $device 'Synaptics Off' 1
;;
esac

14
xkb/default.xkb Normal file
View file

@ -0,0 +1,14 @@
# -*- conf -*-
# Default configuration with:
# - compose → rwin
# - capslock as ctrl
# - us+fr and switch with rctrl+rshift
# - pause key becomes xscreensaver
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+fr:2+inet(evdev)+compose(rwin)+ctrl(nocaps)+group(rctrl_rshift_toggle)+vbe(pause)" };
xkb_geometry { include "pc(pc105)" };
};

13
xkb/norwin.xkb Normal file
View file

@ -0,0 +1,13 @@
# -*- conf -*-
# Configuration with:
# - compose → ralt
# - capslock as ctrl
# - us+fr and switch with rctrl+rshift
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+fr:2+inet(evdev)+compose(ralt)+ctrl(nocaps)+group(rctrl_rshift_toggle)" };
xkb_geometry { include "pc(pc105)" };
};

13
xkb/symbols/vbe Normal file
View file

@ -0,0 +1,13 @@
partial
xkb_symbols "pause" {
key <PAUS> {
[ XF86ScreenSaver, NoSymbol ]
};
};
partial
xkb_symbols "webcam" {
key <I220> {
[ XF86ScreenSaver, NoSymbol ]
};
};

10
xkb/thinkpad-extra.xkb Normal file
View file

@ -0,0 +1,10 @@
# -*- conf -*-
# Configuration for thinkpad extra buttons
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)+vbe(webcam)" };
xkb_geometry { include "pc(pc105)" };
};

View file

@ -41,6 +41,8 @@ case "$(hostname)" in
;;
esac
[ -x ~/bin/inputplug ] && ~/bin/inputplug -0 -c ~/.awesome/bin/input-event
[ -x /usr/sbin/rfkill ] && rfkill block all 2> /dev/null
[ -x /usr/bin/xbacklight ] && xbacklight = 60 2> /dev/null
[ -x /usr/bin/redshift ] && redshift -l 2.3508:48.8567 -t 6500:5500 2> /dev/null &