lircd-uinput(8)


NAME

   lircd-uinput - Forward lirc button presses as uinput events

SYNOPSIS

   lircd-uinput [options]... [lircd output socket]
   lircd-uinput [options]... [file]

DESCRIPTION

   lircd-uinput  reads  decoded button press events from a lircd(8) output
   socket and injects these as key events to  the  kernel  uinput  device.
   The  kernel  makes  these  events  available to other applications on a
   /dev/input/event device, just as for any other input device.

   lircd-uinput is designed to run as a systemd service.

   The lircd output socket argument is  an  optional  path  to  the  lircd
   output  socket.  It defaults to the output value in the [lircd] section
   of the lirc_options config file, falling back to /var/run/lirc/lircd.

   If a plain file is given instead of a socket it is supposed to  contain
   button press events formatted as documented in lircd(8) .  lircd-uinput
   will in this case send the codes in this file and exit.

   In order to work, release events must be sent  to  the  uinput  device.
   See REPEAT HANDLING.

   lircd-uinput  can  only  handle  button events named using the official
   namespace i. e., buttons known to the kernel. See NOTES.

   Unless the /dev/uinput  default  permissions  are  changed  lirc-uinput
   needs to run as root. See NOTES.

   The  /dev/input/event  device  created  by  the kernel can be tricky to
   locate, and is not stable.  See NOTES.

OPTIONS

   -u --uinput <device>
          uinput kernel device, defaults to /dev/uinput.

   -r --release-suffix <suffix>
          lircd-uinput generates different  events  depending  on  if  the
          button  name  ends  with the release-suffix or not.  The setting
          should usually match the lircd(8) --release option.  Defaults to
          the lircd setting, falling back to _UP . See REPEAT HANDLING

   -R --repeat <delay[,period] | ,period>
          Set kernel autorepeat parameters of the created /dev/input/event
          device.  delay is the time before repeating a key event,  period
          is  the  time  between  repeated key events.  Both values are in
          milliseconds, separated by a comma.  Any  value can  be  omitted
          or  set  to 0 in which case the kernel/system defaults are used.
          See REPEAT HANDLING.

   -a --add-release-events
          Generate synthetic release events.   This  option  is  mandatory
          unless  lircd  is  using the --release option.  The timeout used
          can be modified using the  release-timeout  key  in  the  lircd-
          uinput  section  of the lirc_options.conf file.  Useless if used
          with a text file as input.  . See REPEAT HANDLING

   -d --disabled <disabled buttons file path>
          The path of  a  file  which  contains  name  of  buttons  to  be
          disabled,  one  per  line.   By  default, lircd-uinput sends all
          buttons found in input.  See NOTES.

   -O --options-file <path>
          Options   file   holding    default    values.    Defaults    to
          /etc/lircd/lirc_options.conf

   -L, --logfile <logfile path>
          Select  the log file, either the string 'syslog' indicating that
          syslog(1) should be used or a log file path.  The default is  to
          use syslog.

   -D, --loglevel [level]
          Determine  the  amount  of  logging information.  level can be a
          symbolic syslog level:  'error','warning,  'info',  'notice'  or
          debug'.   lircd-uinput  also  defines  three  additional levels
          'trace', 'trace1' and 'trace2' which gives  even  more  messages
          ('trace2'  bringing  the  most).   However,  in  the  log  these
          messages are marked as 'debug'.

   -h --help
          Display usage summary.

   -v --version
          Display version info.

REPEAT HANDLING

   After receiving a keypress event the kernel will start emitting  repeat
   events to applications until lircd-uinput emits a corresponding release
   event.  The release events could  be  created  by  lircd(8)  using  the
   --release  option.  Such events typically has an _UP suffix appended to
   the original keypress  event.   As  an  alternative,  lircd-uinput  can
   create release events using the --add-relesea-events option.  Combining
   both of these options might give unexpected results.

   In any case, the repeat events generated by the kernel can  be  tweaked
   using  the  --repeat option. This can set the time between the keypress
   event and the first repeat event  and  the  time  between  each  repeat
   event.   The --repeat option should only be used if no other program or
   udev rule is automatically setting up key repeat parameters.  By design
   the repeat parameters can't be set in an atomic way during input device
   registration so this option is prone to race conditions.

   Note that the lircd-uinput repeat-event handling differs from  lircd(8)
   which   implements (emulates) hardware autorepeat in the events sent to
   uinput (event.value  ==  2).   lircd-uinput  only  sends  keypress  and
   release events, trusting the kernel autorepeat support.

NOTES

   By  default,  the  dev/uinput device is not writable for regular users.
   Thus lircd-uinput needs to run as root  unless  these  permissions  are
   changed.

   One  way  to  achieve  this  is  an  udev  rule.  The lirc distribution
   contains an example rule which makes the lircd-uinput  device  writable
   for  users  in the group lirc.  Another way is to use lircd-setup(8) to
   change the permissions.  As  distributed,  the  lirc_options.conf  file
   contains an commented example using setfacl(1) .

   lircd-uinput  can  only forward lircd button events with names from the
   legal namespace defined by the kernel.  A  complete  list  of  possible
   button  names   is  available in /usr/include/linux/input-event-codes.h
   and also using irrecord -l .  Other button names are silently dropped.

   The event keycode depends on the name that was given a  button  in  the
   lircd config file e.g., if the button is named KEY_1 the keycode 1 will
   be generated.

   The kernel makes the events generated by lircd-uinput  available  on  a
   /dev/input  device  like  /dev/input/event12.   This device name is not
   stable and typically varies after  a  reboot.   The  lirc  distribution
   contains  a  udev  rule  which if installed creates a device link named
   /dev/lircd-uinput which always can be used.

   lircd-uinput is designed to replace the currently  deprecated  --uinput
   option  to  lircd(8).  However, lircd-uinput forwards all events unless
   blocked by the --disabled option.  On the other  hand,  lircd  --uinput
   does not forward all events - the heuristics used has been changed over
   versions.

BUGS

   Since the device name is fixed, only one instance of  lircd-uinput  can
   run on a system.

SEE ALSO

   lircd(8)
   irrecord(1)
   http://www.kernel.org/doc/Documentation/input/event-codes.txt





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.