1IRXEVENT(1) User Commands IRXEVENT(1)
2
3
4
6 irxevent - infrared X-event sender
7
9 irxevent [option]... [config file]
10
12 Irxevent is a program that I wrote to send button clicks and key
13 presses to X applications triggered by a LIRC driven remote control.
14 You can control your favorite CD/MP3 player or your TV tuner program or
15 any other X application that responds to keyboard or mouse input. If
16 you like to you can send emacs ^X^S from your armchair.
17
18 Irxevent is a complement to irexec and irpty.
19
20 -d --daemon
21 fork and run in background
22
23 -h --help
24 display usage summary
25
26 -V --version
27 display version
28
30 Irxevent works with the same config file as irexec and irpty (~/.lir‐
31 crc). For a complete sample .lircrc look at examples/lircrc.
32
33 Part of your .lircrc could look like this:
34
35 begin
36 prog = irxevent
37 button = VIDEO_UP
38 config = Key SHIFT-KP_Add CurrentWindow
39 end
40 begin
41 prog = irxevent
42 button = VIDEO_DOWN
43 config = Key SHIFT-KP_Subtract CurrentWindow
44 end
45 begin
46 prog = irxevent
47 button = STOP
48 config = Key ctrl-c CurrentWindow
49 end
50 begin
51 prog = irxevent
52 button = 0
53 config = Key f xawtv
54 config = Key f xawtv
55 end
56 begin
57 prog = irxevent
58 button = POWER
59 config = Key q xawtv
60 end
61 begin
62 prog = irxevent
63 button = CH_DOWN
64 config = Button 1 329 92 kscd
65 end
66 begin
67 prog = irxevent
68 button = UP
69 config = Button 1 110 80 GQmpeg
70 end
71 begin
72 prog = irxevent
73 button = DOWN
74 config = Button 1 130 80 GQmpeg
75 end
76
77 Simply said config = lines may look like this:
78
79 config = Key [shift-][ctrl-][alt-]<key> [Focus] <windowname>
80 | WindowID <id> | CurrentWindow | RootWindow
81 config = Button <button> <x> <y> [Focus] <windowname> | WindowID <id>
82 | CurrentWindow | RootWindow
83 config = xy_Key <x> <y> [shift-][ctrl-][alt-]<key> [Focus]
84 <windowname> | WindowID id | CurrentWindow | RootWindow
85
86 some more examples:
87
88 config = Key Up xawtv
89 config = Key Down xawtv
90 config = Button 1 50 110 xclickme
91 config = Key q xawtv
92 config = Key ctrl-c mpg123
93 config = Key shift-Page_Up rxvt
94
95 In BNF this looks like:
96
97 LINE = "config =" <KEY|BUTTON|XYKEY> <TARGET> |
98 "config =" <KEY|BUTTON|XYKEY> "Focus" <TARGET>
99 XYKEY = "xy_Key" <x_position> <y_position> <MOD><KEYSPEC>
100 KEY = "Key" <MOD><KEYSPEC>
101 MOD = ["shift-"]["numlock-"]["ctrl-"]["alt-"]["meta-"]
102 ["numlock-"]["mod3-"]["mod4-"]["mod5-"]["altgr-"]["scrlock-"]
103 KEYSPEC = Keyname | "KeySym:"KeySym | "KeyCode:"KeyCode
104 BUTTON = "Button" <1..5> <x_position> <y_position>
105 TARGET = Windowname | "WindowID" id | "CurrentWindow" | "RootWindow"
106
107 Keyname:
108 is the key symbol that is declared in X windows. E.g. "Up" refers
109 to the cursor arrow pointing up. "KP_Add" is the plus sign on the
110 key pad. Just take a look at irxevent.keys (in the documentation
111 directory) if you are not sure about a symbol's name.
112 KeySym:
113 number as returned by XStringToKeysym(3x).
114 KeyCode:
115 number as returned by XKeysymToKeycode(3x).
116 Windowname:
117 can be the first characters of the window name displayed by the
118 window manager or the name that is displayed below the icon. Some
119 programs use the name displayed by the window manager to show a
120 lot of status information but don't change the icon name (like
121 xawtv). Others append information to the window name ("GQmpeg -
122 kill_windooz.mp3"). If neither window name nor icon name match the
123 given Windowname information from XClassHint(3x) will be checked.
124 CurrentWindow:
125 refers to the active window as returned by XGetInputFocus(3x).
126 Most times this is the window with your mouse pointer in it.
127 RootWindow:
128 refers to the root window as returned by RootWindow(3x). You may
129 need this to send events to the window manager.
130 WindowID id:
131 refers to the window with window identifier id. id should be a
132 decimal number. It is useful when irxevent can't find the desired
133 window by other means.
134 Focus:
135 will send the specified event to the given window only if it cur‐
136 rently has the input focus. This of course does not make much
137 sense when combined with CurrentWindow.
138
140 If you have problems finding the coordinates for a button click you can
141 try xev -id <window_id>. The window_id can be found using xwininfo. If
142 xev and xwininfo are not part of your distribution you can find them at
143 a FTP server using the search engine at: http://ftpsearch.ntnu.no/ .
144 xev also reports the names of key symbols like "Control_L" (your left
145 control key) or "KP_Subtract" (the 'minus' key on your keypad).
146
147 There are programs that do not accept any synthetic X-events by default
148 because they can cause security problems. Currently xterm and xemacs
149 are known to ignore events simulated by irxevent.
150
151 You can however make xterm accept external events by enabling "Allow
152 SendEvents" in the "Main Options" (hold down the Ctrl button and press
153 the left mouse button inside the xterm window). You can as well place
154 this line into your .Xresources file to change this permanently:
155
156 XTerm.vt100.allowSendEvents: true
157
158 Yet another possibility is to start xterm like this:
159
160 xterm -xrm "XTerm.vt100.allowSendEvents: true"
161
162 xemacs will accept events if you set a built-in variable. The following
163 was taken from the online help:
164
165 `x-allow-sendevents' is a built-in boolean variable.
166
167 Value: t
168
169 Documentation:
170
171 *Non-nil means to allow synthetic events. Nil means they are
172 ignored.
173
174 Beware: allowing emacs to process SendEvents opens a big security
175 hole.
176
177 In order to allow events you have to evaluate this lisp code (press
178 Meta-x and enter the following expression):
179
180 (setq x-allow-sendevents t)
181
182 Placing this line into your .xemacs-options file should have the
183 same result.
184
185 If you have problems sending events please drop me an email.
186
188 Written by Heinrich Langos <heinrich@mad.scientist.com>.
189
191 The documentation for lirc is maintained as html pages. They are
192 located under html/ in the documentation directory.
193
194
195
196irxevent 0.9.0 March 2011 IRXEVENT(1)