* Package comfortable-swipe with Python (#58) * Add initial python setup script * Add working initial python porting definition for comfortable-swipe * Add python extensions to cpp libraries * Remove boost and prefer vanilla Python.h implementation * Add main driver function for comfortable_swipe * Fix compilation for Python 3 * Remove depcreacted cpp scripts in root * Move script to entrypoint * Increment version to beta * Update variable formatting * Remove deprecated install script * Move install to post-install command * Create install script hooks * Fix bdist_wheel class errors * Use absolute path for c++ sources * Unignore index files * Move autostart to python * Allow comfortable swipe autostart for possible virtualenv * Completely port autostart to python * Move status to python * Optimize swipe function * Remove iostream optimization from buffer * Register pre-install and post-install in a stack * Remove underscores from value-defined macros * Compress default config * Change cpp to __init__.py * Error message * Bugfix for python2 * Use a requirements.txt * Add initial travis configuration * Attempt fix travis configuration * Attempt fix g++ error * Bugfix missing path dir on autostart * Add classifiers * Attempt install build-essential instead of g++ * Add missing psutil from requirements * Modify README * Attempt fix build errors in travis * Update README * Add simple build badges
180 lines
6.9 KiB
Markdown
180 lines
6.9 KiB
Markdown
# Comfortable Swipe (Debian/Ubuntu)
|
|
|
|
[](https://github.com/Hikari9/comfortable-swipe/releases)
|
|
[](https://github.com/Hikari9/comfortable-swipe/commits/master)
|
|
[](https://github.com/Hikari9/comfortable-swipe/commits/develop)
|
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
|
|
Comfortable, seamless, and fast 3-finger (and 4-finger) touchpad swipe gestures. Tested in Ubuntu 14.04 LTS and beyond, for Unity, GNOME, and KDE desktop environments.
|
|
|
|
> **Note**: May work for other Linux distros that support `libinput` and `libxdo` (untested).
|
|
|
|
## Installation
|
|
|
|
1. Update and install essential tools and libraries
|
|
|
|
```bash
|
|
sudo apt update && sudo apt install git g++-7 python3-pip libinput-tools libxdo-dev
|
|
```
|
|
|
|
2. Install `comfortable-swipe` for your user
|
|
|
|
```bash
|
|
pip3 install --user git+https://github.com/Hikari9/comfortable-swipe
|
|
```
|
|
|
|
3. You can check status with `comfortable-swipe status`
|
|
|
|
```bash
|
|
$> comfortable-swipe status
|
|
usr/local/share/comfortable-swipe/comfortable-swipe.conf
|
|
threshold = 0.0
|
|
left3 = ctrl+alt+Right
|
|
left4 = ctrl+alt+shift+Right
|
|
right3 = ctrl+alt+Left
|
|
right4 = ctrl+alt+shift+Left
|
|
up3 = ctrl+alt+Down
|
|
up4 = ctrl+alt+shift+Down
|
|
down3 = ctrl+alt+Up
|
|
down4 = ctrl+alt+shift+Up
|
|
autostart is ON
|
|
comfortable-swipe program is STOPPED
|
|
```
|
|
|
|
3. You can list down all commands with `comfortable-swipe` or `comfortable-swipe help`
|
|
|
|
```bash
|
|
$> comfortable-swipe
|
|
comfortable-swipe [start|stop|restart|autostart|buffer|help|config|debug|status]
|
|
|
|
start - starts 3/4-finger gesture service
|
|
stop - stops 3/4-finger gesture service
|
|
restart - stops then starts 3/4-finger gesture service
|
|
autostart - automatically run on startup (toggleable)
|
|
buffer - parses output of libinput debug-events
|
|
help - shows the help dialog
|
|
config - locates the config file
|
|
debug - logs raw output from input events taken from libinput
|
|
status - checks status of program and autostart
|
|
```
|
|
|
|
## How to Run
|
|
|
|
1. You'll need some group permissions to read touchpad input data. Run
|
|
```bash
|
|
sudo gpasswd -a $USER $(ls -l /dev/input/event* | awk '{print $4}' | head --line=1)
|
|
```
|
|
2. ***Important***: After inputing your `sudo` password, log out then log back in
|
|
3. By default, comfortable-swipe should be running. Otherwise, run:
|
|
```bash
|
|
comfortable-swipe start
|
|
```
|
|
You can see if gestures work correctly if you see `SWIPE xxx` in the output:
|
|
|
|
```bash
|
|
$> comfortable-swipe start
|
|
SWIPE left3
|
|
SWIPE right3
|
|
...
|
|
```
|
|
|
|
## How to Upgrade
|
|
|
|
```bash
|
|
pip3 install -U --user git+https://github.com/Hikari9/comfortable-swipe
|
|
```
|
|
|
|
## Uninstall
|
|
|
|
```bash
|
|
# Uncomment below to COMPLETELY remove configurations (not recommended)
|
|
# rm $(comfortable-swipe config)
|
|
|
|
pip3 uninstall comfortable-swipe
|
|
```
|
|
|
|
## Other Commands
|
|
|
|
1. `comfortable-swipe config` - outputs location of configuration file
|
|
|
|
```bash
|
|
$> comfortable-swipe config
|
|
/usr/local/share/comfortable-swipe/comfortable-swipe.conf
|
|
```
|
|
|
|
2. `comfortable-swipe autostart` - Toggles autostart
|
|
```bash
|
|
$> comfortable-swipe autostart
|
|
Autostart switched off
|
|
```
|
|
|
|
3. `comfortable-swipe debug` - Debugs input (this is an unbuffered alias of `libinput debug-events`)
|
|
|
|
```bash
|
|
$> comfortable-swipe debug
|
|
...
|
|
-event9 DEVICE_ADDED TouchPad seat0 default group7 cap:pg size 70x50mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on
|
|
...
|
|
event9 GESTURE_SWIPE_BEGIN +2.03s 3
|
|
event9 GESTURE_SWIPE_UPDATE +2.03s 3 -9.95/ 2.64 (-26.90/ 7.12 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.03s 3 -10.44/ 3.19 (-28.22/ 8.62 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.04s 3 -9.71/ 2.64 (-26.25/ 7.12 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.05s 3 -8.98/ 2.64 (-24.28/ 7.12 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.06s 3 -7.40/ 2.36 (-20.01/ 6.37 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.06s 3 -6.31/ 2.50 (-17.06/ 6.75 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.07s 3 -5.34/ 1.80 (-14.44/ 4.87 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.08s 3 -4.61/ 2.08 (-12.47/ 5.62 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.09s 3 -4.49/ 1.53 (-12.14/ 4.12 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.09s 3 -4.01/ 1.25 (-10.83/ 3.37 unaccelerated)
|
|
event9 GESTURE_SWIPE_UPDATE +2.10s 3 -4.13/ 0.42 (-11.15/ 1.12 unaccelerated)
|
|
event9 GESTURE_SWIPE_END +2.11s 3
|
|
...
|
|
```
|
|
|
|
If you can see `GESTURE_SWIPE_XXX` in your output, that means your touchpad supports multi-touch swipe gestures.
|
|
|
|
## Configurations
|
|
|
|
Comfortable swipe makes use of keyboard shortcuts for configurations. Edit by running
|
|
|
|
```bash
|
|
gedit $(comfortable-swipe config)
|
|
```
|
|
|
|
Make sure to restart after making changes:
|
|
```bash
|
|
comfortable-swipe restart
|
|
```
|
|
|
|
Property | Description | Default Value | Default Behavior
|
|
--------- | ----------- | -------------- | -----
|
|
threshold | mouse pixels to activate swipe; higher = less sensitive; floating-point (Note: Sky is the limit! Can be as large as 1000.0) | 0.0
|
|
left3 | 3-finger swipe left | ctrl+shift+Right | switch to right workspace
|
|
left4 | 4-finger swipe left | ctrl+alt+shift+Right | move window to right workspace
|
|
right3 | 3-finger swipe right | ctrl+shift+Left | switch to left workspace
|
|
right4 | 4-finger swipe right | ctrl+alt+shift+Left | move window to left workspace
|
|
up3 | 3-finger swipe up | ctrl+shift+Down | switch to bottom workspace
|
|
up4 | 4-finger swipe up | ctrl+alt+shift+Down | move window to bottom workspace
|
|
down3 | 3-finger swipe down | ctrl+shift+Down | switch to above workspace
|
|
down4 | 4-finger swipe down | ctrl+alt+shift+Up | move window to above workpace
|
|
|
|
Taken from `man xdotool`:
|
|
|
|
> Type a given keystroke. Examples being "alt+r", "Control_L+J",
|
|
> "ctrl+alt+n", "BackSpace".
|
|
>
|
|
> Generally, any valid X Keysym string will work. Multiple keys are
|
|
> separated by '+'. Aliases exist for "alt", "ctrl", "shift",
|
|
> "super", and "meta" which all map to Foo_L, such as Alt_L and
|
|
> Control_L, etc.
|
|
>
|
|
> In cases where your keyboard doesn't actually have the key you want
|
|
> to type, xdotool will automatically find an unused keycode and use
|
|
> that to type the key.
|
|
|
|
Refer to https://www.linux.org/threads/xdotool-keyboard.10528/ for a complete list of keycodes you can use.
|
|
|
|
## Bug Reports
|
|
|
|
Create an issue [here](https://github.com/Hikari9/comfortable-swipe-ubuntu/issues/new) to report a bug.
|