summaryrefslogtreecommitdiff
path: root/src/udev/keymap/keyboard-force-release.sh.in
blob: b82674840f7db6c6b62d7fb7d13a57c1f4ce8d3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh -e
# read list of scancodes, convert hex to decimal and
# append to the atkbd force_release sysfs attribute
# $1 sysfs devpath for serioX
# $2 file with scancode list (hex or dec)

case "$2" in
        /*) scf="$2" ;;
        *)  scf="@udevlibexecdir@/keymaps/force-release/$2" ;;
esac

read attr <"/sys/$1/force_release"
while read scancode dummy; do
        case "$scancode" in
                \#*) ;;
                *)
                        scancode=$(($scancode))
                        attr="$attr${attr:+,}$scancode"
                        ;;
        esac
done <"$scf"
echo "$attr" >"/sys/$1/force_release"