lircd-uinput - Forward lirc button presses as uinput events
lircd-uinput [options]... [lircd output socket] lircd-uinput [options]... [file]
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.
-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.
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.
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.
Since the device name is fixed, only one instance of lircd-uinput can run on a system.
lircd(8) irrecord(1) http://www.kernel.org/doc/Documentation/input/event-codes.txt
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 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.
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.
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.