MyTetra Share
Делитесь знаниями!
Программа xkbevd - слежение за событиями клавиатуры
Время создания: 13.08.2011 00:41
Текстовые метки: linux, левый, правый, Shift, клавиша, переклчение, раскладки, языка
Раздел: Компьютер - Linux - Bash - Команды и скрипты
Запись: xintrea/mytetra_syncro/master/base/1313181669sttse51nzr/text.html на raw.github.com

Есть программа xkbevd. Ее можно запустить просто как программу, и она будет выводить в консоль события клавиатуры:

$ xkbevd

Temporarily disabling the audible bell

XkbControlsNotify event, serial 9, synthetic no, device 3, time 42035297,

changed= 0x80000000, enabled= 0x1121, enabledChanges= 0x200

num_groups= 2

request -109/7 (NON-XKB)

XkbBellNotify event, serial 12, synthetic no, device 3, time 42035297,

bell class= 0, id= 0

percent= 50, pitch= 400, duration= 100

name= "ImAlive"

window= 0x0, event_only

XkbStateNotify event, serial 13, synthetic no, device 3, time 42037087,

keycode 50, eventType KeyPress,

group= 0, base= 0, latched= 0, locked= 0,

mods= 0x01*, base= 0x01*, latched= 0x00, locked= 0x00

grab mods= 0x01*, compat grab mods= 0x01*

lookup mods= 0x01*, compat lookup mods= 0x01*

compatState = 0x01*, ptr_buttons= 0x0000

Эту программу можно запустить в виде демона:

$ xkbevd -bg

Кстати, еще для слеженими за событиями клавиатуры, можно парсить вывод файла:

cat /dev/input/event0

Для конфигурировани программы используется файл ~/.xkb/xkbevd.cf или $(LIBDIR)/xkb/xkbevd.cf. Его формат слабо описан в странице man.

Примерное содержимое конфигурирующего файла может быть таким:

// See directory /usr/share/sounds contents or example.cf for example on

// how to used sounds

soundDirectory = "/usr/share/sounds"

Bell() printEvent

AccessX() printEvent

Message() printEvent

Или таким:

soundDirectory = ""

soundCmd = "aplay -q"

Bell() "~/etc/beep.wav"

Bell(ImAlive) "/usr/share/sounds/purple/login.wav"

Или таким:

soundDirectory="/usr/share/sounds/"

soundCmd="ogg123 -q"

Bell() "ubuntu/stereo/bell.ogg"

Или таким:

Bell() shell "xrefresh -solid white"

Bell() shell "thinkalert 1"

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования