I'm using it as a standalone USB device. By default, the pedals map to left/middle/right click. Ideally I'd map them Esc, Ctrl, and Shift.

Although xinput lists it as a keyboard (and also as a mouse), I don't see how to configure it like one.

$ xinput list | grep pedal
   ↳ Kinesis  Footpedal                         id=10   [slave  pointer  (2)]
   ↳ Kinesis  Footpedal                         id=9    [slave  keyboard (3)]

I tried mapping its mouse buttons to unused indices (xinput set-button-map 10 10 11 12) and then using imwheel to map the results to something I actually want, but despite the docs imwheel doesn't seem to support making hotkeys for anything beyond the normal mouse buttons (left/right/middle/scrollup/scrolldown/thumb1/thumb2).

3 Answers 3


To program the Savant Elite footswitch, the programming driver needs to be installed on a Windows 32 bit computer (http://kinesis-ergo.com/wp-content/uploads/2014/01/xkeyswxp.exe). The driver is not compatible with any other operating system, as well as 64-bit Windows. Once it’s installed it can then be programmed for keyboard commands (programming instructions located in User’s Manual). Once it’s programmed, that information is stored in the device and can then be connected to his Linux computer and it will function exactly as programmed.

BTW this is a discontinued product and is outdated. The current Savant Elite2 is fully compatible with all operating systems including Linux and can be programmed much easier (without the user of a driver).


Map your device's mouse buttons to unused mouse buttons, then use your xbindkeys to refer to those.

  1. Use xinput list to find your device's id.
  2. Use xinput set-button-map to remap your buttons to other mouse buttons. For example, if xinput list indicates your device's id is 15, and your device has four buttons, do xinput set-button-map 15 10 11 12 13. You've now set device 15's mouse clicks to be b:10, b:11, b:12, and b:13.
  3. Update your .xbindkeysrc to remap those buttons to your desired shortcuts.

    #xte 'key Escape'"
  4. Run killall -HUP xbindkeys to refresh the keys.


Try the following, which will remap the scancodes to the keycodes of your choice:

sudo tee "/etc/udev/hwdb.d/10-kinesis-savant.hwdb" > /dev/null <<'EOF'
  KEYBOARD_KEY_70021=capslock  # left pedal
  KEYBOARD_KEY_70022=leftshift # middle pedal
  KEYBOARD_KEY_70023=leftctrl  # right pedal

sudo udevadm hwdb --update
sudo udevadm trigger
xmodmap ~/.Xmodmap

By default, the pedals will send three scan codes for a three key combination. All three pedals send the same scancodes for the first two and a unique one for the final. The first two mappings account for this by mapping the first two scancodes to the unknown key.

To check the scancodes, use evtest

If this does not work, check that the evdev match b0003v05F3p030Ce0100 is correct.

For more information see: https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .