Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
USBHIDACTION(1)		FreeBSD	General	Commands Manual	       USBHIDACTION(1)

     usbhidaction -- perform actions according to USB HID controls

     usbhidaction [-div] -c config-file	-f device arg ...

     usbhidaction can be used to execute commands when certain values appear
     on	HID controls.  The normal operation for	this program is	to read	the
     configuration file	and then become	a daemon and execute commands as the
     HID items specify.	 If a read from	the HID	device fails the program dies;
     this will make it die when	the USB	device is unplugged.

     The options are as	follows:

     -c	config-file
	     Specify a path name for the config	file.

     -d	     Toggle the	daemon flag.

     -f	device
	     Specify a path name for the device	to operate on.	If 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
	     /dev.  An absolute	path is	taken to be the	literal	device path-

     -i	     Ignore HID	items in the config file that do not exist in the de-

     -v	     Be	verbose, and do	not become a daemon.

     The config	file will be re-read upon receiving SIGHUP.

     The configuration file has	a very simple format.  Each line describes an
     action; if	a line begins with a whitespace	it is considered a continua-
     tion of the previous line.	 Lines beginning with `#' are considered as

     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.

     The item names are	similar	to those used by usbhidctl(1), but each	part
     must be prefixed by its page name.

     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

     The action	is a normal command that is executed by	using fork(2).	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.

     /usr/share/misc/usb_hid_usages The	HID usage table.

     The following configuration file can be used to control the master	volume
     and muting	of an azalia(4)	device using the multimedia keys on a Belkin
     USB keyboard.

	   # The volume	range is 0..1. Moving 0.05 volume steps, each keypress
	   # moves quickly through the volume range but	still has decent
	   # granularity.
	   Consumer:Volume_Increment					      1
		   sndioctl -f $1 output.level=+0.05
	   Consumer:Volume_Decrement					      1
		   sndioctl -f $1 output.level=-0.05
	   Consumer:Mute						      1
		   sndioctl -f $1 output.mute=!

     A sample invocation using this configuration would	be

	   $ usbhidaction -f /dev/uhid1	-c conf	snd/0

     usbhidctl(1), usbhid(3), uhid(4), usb(4)

     The usbhidaction command first appeared in	OpenBSD	3.2.

FreeBSD	13.0			 June 24, 2020			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help