lirc-config-tool(1) General Commands Manual lirc-config-tool(1)
NAME
lirc-config-tool - tool to scan and generate lirc config files
SYNOPSIS
lirc-config-tool -s|-u [ -c FILE]
lirc-config-tool [-o DIR] [-d] [-c FILE] [FILES]
lirc-config-tool -l
OPTIONS
Without options, generates all available application specific lircrc
files in ~/.config/lirc. The optional [files] is a list of files to
build or dump, as listed by -l.
-s Scan lircd file for key symbols which are duplicated or not in
namespace.
-u Update existing lircd file to use key symbols in namespace.
-l List available files to generate.
-d Dump file templates usable as stdin on stdout.
-o
Output directory, defaults to ~/.config/lirc
-c
lircd(8) config file, defaults to /etc/lirc/lircd.conf
-h Print help message
DESCRIPTION
The script is designed to assist in the setup of the lirc(8)
configuration files for ordinary remote controls. It is not aimed to
handle full-blown keyboards or joystick devices. The generated lircrc
files represents a starting point which will need further, manual
refinements but might "work" in a basic sense in many cases.
The setup involves normalizing the lircd.conf to use symbols in the
legal namespace, and to create application specific lircrc files which
uses the normalized symbols.
To assist normalizing /etc/lircd.conf, the script can report symbols
used which not are in the namespace. It can can also update many of
these symbols to corresponding symbols within the namespace.
The script also can create application specific lircrc files such as
mythtv.lircrc or vlc.lircrc. It then uses the normalized key symbols
in /etc/lirdc.conf. By default, files are created in ~/.config/lirc.
Generated lircrc files basically combines known keys from
/etc/lirc/lircd.conf with template data for an application. The process
results in a lircrc file, a list a of unused keys and some entries
which don't match any existing key. The unused keys and unmatched
entries are written as comments into the generated file.
An 'illegal' key i. e., a key not in namespace, will not match any
entry and will thus always be unused. However, it's perfectly possible
to use it later on while manually modifying the lircrc files.
When updating files, script always makes backup copies.
The generated lircrc files are intended to be included in a main
~/.config/lircrc file. A minimal such might look like
include ~/.config/lirc/mythtv.lircrc
EXAMPLES
Scan /etc/lirc/lircd.conf for duplicated symbols and symbols not in
namespace:
lirc-config-tool -s
Update a local lircd.conf file to use symbols in namespace:
lirc-config-tool -uc ./lircd.conf
List available files to generate:
lirc-config-tool -l
Generate one of the files listed by -l, creates
~/.config/lirc/mythtv.lircrc:
lirc-config-tool mythtv
Dump template data for mythtv:
lirc-config-tool -d mythtv >mythtv.lircdata
Use possibly edited data to create a modified mythtv.lircrc in current
dir:
lirc-config-tool -o . stdin < mythtv.lircdata
LIRCD.CONF CONVERSIONS
The -s option simply reports all key symbols not in namespace. It also
reports some symbols which although legal are inappropriate in this
context, notably KEY_NUMERIC_0..KEY_NUMERIC_9. If present, duplicated
keys are also reported.
The -u option converts several known symbols to their corresponding
KEY_* symbols. Symbols which have names like KEY_WINDOWS but not are in
namespace gets a X_ prefix e. g., KEY_WINDOWS -> X_KEY_WINDOWS. The
converted file thus guarantees that any key symbol starting with KEY_
is a legal symbol.
All known numeric keys such as '1', 'KEY_1', 'KEY_KP_1', 'KEY_NUMERIC_1
are converted to KEY_1.
All modifications are marked by comments in file.
EXTENDING
The script can be extended to support more applications by providing a
shell function named *.lircdata. E. g., to add a new application named
"my_app" based on the built-in vlc application:
$ lirc-config-tool -d vlc >my_app.lircdata
$ function my_app_lircdata()
> {
> cat my_app.lircdata
> }
$ export -f my_app_lircdata
$ lirc-config-tool my_app
DATA FORMAT
The script uses a simple, line-oriented format to represent the lircrc
files. The purpose of the format is to be compact and thus to give a
good overview, and also to be easy to parse. Each line is divided in
comma-separated tokens. There are four kind of lines.
Comment lines begins with a '#'. These are copied verbatim to the
output file.
The first data line represents global items, applicable to all entrys.
The first word is the program name. It's used in the first 'program='
line. Following words, if present, are optional lines which will be
appended to each entry in the file.
A data line starting with 'begin' or 'end' is a mode block designator.
It's copied verbatim to output file.
All other data lines represents a button/config entry. The format is