From c6505873e96e295c2565cb8ad69ee77f41c58f99 Mon Sep 17 00:00:00 2001 From: Rico Tiongson Date: Mon, 25 Sep 2017 23:28:57 +0800 Subject: [PATCH] Update README --- README.md | 21 +++++++++++++++++---- img/sample.png | Bin 0 -> 21967 bytes 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 img/sample.png diff --git a/README.md b/README.md index c6d376e..4a68265 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,19 @@ # Ubuntu-Comfortable-3-Finger-Swipe -Comfortable 3-finger and 4-finger swipe gesture using Xdotool in native C++, for Ubuntu 16.04LTS and beyond. +Author: Rico Tiongson -## Installation Instructions -1. `sudo apt install libxdo-dev` -2. ` \ No newline at end of file +Comfortable 3-finger and 4-finger swipe gesture using Xdotool in native C++, for Ubuntu 16.04LTS and beyond. Makes use of Xdotool to simulate a keyboard shortcut via + +## Installation +1. `sudo apt install libinput-dev libxdo-dev` +2. Tweak `src/comfortable-swipe.cpp` to fit keyboard shortcuts of your gestures +3. `bash install` + +## How to Run +1. `comfortable-swipe-serve` = +2. Flick away! + +## Optional: Add to Startup Applications +1. `gnome-session-properties` +2. Add + + ![Comfortable Swipe](img/sample.png) \ No newline at end of file diff --git a/img/sample.png b/img/sample.png new file mode 100644 index 0000000000000000000000000000000000000000..ae10ca72df61e0afadea251f952f08d534c3cb1a GIT binary patch literal 21967 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