p The options are as follows: l -tag -width Ds t Fl c Ar config-file Specify a path name for the config file. When running as a daemon this needs to be an absolute path for the HUP signal to work. t Fl d Toggle the daemon flag. t Fl i Ignore HID items in the config file that do not exist in the device. t Fl f Ar device Specify a path name for the device to operate on. If .Ar device is numeric, it is taken to be the USB HID device number. If it is a relative path, it is taken to be the name of the device under
a /dev . An absolute path is taken to be the literal device pathname. t Fl p Ar pidfile Writes a file containing the process ID of the program. The file name has the form
a /var/run/usbhidaction.pid . If the option is not given, .Ar pidfile defaults to
a usbhidaction . t Fl t Ar table Specify a path name for the HID usage table file. t Fl v Be verbose, and do not become a daemon. .El
p The config file will be re-read if the process gets a HUP signal. .Sh CONFIGURATION The configuration file has a very simple format. Each line describes an action; if a line begins with a whitespace it is considered a continuation of the previous line. Lines beginning with `#' are considered as comments.
p Each line has three parts: a name of a USB HID item, a value for that item, and an action. There must be whitespace between the parts.
p The item names are similar to those used by .Xr usbhidctl 1 , but each part must be prefixed by its page name (use the .Fl v flag to .Xr usbhidctl 1 to see the page name). Replace spaces in the item name by underscores.
p The value is simply a numeric value. When the item reports this value the action will be performed. If the value is `*' it will match any value.
p The action is a normal command that is executed with .Xr system 3 . Before it is executed some substitution will occur: `$n' will be replaced by the nth argument on the command line, `$V' will be replaced by the numeric value of the HID item, `$N' will be replaced by the name of the control, and `$H' will be replaced by the name of the HID device. .Sh FILES
a /usr/share/misc/usb_hid_usages The HID usage table. .Sh EXAMPLES The following configuration file can be used to control a pair of Philips USB speakers with the HID controls on the speakers. d -literal -offset indent # Configuration for various Philips USB speakers Consumer:Consumer_Control.Consumer:Volume_Up 1 mixerctl -f $1 -n -w outputs.master++ Consumer:Consumer_Control.Consumer:Volume_Down 1 mixerctl -f $1 -n -w outputs.master-- Consumer:Consumer_Control.Consumer:Mute 1 mixerctl -f $1 -n -w outputs.mute++ Consumer:Consumer_Control.Consumer:Channel_Top.Microsoft:Base_Up 1 mixerctl -f $1 -n -w outputs.bass++ Consumer:Consumer_Control.Consumer:Channel_Top.Microsoft:Base_Down 1 mixerctl -f $1 -n -w outputs.bass-- .Ed
p A sample invocation using this configuration would be d -literal -offset indent usbhidaction -f /dev/uhid1 -c conf /dev/mixer1 .Ed
p This configuration file can be used for various keyboards with extra keys: d -literal -offset indent # Configuration for extra keyboard keys Consumer:Consumer_Control.Consumer:Volume_Up 1 mixerctl -n -w outputs.master++ Consumer:Consumer_Control.Consumer:Volume_Down 1 mixerctl -n -w outputs.master-- Consumer:Consumer_Control.Consumer:Mute 1 mixerctl -n -w outputs.mute++ Consumer:Consumer_Control.Consumer:Pause/Play 1 xmms -p Consumer:Consumer_Control.Consumer:Stop 1 xmms -s Consumer:Consumer_Control.Consumer:Scan_Previous_Track 1 xmms -r Consumer:Consumer_Control.Consumer:Scan_Next_Track 1 xmms -f .Ed
p And this configuration can be used with, e.g., d -literal -offset indent usbhidaction -f /dev/uhid0 -c conf -i .Ed .Sh SEE ALSO .Xr usbhidctl 1 , .Xr usbhid 3 , .Xr uhid 4 , .Xr usb 4 .Sh HISTORY The .Nm command first appeared in .Nx 1.6 .