Skip to content

henryso/inputplug

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

inputplug

inputplug is a very simple daemon which monitors XInput events and runs arbitrary scripts on hierarchy change events (such as a device being attached, removed, enabled or disabled).

To build the project, it's best to use mk-configure(7), a build system based on bmake(1). If you can’t use it for some reason, a GNU Makefile is also included.


NAME

inputplug — XInput event monitor

SYNOPSIS

inputplug [-a address] [-f path] [-v] [-n] [-d] [-0] -c command-prefix

DESCRIPTION

inputplug 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.

When a hierarchy change happens, inputplug parses the event notification structure, and calls the command specified by command-prefix. The command receives four arguments:

  • command-prefix event-type device-id device-type device-name

Event type may be one of the following:

  • XIMasterAdded
  • XIMasterRemoved
  • XISlaveAdded
  • XISlaveRemoved
  • XISlaveAttached
  • XISlaveDetached
  • XIDeviceEnabled
  • XIDeviceDisabled

Device type may be any of those:

  • XIMasterPointer
  • XIMasterKeyboard
  • XISlavePointer
  • XISlaveKeyboard
  • XIFloatingSlave

Device identifier is an integer. The device name may have embedded spaces.

Optionally, if compiled with libixp, inputplug can post events to the wmii event file. To enable wmii support, the address of its 9P server needs to be specified.

OPTIONS

A summary of options is included below.

  • -v

    Be a bit more verbose.

  • -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 -d.

  • -d

    Don't daemonise. Run in the foreground.

  • -0

    On start, trigger added and enabled events for each plugged devices. A master device will trigger the "added" event while a slave device will trigger both the "added" and the "enabled" device.

  • -c command-prefix

    Command prefix to run. Unfortunately, currently this is passed to execvp(3) directly, so spaces aren't allowed. This is subject to change in future.

  • -a address

    The address at which to connect to wmii. The address takes the form !

    . If an empty string is passed, inputplug tries to find wmii automatically.

  • -f path

    Path to the event file within 9P filesystem served by wmii. The default is /event.

ENVIRONMENT

  • DISPLAY

    X11 display to connect to.

  • WMII_ADDRESS

    wmii address.

BUGS

Probably, there are some.

SEE ALSO

xinput(1)

COPYRIGHT

Copyright (C) 2013, 2014, 2018, 2020 Andrej Shadura.

Copyright (C) 2014, 2020 Vincent Bernat.

Licensed as MIT/X11.

AUTHOR

Andrej Shadura [email protected]

About

XInput event monitor daemon

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 90.4%
  • Makefile 9.6%