.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "inputplug 1" .TH inputplug 1 "2013-12-07" "" "" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" inputplug \- XInput event monitor .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBinputplug\fR [\fB\-a\fR \fIaddress\fR] [\fB\-f\fR \fIpath\fR] [\fB\-v\fR] [\fB\-n\fR] [\fB\-d\fR] [\fB\-0\fR] \fB\-c\fR \fIcommand-prefix\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBinputplug\fR is a daemon which connects to a running X server and monitors its XInput hierarchy change events. Such events arrive when a device is being attached or removed, enabled or disabled etc. .PP When a hierarchy change happens, \fBinputplug\fR parses the event notification structure, and calls the command specified by \fIcommand-prefix\fR. The command receives four arguments: .IP "\fIcommand-prefix\fR \fIevent-type\fR \fIdevice-id\fR \fIdevice-type\fR \fIdevice-name\fR" 4 .IX Item "command-prefix event-type device-id device-type device-name" .PP Event type may be one of the following: .IP "\(bu" 4 \&\fIXIMasterAdded\fR .IP "\(bu" 4 \&\fIXIMasterRemoved\fR .IP "\(bu" 4 \&\fIXISlaveAdded\fR .IP "\(bu" 4 \&\fIXISlaveRemoved\fR .IP "\(bu" 4 \&\fIXISlaveAttached\fR .IP "\(bu" 4 \&\fIXISlaveDetached\fR .IP "\(bu" 4 \&\fIXIDeviceEnabled\fR .IP "\(bu" 4 \&\fIXIDeviceDisabled\fR .PP Device type may be any of those: .IP "\(bu" 4 \&\fIXIMasterPointer\fR .IP "\(bu" 4 \&\fIXIMasterKeyboard\fR .IP "\(bu" 4 \&\fIXISlavePointer\fR .IP "\(bu" 4 \&\fIXISlaveKeyboard\fR .IP "\(bu" 4 \&\fIXIFloatingSlave\fR .PP Device identifier is an integer. The device name may have embedded spaces. .PP Optionally, if compiled with \fBlibixp\fR, inputplug can post events to the \fBwmii\fR event file. To enable \fBwmii\fR support, the address of its \fB9P\fR server needs to be specified. .SH "OPTIONS" .IX Header "OPTIONS" A summary of options is included below. .IP "\fB\-v\fR" 4 .IX Item "-v" Be a bit more verbose. .IP "\fB\-n\fR" 4 .IX Item "-n" Start up, monitor events, but don't actually run anything. With verbose more enabled, would print the actual command it'd run. This implies \fB\-d\fR. .IP "\fB\-d\fR" 4 .IX Item "-d" Don't daemonise. Run in the foreground. .IP "\fB\-0\fR" 4 .IX Item "-0" On start, trigger added and enabled events for each plugged devices. A master device will trigger the \*(L"added\*(R" event while a slave device will trigger both the \*(L"added\*(R" and the \*(L"enabled\*(R" device. .IP "\fB\-c\fR \fIcommand-prefix\fR" 4 .IX Item "-c command-prefix" Command prefix to run. Unfortunately, currently this is passed to \&\fBexecvp\fR\|(3) directly, so spaces aren't allowed. This is subject to change in future. .IP "\fB\-a\fR \fIaddress\fR" 4 .IX Item "-a address" The address at which to connect to \fBwmii\fR. The address takes the form \fI\fR!\fI
\fR. If an empty string is passed, \&\fBinputplug\fR tries to find \fBwmii\fR automatically. .IP "\fB\-f\fR \fIpath\fR" 4 .IX Item "-f path" Path to the event file within \fB9P\fR filesystem served by \fBwmii\fR. The default is \fB/event\fR. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" .IP "\fI\s-1DISPLAY\s0\fR" 4 .IX Item "DISPLAY" X11 display to connect to. .IP "\fI\s-1WMII_ADDRESS\s0\fR" 4 .IX Item "WMII_ADDRESS" \&\fBwmii\fR address. .SH "BUGS" .IX Header "BUGS" Probably, there are some. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBxinput\fR\|(1) .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 2013, 2014, 2018, 2020 Andrej Shadura. .PP Copyright (C) 2014, 2020 Vincent Bernat. .PP Licensed as \s-1MIT/X11.\s0 .SH "AUTHOR" .IX Header "AUTHOR" Andrej Shadura