From 16742495eb98076158e844085b7aff57aa227204 Mon Sep 17 00:00:00 2001 From: Rico Tiongson Date: Tue, 12 Feb 2019 20:18:15 +0800 Subject: [PATCH] Add debug command (#51) * Add debug command * Update README to include debugging --- README.md | 39 ++++++++++++++++++++++++++++++++++----- comfortable-swipe.cpp | 3 +++ lib/comfortable_swipe | 1 + lib/index.hpp | 1 + lib/service/debug.cpp | 35 +++++++++++++++++++++++++++++++++++ lib/service/help.cpp | 3 ++- 6 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 lib/service/debug.cpp diff --git a/README.md b/README.md index d487f8c..afd62d5 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@ # Comfortable Swipe (Ubuntu) -[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) +[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) Comfortable, seamless, and fast 3-finger (and 4-finger) touchpad swipe gestures for Ubuntu 14.04 LTS and beyond. May work for other Linux distros that support `libinput`. ## Installation 1. Install git, libinput, and g++ - + ```bash sudo apt-get install git libinput-tools libxdo-dev g++ ``` 2. Clone this repository - + ```bash git clone https://github.com/Hikari9/comfortable-swipe-ubuntu.git cd comfortable-swipe-ubuntu @@ -41,7 +41,7 @@ Comfortable, seamless, and fast 3-finger (and 4-finger) touchpad swipe gestures ``` comfortable-swipe autostart ``` -5. _Optional_: Change keyboard [configurations](#configurations). After making changes, run +5. _Optional_: Change [configurations](#configurations) (see below). After making changes, run ``` comfortable-swipe restart ``` @@ -78,9 +78,38 @@ Taken from `man xdotool`: Refer to https://www.linux.org/threads/xdotool-keyboard.10528/ for a complete list of keycodes you can use. +## Debugging + +You can check your touchpad driver by running `comfortable-swipe debug`. This is an alias of `libinput debug-events`. This logs all gestures you make on your touchpad, along with other input-based events that can be captured by libinput. + +A working swipe gesture will show the following: + +```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. ## Uninstall -Download the `uninstall` script then run `bash uninstall` +Download the `uninstall` script then run `bash uninstall` + ## Bug Reports Create an issue [here](https://github.com/Hikari9/comfortable-swipe-ubuntu/issues/new) to report a bug. diff --git a/comfortable-swipe.cpp b/comfortable-swipe.cpp index de1118b..a880311 100644 --- a/comfortable-swipe.cpp +++ b/comfortable-swipe.cpp @@ -43,6 +43,9 @@ int main(int argc, char** args) else if (arg == "autostart") comfortable_swipe::service::autostart(); + else if (arg == "debug") + comfortable_swipe::service::debug(); + else /* if (arg == "help") */ comfortable_swipe::service::help(); } diff --git a/lib/comfortable_swipe b/lib/comfortable_swipe index eaa0a08..3316ca4 100644 --- a/lib/comfortable_swipe +++ b/lib/comfortable_swipe @@ -30,6 +30,7 @@ along with this program. If not, see . #include "gesture/swipe_gesture.regex.cpp" #include "service/autostart.cpp" #include "service/buffer.cpp" +#include "service/debug.cpp" #include "service/help.cpp" #include "service/restart.cpp" #include "service/start.cpp" diff --git a/lib/index.hpp b/lib/index.hpp index b0c7e2e..21a36a7 100644 --- a/lib/index.hpp +++ b/lib/index.hpp @@ -50,6 +50,7 @@ extern "C" { void autostart(); void buffer(); + void debug(); void help(); void restart(); void start(); diff --git a/lib/service/debug.cpp b/lib/service/debug.cpp new file mode 100644 index 0000000..cb95936 --- /dev/null +++ b/lib/service/debug.cpp @@ -0,0 +1,35 @@ +#ifndef __COMFORTABLE_SWIPE__service_debug__ +#define __COMFORTABLE_SWIPE__service_debug__ + +/* +Comfortable Swipe +by Rico Tiongson + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include // std::system + +namespace comfortable_swipe::service +{ + /** + * Debugs output from `libinput debug-events`. + */ + void debug() + { + (void) std::system("stdbuf -oL -e0 libinput debug-events"); + } +} + +#endif /* __COMFORTABLE_SWIPE__service_debug__ */ diff --git a/lib/service/help.cpp b/lib/service/help.cpp index c73baf7..e1355e6 100644 --- a/lib/service/help.cpp +++ b/lib/service/help.cpp @@ -30,7 +30,7 @@ namespace comfortable_swipe::service void help() { using comfortable_swipe::util::conf_filename; - std::puts("comfortable-swipe [start|stop|restart|autostart|buffer|help]"); + std::puts("comfortable-swipe [start|stop|restart|autostart|buffer|help|debug]"); std::puts(""); std::puts("start - starts 3/4-finger gesture service"); std::puts("stop - stops 3/4-finger gesture service"); @@ -38,6 +38,7 @@ namespace comfortable_swipe::service std::puts("autostart - automatically run on startup (toggleable)"); std::puts("buffer - parses output of libinput debug-events"); std::puts("help - shows the help dialog"); + std::puts("debug - logs raw output from input events taken from libinput"); std::puts(""); std::printf("Configuration file can be found in %s\n", conf_filename()); }