From 416a4e16359ca1040e01bace0882e59abf02f548 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Sun, 13 Aug 2023 13:39:44 -0400 Subject: [PATCH] feat(eww): make on-release work. proof of concept with heart widget --- config/eww/closer/closer.yuck | 12 ++++++++++++ config/eww/scripts/heart.sh | 2 ++ config/eww/scripts/on-release.sh | 19 +++++++++++++++---- config/eww/traybuttons/traybuttons.yuck | 10 ++++++++-- config/eww/variables.yuck | 1 + 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/config/eww/closer/closer.yuck b/config/eww/closer/closer.yuck index 8dc4d5a..a2b31e7 100644 --- a/config/eww/closer/closer.yuck +++ b/config/eww/closer/closer.yuck @@ -37,3 +37,15 @@ :exclusive "ignore" (closer-notif) ) + +(defwidget on-release-fix [] + (eventbox :onclick "eww close on-release-fix") +) +(defwindow on-release-fix :monitor 0 + :geometry (geometry :width "100%" + :height "100%" + ) + :stacking "overlay" + :exclusive "ignore" + (on-release-fix) +) diff --git a/config/eww/scripts/heart.sh b/config/eww/scripts/heart.sh index 491b508..3026b1b 100755 --- a/config/eww/scripts/heart.sh +++ b/config/eww/scripts/heart.sh @@ -31,6 +31,8 @@ startup() { fi "$HYPR_PATH"/osk-toggle.sh getState & + "$EWW_PATH"/on-release.sh & + input-emulator start mouse -n & if grep -q 󰣐 "$FILE"; then eww close heart diff --git a/config/eww/scripts/on-release.sh b/config/eww/scripts/on-release.sh index fa7d75f..4f22254 100755 --- a/config/eww/scripts/on-release.sh +++ b/config/eww/scripts/on-release.sh @@ -1,10 +1,21 @@ #!/usr/bin/env bash +FILE="$HOME/.config/.on-release" + function run() { - echo "touch up" - exit 0 + echo "can_run" > "$FILE" } while IFS='$\n' read -r line; do - [[ $(echo "$line" | grep TOUCH_UP) != "" ]] && run -done < <(stdbuf -oL journalctl --user -feu libinput-events) + if [[ $(echo "$line" | grep TOUCH_UP) != "" ]]; then + run + elif [[ $(echo "$line" | grep release) != "" ]]; then + run + elif [[ $(echo "$line" | grep 'TOUCH_DOWN.*1 (1)') != "" ]]; then + eww update cancel_touch=true + elif [[ $(echo "$line" | grep 'TOUCH_UP.*1 (1)') != "" ]]; then + eww update cancel_touch=false + else + echo "other" > "$FILE" + fi +done < <(stdbuf -oL libinput debug-events) diff --git a/config/eww/traybuttons/traybuttons.yuck b/config/eww/traybuttons/traybuttons.yuck index 4972c19..40362c9 100644 --- a/config/eww/traybuttons/traybuttons.yuck +++ b/config/eww/traybuttons/traybuttons.yuck @@ -90,10 +90,13 @@ ;; Heart Toggle ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar heart-ts "default") +(defvar heart-run-off "false") (defwidget heart-toggle-on [] (eventbox :class "toggle-on" - :onclick "$EWW_PATH/heart.sh toggle" + :onclick "$EWW_PATH/run.sh '$EWW_PATH/heart.sh toggle' heart-run-off &" :cursor "pointer" + :onhover "eww update heart-run-off=true" + :onhoverlost "eww update heart-run-off=false" (box :class "heart-toggle" :orientation "h" @@ -101,10 +104,13 @@ ) ) ) +(defvar heart-run-on "false") (defwidget heart-toggle-off [] (eventbox :class "toggle-off" - :onclick "$EWW_PATH/heart.sh toggle" + :onclick "$EWW_PATH/run.sh '$EWW_PATH/heart.sh toggle' heart-run-on &" :cursor "pointer" + :onhover "eww update heart-run-on=true" + :onhoverlost "eww update heart-run-on=false" (box :class "heart-toggle" :orientation "h" diff --git a/config/eww/variables.yuck b/config/eww/variables.yuck index ef21191..5e5395d 100644 --- a/config/eww/variables.yuck +++ b/config/eww/variables.yuck @@ -1,5 +1,6 @@ ; this var starts all scripts needed when eww boots (deflisten heart_icon "$EWW_PATH/heart.sh startup") +(defvar cancel_touch "false") (deflisten notif_icon "$EWW_PATH/notif.sh icon") (deflisten mic_icon "$EWW_PATH/mic.sh icon")