Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rgerganov/footswitch
Command-line utility for PCsensor and Scythe foot switches
https://github.com/rgerganov/footswitch
c footswitch linux osx
Last synced: about 18 hours ago
JSON representation
Command-line utility for PCsensor and Scythe foot switches
- Host: GitHub
- URL: https://github.com/rgerganov/footswitch
- Owner: rgerganov
- License: mit
- Created: 2012-08-20T15:03:04.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-07-25T04:54:54.000Z (6 months ago)
- Last Synced: 2025-01-03T06:13:01.577Z (9 days ago)
- Topics: c, footswitch, linux, osx
- Language: C
- Homepage:
- Size: 51.8 KB
- Stars: 420
- Watchers: 19
- Forks: 61
- Open Issues: 40
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://github.com/rgerganov/footswitch/workflows/CI/badge.svg)](https://github.com/rgerganov/footswitch/actions)
Footswitch
----------Command line utlities for programming [PCsensor][1] and [Scythe](https://www.scythe-eu.com/en/products/pc-accessory/usb-foot-switch-ii.html) foot switches.
The following list of devices are supported:
| vendorId | productId | Program |
| ---------|---------- | ------------- |
| 0c45 | 7403 | `footswitch` |
| 0c45 | 7404 | `footswitch` |
| 413d | 2107 | `footswitch` |
| 1a86 | e026 | `footswitch` |
| 3553 | b001 | `footswitch` |
| 0426 | 3011 | `scythe` |
| 055a | 0998 | `scythe2` |You can find the `vendorId` and `productId` of your device using the `lsusb` command on Linux.
The same kind of foot switches are used for building the popular [VIM Clutch][2].
Building
--------Debian
------On a debian machine, provided you have `devscripts` and `equivs` installed:
```bash
mk-build-deps -i
dpkg-buildpackage -us -uc -b
```Or, you can build the package in a Docker container:
```bash
docker build .
```
Archlinux
---------Footswitch is available in the [AUR](https://aur.archlinux.org/packages/footswitch-git) and can be installed using your favourite AUR helper, for example:
- `yay -S footswitch-git`
- `paru -S footswitch-git`Other systems
-------------The programs are using the [hidapi][3] library and should work on Linux and OSX. To build on Linux:
sudo apt-get install libhidapi-dev
git clone https://github.com/rgerganov/footswitch.git
cd footswitch
make
sudo make installThe `install` target installs udev rules on Linux which allow running the programs without root.
You may need to use `sudo` otherwise.To build on OSX:
brew tap rgerganov/footswitch https://github.com/rgerganov/footswitch.git
brew install --HEAD footswitchUsage
-----
footswitch [-123] [-r] [-s ] [-S ] [-ak ] [-m ] [-b ] [-xyw ]
-r - read all pedals
-1 - program the first pedal
-2 - program the second pedal (default)
-3 - program the third pedal
-s string - append the specified string
-S rstring - append the specified raw string (hex numbers delimited with spaces)
-a key - append the specified key
-k key - write the specified key
-m modifier - ctrl|shift|alt|win
-b button - mouse_left|mouse_middle|mouse_right
-x X - move the mouse cursor horizontally by X pixels
-y Y - move the mouse cursor vertically by Y pixels
-w W - move the mouse wheel by WYou cannot mix -sSa options with -kmbxyw options for one and the same pedal
_scythe [-123] [-r] [-a ] [-m ] [-b ]
-r - read all pedals
-1 - program the first pedal
-2 - program the second pedal (default)
-3 - program the third pedal
-a key - append the specified key
-m modifier - ctrl|shift|alt|win
-b button - mouse_left|mouse_double|mouse_rightYou cannot mix -a and -m options with -b option for one and the same pedal
Examples for PCsensor
--------
footswitch -r
read the persisted function in each pedal and print it on the console
footswitch -k a
program the second pedal to print the letter 'a' (also work for single pedal devices);
as a general rule you don't need to specify -1, -2 or -3 if you have only one pedal
footswitch -1 -k a -2 -k b -3 -k c
program the first pedal to print 'a', second pedal to print 'b' and third pedal to print 'c'
footswitch -1 -k esc -2 -k enter
program the first pedal as Escape key and the second pedal as Enter key
footswitch -1 -m ctrl -k a -3 -m alt -k f4
program the first pedal as Ctrl+a and the third pedal as Alt+F4
footswitch -1 -m ctrl -k a -3 -m shift -m alt -k s
program the first pedal as Ctrl+a and the third pedal as Shift+Alt+s (Wikipedia "save")
footswitch -m ctrl -b mouse_middle
program the second pedal as Ctrl+
footswitch -s 'hello world'
program the second pedal to print 'hello world'
footswitch -s 'hello' -s ' ' -s 'world'
this will also program the second pedal to print 'hello world';
you can specify multiple -s options and each option will append to the resulting string
footswitch -a esc -a i
program the second pedal to produce Escape and then the letter 'i'
footswitch -s ls -a enter
program the second pedal to print 'ls' and then hit Enter
footswitch -S '29 C'
program the second pedal with the specified 'raw' string (hex numbers delimited with spaces);
you can find the hex code for each key at http://www.freebsddiary.org/APC/usb_hid_usages.php
footswitch -1 -x 10 -2 -w 15 -3 -y -10
program first pedal to move the mouse cursor 10 pixels left;
second pedal to move mouse wheel 15 units up;
third pedal to move the mouse cursor 10 pixels rightExamples for Scythe
--------
scythe -r
read the persisted function in each pedal and print it on the console
scythe -1 -a a -2 -a b -3 -a c
program the first pedal to print 'a', second pedal to print 'b' and third pedal to print 'c'
scythe -1 -m ctrl -a h -a o -2 -m alt -a f4 -3 -b mouse_double
program the first pedal as Ctrl+h+o, the second pedal as Alt+F4 and the third pedal as double clickHardware issues
--------
Several people have reported misbehaviors with the PCsensor footswitch due to hardware issues.
If the pedal is continuously sending a keypress without being pressed, then most probably some of
the elements do not make good contact with the PCB. Follow the [instructions][4] contributed by @krasiyan
on how to verify and fix this.Author
-------
[Radoslav Gerganov](mailto:[email protected])Contributors
-------
* [Daniel Manjarres](mailto:[email protected])
* Meng Zhang (wsxiaoys)[1]: http://www.pcsensor.com/index.php?_a=viewCat&catId=2
[2]: https://github.com/alevchuk/vim-clutch
[3]: http://www.signal11.us/oss/hidapi/
[4]: https://github.com/rgerganov/footswitch/issues/26#issuecomment-401429709