evdevremap
β ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΈΠ½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΎΠΊ (ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΡΡΡΠΎΠΉΡΡΠ² Π²Π²ΠΎΠ΄Π°) Π½Π° ΡΡΠΎΠ²Π½Π΅ evdev (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ ΠΠ‘, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ). ΠΡΡΠ»ΠΈ Π΄Π»Ρ ΡΠ΅Π±Ρ Ρ Π½Π°ΠΊΠΈΠ΄ΡΠ²Π°Ρ Π² Π³ΡΠ³Π» Π΄ΠΎΠΊ. ΠΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ, Π² Π³ΡΠ³Π» Π΄ΠΎΠΊΠ΅ ΠΈΠ»ΠΈ Π² ΡΠ°ΡΠ°Ρ
ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΊΠ»Π°Π²Π°Π²ΠΈΠΊΠΈ (Π² ΠΊΠΎΡΠΎΡΡΡ
Ρ Π΅ΡΡΡ). ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° NOMK.
Π‘ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ
-
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ β Π΄Π΅ΠΌΠΎΠ½, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ (C), ΡΡΠΈΡΡΠ²Π°ΡΡΠΈΠΉ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΠΈ, ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡΠΈΠΉ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠΉ ΡΠΎΠ±ΡΡΠΈΡ
-
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ β ΡΡΠΈΠ»ΠΈΡΠ°, Π½Π° Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ (Python, Java, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ANTLR ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ²), ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π² ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π²Π΄ΠΎΡ Π½ΠΎΠ²Π΅Π½ΠΈΡ
Vim
ΠΠΌΠ΅Π΅Ρ ΡΠ΅ΠΆΠΈΠΌΡ (ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π·Π°Ρ Π°ΡΠ΄ΠΊΠΎΠΆΠ΅Π½Ρ) + ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ΠΎΠ΄Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ Π½Π°ΠΆΠ°ΡΠΈΠΉ Π² Π΄ΡΡΠ³ΠΈΠ΅ (ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΡΡΠΈΠ½Π³ ΠΏΠΎΠ»Π½ΡΠΉ, ΡΠΌ. ΠΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ°ΡΠΊΠΎΠ²Π°).
Xkb
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΎΠΊ Π² X11, ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ. ΠΎΠΊΠΎΠ»ΠΎ 255 ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°Π²ΠΈΡ, ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΡ Π½Π΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Π’ΡΡΡΠΈΠ½Π³-ΠΏΠΎΠ»Π½ΠΎΡΠ°
ΠΡΠΆΠ½Π° Π΄Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°Π΄Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°.
ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ. ΠΠ°ΡΠΈΠ°ΡΠΈΡ ΠΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ°ΡΠΊΠΎΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ΄ΠΎΠΉΡΠΈ.
Π Π΅ΠΆΠΈΠΌΡ (ΡΠ»ΠΎΠΈ)
ΠΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π±Π΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° (ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ/Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ²), Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΡ ΠΊΠ°ΠΊ Π³ΡΠ°Ρ, ΠΏΠΎ ΡΡΠ±ΡΠ°ΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΡΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠ·Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ Π½Π° ΡΠ°Π·Π½ΡΠ΅ Π²ΡΡ ΠΎΠ΄Ρ, ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ). ΠΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°ΡΡ ΡΠ°ΠΊΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΡΠ΅ΠΆΠΈΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π΄ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ).
ΠΠΎΠ·ΠΆΠ΅ Ρ Π½Π°ΡΠΊΠ½ΡΠ»ΡΡ Π½Π° ΡΡΠΎΡ ΡΠ·ΡΠΊ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΠΎ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ (ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ):
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
(under construction)
-
EventCode
β ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π΄Π²Π° ΡΠΈΡΠ»Π° (ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΏΠΎ 16 Π±ΠΈΡ) (ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΠ·Π»Π° Π³ΡΠ°ΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π»Ρ ΡΠ·Π»ΠΎΠ² Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ). -
Modifier
β ΠΎΠ΄Π½ΠΎ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ (Shift
,Alt
, ...) ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π±ΡΠ»Π΅Π² Π°ΡΡΠΈΠ±ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠΎΠ±ΡΡΠΈΡ Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π·Π°ΠΆΠ°ΡΠΈΡ ΠΈ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ-ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°. -
Event
β ΡΡΡΡΠΊΡΡΡΠ°:EventCode, Set<Modifier>, int ttl, number value, long creation_time
-
ttl
Π½ΡΠΆΠ΅Π½, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡΡ Π΄ΠΎ Π½ΡΠ»Ρ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΠ΅, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π° -
value
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΡΡΠΈ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ (ΠΏΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ· ΡΠΎΡΠΌΠ°ΡΠ° evdev ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ) -
creation_time
Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π° ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ (Π³ΡΠ°Π½ΠΈΡΠ° ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ΄Π²ΠΈΠ³Π°Π΅ΡΡΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎ Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΡΠ°ΡΡΠ΅ 263)
-