Gentoo, Logitech S510 и мультимедийные клавиши…

Вчера заставил себя таки занятся настройкой поддержки мультимедийных клавиш. А то как-то обидно. Клавиатурка вроде с наворотами, а наворотами пользоваться не удается.
Попытавшись найти как это сделать столкнулся с тем что информации по теме уйма, но вся она разрозненная и по большей части мне не подходит. Вообщем пошел я по пути наименьшего сопротивления. А именно:
showkey -sПри нажатии на мультимедийные клавиши тишина. Задумался… Попробовал пойти с другой стороны. Запустил в иксах xev. Тишина. И только потом я догадался заглянуть в dmesg и увидел там следующее:
atkbd.c: Use 'setkeycodes 72 ' to make it known.
atkbd.c: Unknown key pressed (translated set 2, code 0×84 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e004 ' to make it known.
atkbd.c: Unknown key released (translated set 2, code 0×84 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e004 ' to make it known.
atkbd.c: Unknown key pressed (translated set 2, code 0×55 on isa0060/serio0).
atkbd.c: Use 'setkeycodes 55 ' to make it known.
atkbd.c: Unknown key released (translated set 2, code 0×55 on isa0060/serio0).
atkbd.c: Use 'setkeycodes 55 ' to make it known. Вообщем Linux как обычно показал себя весьма дружественной системой, подсказав открытым текстом что надо сделать
Вообщем поигравшись немного с setkeycodes я добился того чтобы xev нормально видел клавиши. Чтобы вся эта радость не слетала при перезагрузке системы, прописал в /etc/conf.d/local.start следующее:
setkeycode e03d 235 # 240 XF86LightBulb
setkeycode e03c 237 # 242 XF86Word
setkeycode e03d 236 # 241 XF86Excel
setkeycode e03d 238 # 243 XF86Calendar
setkeycode e03f 234 # 213 XF86Back
setkeycode e040 233 # 142 XF86Forward
setkeycode e041 232 # 228 XF86Send
setkeycode e042 231 # 244 XF86Save
setkeycode e043 230 # 217 XF86LaunchA
setkeycode e044 229 # 216 XF86LaunchB
setkeycode e057 228 # 215 XF86LaunchC
setkeycode e058 227 # 214 XF86LaunchD
setkeycode 72 225 # 212 XF86Music
setkeycode 71 224 # 101 XF86RotationKB
setkeycode 6a 223 # 202 XF86ZoomIn
setkeycode e004 222 # 148 XF86ZoomOut
setkeycode 6b 197 # 197 XF86iTouch
Попутно добавил в коментарии возращаемые клавишами keycod'ы и присвоенные далее иксовые имена.
Следующим этапом стала привязка иксовых имен. Файл ~/.Xmodmap у меня получился такой:
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 164 = XF86AudioStop
keycode 162 = XF86AudioPlay
keycode 237 = XF86AudioMedia
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 160 = XF86AudioMute
keycode 240 = XF86LightBulb
keycode 243 = XF86Excel
keycode 242 = XF86Word
keycode 241 = XF86Calendar
keycode 239 = XF86Back
keycode 238 = XF86Forward
keycode 237 = XF86Send
keycode 244 = XF86Save
keycode 217 = XF86LaunchA
keycode 216 = XF86LaunchB
keycode 215 = XF86LaunchC
keycode 214 = XF86LaunchD
keycode 212 = XF86Music
keycode 223 = XF86Sleep
keycode 101 = XF86RotationKB
keycode 202 = XF86ZoomIn
keycode 148 = XF86ZoomOut
keycode 197 = XF86iTouch
А дальше привязка кейбиндингов в OpenBox'е (поскольку пользуюсь я именно им) была тривиальной.
Кстати у клавиатуры Logitech S510 есть одна забавная особенность. Кнопка Sleep после нажатия обрабатывается с лагом примерно в 2 секунды. Но в принципе это совершенно не мешает
Кросспост отсюда: http://linux-art.livejournal.com/54494.html