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 f838bcb..10caf51 100755 --- a/install +++ b/install @@ -98,9 +98,14 @@ function install_configuration_file { function install_main_program { # copy source to target with executable permissions # install to target, with hardcoded version + if [[ -f "$TARGET" ]]; then + trysudo rm "$TARGET" + fi trysudo sed -E "s/^VERSION=.*/VERSION=$VERSION/" "$SOURCE" > "$TARGET" - # allow execute permissions + # allow execute permissions with group trysudo chmod +x "$TARGET" + # make sure non-root user is owner + trysudo chown "$USER" "$TARGET" echo "Installed: $TARGET" } @@ -114,10 +119,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" }