diff --git a/README.md b/README.md index 6c20b6a..c18b662 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Comfortable, seamless, and fast 3-finger (and 4-finger) touchpad swipe gestures ## Configurations Comfortable swipe makes use of keyboard shortcuts for configurations. Edit by running ``` -nano $(comfortable-swipe config) +gedit $(comfortable-swipe config) ``` Make sure to run after making changes: @@ -130,12 +130,13 @@ Download the `uninstall` script then run `bash uninstall` Create an issue [here](https://github.com/Hikari9/comfortable-swipe/issues/new) to report a bug. Please include the output of the following: -``` -lsb_release -a -g++ --version -xinput list | grep touchpad -i -lsmod | grep hid -comfortable-swipe start # if you can run it -comfortable-swipe debug # screenshot / first few lines -cat $(comfortable-swipe config) -``` + +1. `lsb_release -a` +2. `g++ --version` +3. `ls -l /dev/input/event*` +3. `xinput list | grep touchpad -i` +4. `lsmod | grep hid` +5. `comfortable-swipe status` +6. `comfortable-swipe start` (if you can run it) +7. `comfortable-swipe debug` (try swiping if you can see `GESTURE_SWIPE_XXX`) +8. `cat $(comfortable-swipe config)` diff --git a/comfortable-swipe.compile.sh b/comfortable-swipe.compile.sh index 4f5c80c..2425f6d 100755 --- a/comfortable-swipe.compile.sh +++ b/comfortable-swipe.compile.sh @@ -1,3 +1,7 @@ #!/bin/sh dir="$(dirname $0)" -g++ "$dir/comfortable-swipe.cpp" -std=c++11 -O2 -lxdo -Wno-unused-result -o -DCOMFORTABLE_SWIPE_VERSION="$(cat $dir/VERSION)" "$1" +g++ "$dir/comfortable-swipe.cpp" \ + -o "$1" \ + -std=c++11 \ + -O2 -lxdo -Wno-unused-result \ + -DCOMFORTABLE_SWIPE_VERSION="\"$(cat $dir/VERSION | tr -d '[:space:]')\"" diff --git a/install b/install index 9de80c6..1bbc844 100755 --- a/install +++ b/install @@ -1,82 +1,93 @@ #!/bin/bash -# prefer running as root -DIR=$(dirname $0) -PROGRAM=/usr/local/bin/comfortable-swipe -COMPILE=$DIR/comfortable-swipe.compile.sh -CONF_PATH=/usr/local/share/comfortable-swipe/comfortable-swipe.conf -DCONF_PATH=$DIR/defaults.conf -OLD_CONF_PATH=${XDG_CONFIG_HOME:-$HOME/.config}/comfortable-swipe.conf -if [ -x "$(command -v $PROGRAM)" ]; then - # stop any running comfortable-swipe if it exists - $PROGRAM stop -fi +function install { + # prefer running as root + local dir="$(dirname $0)" + local program=comfortable-swipe + local program_exe=/usr/local/bin/$program + local compile_command="$dir/$program.compile.sh" + local conf_path=/usr/local/share/$program/$program.conf + local dconf_path="$dir/defaults.conf" + local old_conf_path="${XDG_CONFIG_HOME:-$HOME/.config}/$program.conf" -#copy config file -abort () { - exec echo "Installation aborted" -} -sudo mkdir -p $(dirname $CONF_PATH) || abort - -# check if "-y" or "--yes" is passed as an argument -YES=false -while test $# -gt 0 -do - case "$1" in - -y) YES=true - ;; - --yes) YES=true - ;; - esac - shift -done - -sudo chown $USER $(dirname $CONF_PATH) -if [ ! -f $CONF_PATH ]; then - if [ ! -f $OLD_CONF_PATH ]; then - # old config file not found, create from scratch - cat $DCONF_PATH > $CONF_PATH || abort - else - # old config file found, move to the new path - cat $OLD_CONF_PATH > $CONF_PATH || abort - echo "Configuration copied from $OLD_CONF_PATH to $CONF_PATH" + if [ -x "$(command -v $program_exe)" ]; then + # stop any running $program if it exists + $program_exe stop fi -else - # config file found, ask user if overwrite - echo "Old conf file found in $CONF_PATH" - if [ $YES == false ]; then - read -r -p "Keep the old conf file? (default: yes) [Y/n] " response - response=${response,,} # tolower - if [[ "$response" =~ ^(no|n)$ ]]; then - read -r -p "Conf file will be overwritten. Are you sure? [Y/n] " response - response=${response,,} - if [[ "$response" =~ ^(yes|y)$ ]]; then - cat $DCONF_PATH > $CONF_PATH || abort - else - abort + + #copy config file + abort () { + exec echo "Installation aborted" + } + sudo mkdir -p "$(dirname $conf_path)" || abort + + # check if "-y" or "--yes" is passed as an argument + YES=false + while test $# -gt 0 + do + case "$1" in + -y) YES=true + ;; + --yes) YES=true + ;; + esac + shift + done + + sudo chown $USER "$(dirname $conf_path)" + if [ ! -f "$conf_path" ]; then + if [ ! -f "$old_conf_path" ]; then + # old config file not found, create from scratch + cat "$dconf_path" > "$conf_path" || abort + else + # old config file found, move to the new path + cat "$old_conf_path" > "$conf_path" || abort + echo "Configuration copied from $old_conf_path to $conf_path" + fi + else + # config file found, ask user if overwrite + echo "Old conf file found in $conf_path" + if [ "$YES" == false ]; then + read -r -p "Keep the old conf file? (default: yes) [Y/n] " response + response="${response,,}" # tolower + if [[ "$response" =~ ^(no|n)$ ]]; then + read -r -p "Conf file will be overwritten. Are you sure? [Y/n] " response + response="${response,,}" + if [[ "$response" =~ ^(yes|y)$ ]]; then + cat "$dconf_path" > "$conf_path" || abort + else + abort + fi fi fi fi -fi -echo "Installing..." + echo "Installing to $program_exe ..." -# remove existing comfortable-swipe -if [ -x "$(command -v $PROGRAM)" ]; then - sudo rm -f $(which comfortable-swipe) -fi + # remove existing $program + if [ -x "$(command -v $program_exe)" ]; then + sudo rm -f "$(which $program)" + fi -# compile library -sudo $COMPILE $PROGRAM || abort + # compile library + sudo "$compile_command" "$program_exe" || abort -# add permissions to input group (defer) -# GROUP=$(ls -l /dev/input/event* | awk '{print $4}' | head --line=1) || abort + # add permissions to input group (defer) + # GROUP=$(ls -l /dev/input/event* | awk '{print $4}' | head --line=1) || abort -# toggle autostart twice to refresh any changes -$PROGRAM autostart > /dev/null || abort -$PROGRAM autostart > /dev/null || abort + # turn on autostart by default + local autostart_status="$($program_exe autostart)" + if [[ "$autostart_status" == *off* ]]; then + autostart_status="$($program_exe autostart)" + fi -echo "Successfully installed comfortable-swipe." -echo "Configuration file is located at $CONF_PATH" -echo "" -echo "Try running 'comfortable-swipe start' to test." + echo "Successfully installed $program $(cat $dir/VERSION | tr -d '[:space:]')" + echo "" + echo "$autostart_status" + echo "Edit configuration file: gedit \$($program config)" + echo "" + echo "Try running: $program start" +} + +install +unset -f install diff --git a/lib/service/status.cpp b/lib/service/status.cpp index a084de4..b20cfd3 100644 --- a/lib/service/status.cpp +++ b/lib/service/status.cpp @@ -50,19 +50,13 @@ namespace comfortable_swipe::service auto autostart_f = comfortable_swipe::util::autostart_filename(); bool autostart_on = access(autostart_f, F_OK) != -1; - // print status - std::printf("program is %s\n", running ? "ON" : "OFF"); - std::printf("autostart is %s\n", autostart_on ? "ON" : "OFF"); - std::printf("config file at %s\n", comfortable_swipe::util::conf_filename()); + std::puts(comfortable_swipe::util::conf_filename()); // check status of configuration file try { auto config = comfortable_swipe::util::read_config_file(comfortable_swipe::util::conf_filename()); - // print keys and values of config file - std::printf("\nConfigurations:\n"); - // print threshold if (config.count("threshold") > 0) { @@ -91,6 +85,10 @@ namespace comfortable_swipe::service { std::printf("config error: %s\n", e.what()); } + + // print status + std::printf("autostart is %s\n", autostart_on ? "ON" : "OFF"); + std::printf("comfortable-swipe program is %s\n", running ? "RUNNING" : "STOPPED"); } }