1 ================= 2 Keyboard notifier 3 ================= 4 5 One can use register_keyboard_notifier to get 6 events (see kbd_keycode() function for details 7 keyboard_notifier_param (see <linux/keyboard.h 8 9 - 'vc' always provide the VC for which the key 10 - 'down' is 1 for a key press event, 0 for a k 11 - 'shift' is the current modifier state, mask 12 - 'ledstate' is the current LED state; 13 - 'value' depends on the type of event. 14 15 - KBD_KEYCODE events are always sent before ot 16 - KBD_UNBOUND_KEYCODE events are sent if the k 17 value is the keycode. 18 - KBD_UNICODE events are sent if the keycode - 19 unicode character. value is the unicode valu 20 - KBD_KEYSYM events are sent if the keycode -> 21 non-unicode character. value is the keysym. 22 - KBD_POST_KEYSYM events are sent after the tr 23 That permits one to inspect the resulting LE 24 25 For each kind of event but the last, the callb 26 order to "eat" the event: the notify loop is s 27 dropped. 28 29 In a rough C snippet, we have:: 30 31 kbd_keycode(keycode) { 32 ... 33 params.value = keycode; 34 if (notifier_call_chain(KBD_KEYCODE,&p 35 || !bound) { 36 notifier_call_chain(KBD_UNBOUN 37 return; 38 } 39 40 if (unicode) { 41 param.value = unicode; 42 if (notifier_call_chain(KBD_UN 43 return; 44 emit unicode; 45 return; 46 } 47 48 params.value = keysym; 49 if (notifier_call_chain(KBD_KEYSYM,&pa 50 return; 51 apply keysym; 52 notifier_call_chain(KBD_POST_KEYSYM,&p 53 } 54 55 .. note:: This notifier is usually called from
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.