monitor-status (please do a PR if you have a better name) is a tool which
allows to watch for udev events. It was initially written to reset my i3
worspaces when a monitor is plugged in, but it can be used for any kind of
device.
It's still work in progress.
There are no binary packages yet, but the tootl can easily be built.
Dependencies are go (1.8 or higher version) and libudev-dev
(systemd-devel on Fedora).
Once the depencies are installed, simply run go get
github.com/lukapeschke/monitor-status and you're good to go.
If you don't want to install go and dependencies, you can build this with docker. A service file will also be generated:
$ git clone https://github.com/lukapeschke/monitor-status $ cd monitor-status # The image is also available on the docker hub, this step isn't mandatory $ docker build -t lukapeschke/monitor-status . $ docker run --rm -v $PWD:/root/monitor-status lukapeschke/monitor-status $USER $ ./install.sh $ sudo systemctl daemon-reload $ sudo systemctl start monitor-status
The service should now be enabled and running.
The tool will look for a config file in the following places:
"./config.yml", "~/.monitor-status/config.yml", "~/.config/monitor-status.yml", "~/.config/monitor-status/config.yml", "$GOPATH/src/github.com/lukapeschke/monitor-status/config.yml"
If your config file is located elsewhere, you can specify its path with the
-config flag.
The config file has the following format:
drm: # subsystem
card0-DP-3: # device
on_connect: ~/bin/reset_workspaces.sh # command for "add" event
on_disconnect: xrandr --output DP-1-1 --off # command for "remove" event
DEVICE2:
on_connect: echo "hello world!"
on_disconnect: echo "bye!"
SUBSYSTEM2:
[...]
For now, only on_connect and on_disconnect are supported, but more
events will be supported in the future.