NAME
lcdexec - LCDproc client to execute commands from the LCDd menu
SYNOPSIS
lcdexec [-hf] [-c config] [-a addr] [-p port] [-r level] [-s bool]
DESCRIPTION
lcdexec connects to LCDd (the LCDproc server) and adds a submenu to the
LCDd main menu that allows the user to select commands to be executed.
You can access the menu by pressing the menu key configured for LCDd.
OPTIONS
lcdexec understands the following command line options., that override
the corresponding options given in the configuration file:
-c filename
Set the name of the config file to read, /etc/lcdexec.conf by
default
-a address
Set the address of the host which LCDd is running on, localhost
by default
-p port Set the port which LCDd is accepting connections on, 13666 by
default
-f Run in foreground.
-r level
Set the reporting level to level, which is an integer
representing the reporting levels from 0 (critical errors only)
to 5 (debug messages). Default is 2 (errors and warnings only)
-s bool Report to syslog (1) or to stdout (0, default)
USAGE
In addition to the command line options listed above lcdexec also takes
options from a configuration file.
This file is expected to have a "INI-file" like format with sections
introduced by section headers in square brackets and options lines
consisting of key=value pairs.
Section and option names may contain only characters from the range [a-
zA-Z0-9_], while value strings may contain any printable character.
Value strings with characters outside the range [a-zA-Z0-9_] must be
quoted with double quotes. To get a double quote or backslashes in the
string, they must be escaped by preceding it by a backslash.
The lcdexec configuration file needs at least two sections:
[lcdexec]
for the general options
[MainMenu]
for the top level of the menu hierarchy to be displayed.
The [lcdexec] section supports the following options:
Address=server
The host name or IP address of the LCDd server to connect to.
If not given, server defaults to localhost.
Port=port
Port of the server to connect to. The default value for port
is 13666, the LCDproc port.
ReportLevel=level
Set the reporting level to level, which is an integer
representing the reporting levels from 0 (critical errors only)
to 5 (debug messages). Default is 2 (errors and warnings only)
ReportToSyslog=bool
Tell whether to report to syslog (TRUE) or to stderr (FALSE).
Foreground=bool
Tell whether to run in foreground (TRUE) or in background
(FALSE). If not given, the default is FALSE for daemon mode.
DisplayName=Display
Set the display name for the main menu. If not given it
defaults to lcdexec HOST, where HOST is the hostname of the
system lcdexec is running on.
Shell=/path/to/shell
Set the shell to use when executing programs. If not given,
lcdexec tries to read the environment variable SHELL. If that
fails, it defaults to /bin/sh. Please note that the shell
given here must understand the option -c followed by the
command line to execute.
The [MainMenu] section and the sections it refers to define the menu
hierarchy to be displayed. Each menu and each menu entry in the menu
hierarchy is defined as its own section. Whether a given section is a
sub-menu or a command entry is defined by the option keys occuring in
the section.
Menu / menu entry sections may contain the following options:
Entry=entry
Defines a menu entry entry which is further specified in the
section [entry].
Sections containing one or more Entry= options are menus.
Exec=command
Defines the system command command to be executed when this
entry gets selected.
Sections containing an Exec= option are command entries.
DisplayName=name
The name of the menu entry to be displayed on the LCD. If this
option is not given, the the section header name is used
(without the square brackets).
Feedback=bool
In command entries, this option tells whether to inform the
user of the completion of commands using an alert screen on the
display. If not given, it defaults to no.
FILES
lcdexec.conf
EXAMPLES
In the configfile:
## general options for lcdexec ##
[lcdexec]
# address of the LCDd server to connect to
Address=localhost
# Port of the server to connect to
Port=13666
# set reporting level
ReportLevel=2
# report to to syslog ?
ReportToSyslog=false
# run in foreground [default: false; legal: true, false]
Foreground=false
# display name for the main menu [default: lcdexec HOST]
#DisplayName=lcdexec
# main menu definition
[MainMenu]
# the Entry=... lines (one for each menu entry) tell it is a menu definition
Entry=EjectCD
Entry=ShutdownMenu
# definition of a command
[EjectCD]
# name to display in the menu instead of the section name
DisplayName="Eject CD-ROM"
# the Exec=... line tells that it is a command
Exec="umount /cdrom; cdeject"
# definition of a menu
[ShutdownMenu]
DisplayName="Shutdown menu"
# a menu contains an Entry=... line for each menu entry
Entry=Shutdown5min
Entry=Reboot5min
Entry=CancelShutdown
Entry=ShutdownNow
Entry=RebootNow
[Shutdown5min]
DisplayName="Shutdown in 5 minutes"
Exec="shutdown -h +5"
Feedback=yes
[Reboot5min]
DisplayName="Reboot in 5 minutes"
Exec="shutdown -r +5"
Feedback=yes
[CanclShutdown]
DisplayName="Cancel shutdown/reboot"
Exec="shutdown -c"
Feedback=yes
[ShutdownNow]
DisplayName="Shutdown now"
Exec="shutdown -h now"
[RebootNow]
DisplayName="Reboot now"
Exec="shutdown -r now"
Start lcdexec with: lcdexec -c /usr/local/etc/lcdexec.conf
This will allow you to eject the CD-ROM by opening the LCDd menu,
selecting "lcdexec" and selecting "Eject CD-ROM". Further it allows
you to do various shutdowns, among others the "Shutdown in 5 minutes"
by opening the LCDd menu, selecting "lcdexec", selecting "Shutdown
menu" and selecting "Shutdown in 5 minutes".
SEE ALSO
LCDd(8)
AUTHOR
lcdexec is written by Joris Robijn and Peter Marschall. It is part of
the LCDproc suite.
The newest version of LCDproc should be available from here:
http://www.lcdproc.org/
LEGAL STUFF
LCDproc is released as "WorksForMe-Ware". In other words, it is free,
kinda neat, and we don’t guarantee that it will do anything in
particular on any machine except the ones it was developed on.
It is technically released under the GNU GPL license (you should have
received the file, "COPYING", with LCDproc) (also, look on
http://www.fsf.org/ for more information), so you can distribute and
use it for free -- but you must make the source code freely available
to anyone who wants it.
For any sort of real legal information, read the GNU GPL (GNU General
Public License). It’s worth reading.