Man Linux: Main Page and Category List

NAME

       irxevent - infrared X-event sender

SYNOPSIS

       irxevent [option]... [config file]

DESCRIPTION

       Irxevent  is  a  program  that  I  wrote  to send button clicks and key
       presses to X applications triggered by a LIRC  driven  remote  control.
       You can control your favorite CD/MP3 player or your TV tuner program or
       any other X application that responds to keyboard or  mouse  input.  If
       you like to you can send emacs ^X^S from your armchair.

       Irxevent is a complement to irexec and irpty.

       -d --daemon
              fork and run in background

       -h --help
              display usage summary

       -V --version
              display version

FILES

       Irxevent   works  with  the  same  config  file  as  irexec  and  irpty
       (~/.lircrc). For a complete sample .lircrc look at examples/lircrc.

       Part of your .lircrc could look like this:

          begin
                  prog = irxevent
                  button = VIDEO_UP
                  config = Key SHIFT-KP_Add CurrentWindow
          end
          begin
                  prog = irxevent
                  button = VIDEO_DOWN
                  config = Key SHIFT-KP_Subtract CurrentWindow
          end
          begin
                  prog = irxevent
                  button = STOP
                  config = Key ctrl-c CurrentWindow
          end
          begin
                  prog = irxevent
                  button = 0
                  config = Key f xawtv
                  config = Key f xawtv
          end
          begin
                  prog = irxevent
                  button = POWER
                  config = Key q xawtv
          end
          begin
                  prog = irxevent
                  button = CH_DOWN
                  config = Button 1 329 92 kscd
          end
          begin
                  prog = irxevent
                  button = UP
                  config = Button 1 110 80 GQmpeg
          end
          begin
                  prog = irxevent
                  button = DOWN
                  config = Button 1 130 80 GQmpeg
          end

       Simply said config = lines may look like this:

          config = Key [shift-][ctrl-][alt-]<key> [Focus] <windowname>
               | WindowID <id> | CurrentWindow | RootWindow
          config = Button <button> <x> <y> [Focus] <windowname> | WindowID <id>
               | CurrentWindow | RootWindow
          config = xy_Key <x> <y> [shift-][ctrl-][alt-]<key> [Focus]
               <windowname> | WindowID id | CurrentWindow | RootWindow

       some more examples:

          config = Key Up xawtv
          config = Key Down xawtv
          config = Button 1 50 110 xclickme
          config = Key q xawtv
          config = Key ctrl-c mpg123
          config = Key shift-Page_Up rxvt

       In BNF this looks like:

          LINE    = "config =" <KEY|BUTTON|XYKEY> <TARGET> |
                    "config =" <KEY|BUTTON|XYKEY> "Focus" <TARGET>
          XYKEY   = "xy_Key" <x_position> <y_position> <MOD><KEYSPEC>
          KEY     = "Key" <MOD><KEYSPEC>
          MOD     = ["shift-"]["numlock-"]["ctrl-"]["alt-"]["meta-"]
                    ["numlock-"]["mod3-"]["mod4-"]["mod5-"]["altgr-"]["scrlock-"]
          KEYSPEC = Keyname | "KeySym:"KeySym | "KeyCode:"KeyCode
          BUTTON  = "Button" <1..5> <x_position> <y_position>
          TARGET  = Windowname | "WindowID" id | "CurrentWindow" | "RootWindow"

          Keyname:
            is the key symbol that is declared in X windows. E.g. "Up"  refers
            to  the cursor arrow pointing up. "KP_Add" is the plus sign on the
            key pad. Just take a look at irxevent.keys (in  the  documentation
            directory) if you are not sure about a symbol's name.
          KeySym:
            number as returned by XStringToKeysym(3x).
          KeyCode:
            number as returned by XKeysymToKeycode(3x).
          Windowname:
            can  be  the  first characters of the window name displayed by the
            window manager or the name that is displayed below the icon.  Some
            programs  use  the  name displayed by the window manager to show a
            lot of status information but don't change  the  icon  name  (like
            xawtv).  Others  append  information to the window name ("GQmpeg -
            kill_windooz.mp3"). If neither window name nor icon name match the
            given  Windowname information from XClassHint(3x) will be checked.
          CurrentWindow:
            refers to the active window  as  returned  by  XGetInputFocus(3x).
            Most times this is the window with your mouse pointer in it.
          RootWindow:
            refers  to  the root window as returned by RootWindow(3x). You may
            need this to send events to the window manager.
          WindowID id:
            refers to the window with window identifier id.  id  should  be  a
            decimal  number. It is useful when irxevent can't find the desired
            window by other means.
          Focus:
            will send the specified event to  the  given  window  only  if  it
            currently  has  the input focus. This of course does not make much
            sense when combined with CurrentWindow.

TROUBLESHOOTING

       If you have problems finding the coordinates for a button click you can
       try  xev -id <window_id>. The window_id can be found using xwininfo. If
       xev and xwininfo are not part of your distribution you can find them at
       a  FTP  server  using the search engine at: http://ftpsearch.ntnu.no/ .
       xev also reports the names of key symbols like "Control_L"  (your  left
       control key) or "KP_Subtract" (the 'minus' key on your keypad).

       There are programs that do not accept any synthetic X-events by default
       because they can cause security problems. Currently  xterm  and  xemacs
       are known to ignore events simulated by irxevent.

       You  can  however  make xterm accept external events by enabling "Allow
       SendEvents" in the "Main Options" (hold down the Ctrl button and  press
       the  left  mouse button inside the xterm window). You can as well place
       this line into your .Xresources file to change this permanently:

          XTerm.vt100.allowSendEvents: true

       Yet another possibility is to start xterm like this:

          xterm -xrm "XTerm.vt100.allowSendEvents: true"

       xemacs will accept events if you set a built-in variable. The following
       was taken from the online help:

          `x-allow-sendevents' is a built-in boolean variable.

          Value: t

          Documentation:

          *Non-nil  means  to  allow  synthetic  events.   Nil  means they are
          ignored.

          Beware: allowing emacs to process SendEvents opens  a  big  security
          hole.

          In  order to allow events you have to evaluate this lisp code (press
          Meta-x and enter the following expression):

                (setq x-allow-sendevents t)

          Placing this line into your .xemacs-options  file  should  have  the
          same result.

       If you have problems sending events please drop me an email.

AUTHOR

       Written by Heinrich Langos <heinrich@mad.scientist.com>.

SEE ALSO

       The  documentation  for  lirc  is  maintained  as  html pages. They are
       located under html/ in the documentation directory.