diff --git a/VERSION b/VERSION index 10c1a16..08c50cc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v1.2.3 +v1.2.4 diff --git a/comfortable-swipe b/comfortable-swipe index 0b6436a..6afdf0f 100755 --- a/comfortable-swipe +++ b/comfortable-swipe @@ -115,7 +115,7 @@ function start { debug | buffer $@ else # detach buffered output - nohup "$BASENAME" debug &1 | "$BASENAME" buffer $@ >/dev/null 2>&1 & + nohup "$BASENAME" debug &1 | "$BASENAME" buffer $@ >/dev/null 2>&1 & disown echo "Comfortable swipe is RUNNING in the background" fi } diff --git a/comfortable-swipe-gesture-swipe-xdokey.cpp b/comfortable-swipe-gesture-swipe-xdokey.cpp index ae48584..20a5dcd 100644 --- a/comfortable-swipe-gesture-swipe-xdokey.cpp +++ b/comfortable-swipe-gesture-swipe-xdokey.cpp @@ -134,7 +134,7 @@ void gesture_swipe_xdokey::update() { gesture_swipe::update(); // scale threshold to 1/10 when gesture is fresh // acts like our static friction coefficient - float scale = get_previous_gesture() == FRESH ? 0.01f : 1.0f; + const float scale = get_previous_gesture() == FRESH ? 0.01f : 1.0f; // we are working with floating points which are not exact // make sure we compare with a very small value (1e-6f) // if distance goes out of threshold, perform our swipe diff --git a/comfortable-swipe-main.cpp b/comfortable-swipe-main.cpp index 9c75d36..0435c8a 100644 --- a/comfortable-swipe-main.cpp +++ b/comfortable-swipe-main.cpp @@ -112,17 +112,22 @@ int main(int argc, char *argv[]) { // get input values string mouse3 = config.count("mouse3") ? config["mouse3"] : config["hold3"]; string mouse4 = config.count("mouse4") ? config["mouse4"] : config["hold4"]; + bool nomouse = mouse3.empty() || mouse4.empty(); // TODO: check if mouse invalid // create our mouse gesture holder gesture_swipe_xdomouse mousehold(mouse3.data(), mouse4.data()); // start reading lines from input one by one for (string line; getline(cin, line);) { - // optimization: if no mouse config is set, just run keyboard - if (mousehold.is_swiping() && mousehold.button == MOUSE_NONE) { + if (nomouse) { keyswipe.run(line.data()); - } else if (mousehold.run(line.data())) { - // only allow keyswipe gestures on mouse move - if (mousehold.button == MOUSE_NONE || mousehold.button == MOUSE_MOVE) { + } else { + // optimization: if no mouse config is set, just run keyboard + if (mousehold.is_swiping() && mousehold.button == MOUSE_NONE) { keyswipe.run(line.data()); + } else if (mousehold.run(line.data())) { + // only allow keyswipe gestures on mouse move + if (mousehold.button == MOUSE_NONE || mousehold.button == MOUSE_MOVE) { + keyswipe.run(line.data()); + } } } } diff --git a/install b/install index 54d4cb6..aa14c59 100755 --- a/install +++ b/install @@ -98,9 +98,15 @@ function install_configuration_file { function install_main_program { # copy source to target with executable permissions # install to target, with hardcoded version - trysudo sed -E "s/^VERSION=.*/VERSION=$VERSION/" "$SOURCE" > "$TARGET" - # allow execute permissions + if [[ -f "$TARGET" ]]; then + trysudo rm "$TARGET" + fi + trysudo cp "$SOURCE" "$TARGET" + trysudo sed -E "s/^VERSION=.*/VERSION=$VERSION/" -i "$TARGET" + # allow execute permissions with group trysudo chmod +x "$TARGET" + # make sure non-root user is owner + trysudo chown "$USER" "$TARGET" echo "Installed: $TARGET" } @@ -114,9 +120,17 @@ function install_cpp_program { # compile program to temporary file first TMP_TARGET="$(mktemp)" $COMPILE "$COMPILE_SOURCE" -o "$TMP_TARGET" -DCOMFORTABLE_SWIPE_VERSION="\"$VERSION\"" -DCOMFORTABLE_SWIPE_CONFIG="\"$CONF_TARGET\"" -DCOMFORTABLE_SWIPE_AUTOSTART="\"$AUTOSTART_TARGET\"" - # compilation ok, now try to install - # check permissions maybe if will need sudo + # compilation ok, now try to install with sudo + trysudo mkdir -p "$(dirname "$COMPILE_TARGET")" + # remove existing file for permissions to work + if [[ -f "$COMPILE_TARGET" ]]; then + sudo rm "$COMPILE_TARGET" + fi trysudo mv "$TMP_TARGET" "$COMPILE_TARGET" + # bugfix: add with group permissions + trysudo chmod go+x "$COMPILE_TARGET" + # make sure non-root user is owner + trysudo chown "$USER" "$COMPILE_TARGET" echo "Installed: $COMPILE_TARGET" } @@ -127,6 +141,7 @@ function install_cpp_program { # /home/$USER/.config/autostart/comfortable-swipe.desktop # function install_autostart { + mkdir -p "$(dirname "$AUTOSTART_TARGET")" cat "$AUTOSTART_SOURCE" > "$AUTOSTART_TARGET" echo "Installed: $AUTOSTART_TARGET" }