October 29, 2019

Using a Griffin PowerMate with Linux

Install Event Tester

This allows us to see what signals/commands are being sent to the machine over USB.

sudo apt install evtest
sudo evtest

You should list USB input devices, try turning the wheel to see the events.

Install driver

Stefan Sundin has written a small userspace driver for the Powermate, it can be found at: https://launchpad.net/~stefansundin/+archive/ubuntu/powermateSmall
NOTE: PulseAudio needs to be installed/working for this to function properly

Add the repository

sudo add-apt-repository ppa:stefansundin/powermatesudo &&
sudo apt update &&
sudo apt install powermate xdotool

We also install the xdotool so we can remap any X events we want to the Powermate input. After installing, unplug and re-plug the Powermate, then from a terminal:


Customize the configuation

To edit the system-wide config, open /etc/powermate.toml in your favourite text editor. If you prefer to keep the Powermate app settings in your $HOME folder, copy it to $home/.powermate.toml
Make sure you edit the dev = to match the device we found with evtest above.

My example config options

The below config has a button push execute a media play/pause, with the device turning scrolling the mouse using mouse scroll wheel emulation.

knob_command = "xdotool key XF86AudioPlay"
clock_wise_command = "xdotool click --delay 0 5"
counter_clock_wise_command = "xdotool click --delay 0 4"
clock_wise_command = "xdotool key Down"
counter_clock_wise_command = "xdotool key Up"

Handy XDOTools commands:

xdotool key XF86AudioPlay
xdotool key XF86AudioPrev
xdotool key XF86AudioNext
xdotool key XF86AudioLowerVolume
xdotool key XF86AudioRaiseVolume
xdotool key XF86AudioMute
systemctl suspend