diff --git a/home/modules/graphical/mouse-actions/actions/autoclick.nix b/home/modules/graphical/mouse-actions/actions/autoclick.nix index 0f8eee8..7d625df 100644 --- a/home/modules/graphical/mouse-actions/actions/autoclick.nix +++ b/home/modules/graphical/mouse-actions/actions/autoclick.nix @@ -1,9 +1,9 @@ { pkgs, ... }: -{ - package = pkgs.writeShellScriptBin "autoclick-action" '' +let + script = pkgs.writeShellScriptBin "autoclick-action" '' if ! command -v ydotool >/dev/null 2>&1; then - ${pkgs.libnotify}/bin/notify-send -r 120000 "Autoclicker" "This tool requires ydotool to be installed on your system." + notify-send -r 120000 "Autoclicker" "This tool requires ydotool to be installed on your system." fi AUTOCLICK_FILE="/run/user/$(id -u)/autoclick" @@ -15,11 +15,11 @@ current=$(cat "$AUTOCLICK_FILE") if [ "$current" = "0" ]; then echo "1" > "$AUTOCLICK_FILE" - ${pkgs.libnotify}/bin/notify-send -r 120000 "Autoclicker" "Stopped" + notify-send -r 120000 "Autoclicker" "Stopped" exit 0 else echo "0" > "$AUTOCLICK_FILE" - ${pkgs.libnotify}/bin/notify-send -r 120000 "Autoclicker" "Started" + notify-send -r 120000 "Autoclicker" "Started" fi while :; do @@ -31,4 +31,10 @@ fi done ''; +in +{ + package = pkgs.symlinkJoin { + name = "autoclick-action"; + paths = [ script pkgs.libnotify ]; + }; } diff --git a/home/modules/graphical/mouse-actions/actions/deafen.nix b/home/modules/graphical/mouse-actions/actions/deafen.nix index 8a32f3a..ba9d867 100644 --- a/home/modules/graphical/mouse-actions/actions/deafen.nix +++ b/home/modules/graphical/mouse-actions/actions/deafen.nix @@ -1,7 +1,13 @@ { pkgs, ... }: -{ - package = pkgs.writeShellScriptBin "deafen-action" '' - ${pkgs.hyprland}/bin/hyprctl dispatch sendshortcut CTRL+SHIFT, D, 'class:^(vesktop)$' +let + script = pkgs.writeShellScriptBin "deafen-action" '' + hyprctl dispatch sendshortcut CTRL+SHIFT, D, 'class:^(vesktop)$' ''; +in +{ + package = pkgs.symlinkJoin { + name = "deafen-action"; + paths = [ script pkgs.hyprland ]; + }; } diff --git a/home/modules/graphical/mouse-actions/actions/default.nix b/home/modules/graphical/mouse-actions/actions/default.nix index 65cd6a6..51cad7b 100644 --- a/home/modules/graphical/mouse-actions/actions/default.nix +++ b/home/modules/graphical/mouse-actions/actions/default.nix @@ -5,5 +5,4 @@ deafen = import ./deafen.nix { inherit pkgs; }; sober-lag = import ./sober-lag.nix { inherit pkgs; }; flick = import ./flick.nix { inherit pkgs; }; - play-pause = import ./play-pause.nix { inherit pkgs; }; } diff --git a/home/modules/graphical/mouse-actions/actions/flick.nix b/home/modules/graphical/mouse-actions/actions/flick.nix index 3b4b8b2..daa23f6 100644 --- a/home/modules/graphical/mouse-actions/actions/flick.nix +++ b/home/modules/graphical/mouse-actions/actions/flick.nix @@ -1,12 +1,18 @@ { pkgs, ... }: -{ - package = pkgs.writeShellScriptBin "flick-action" '' +let + script = pkgs.writeShellScriptBin "flick-action" '' if ! command -v ydotool >/dev/null 2>&1; then - ${pkgs.libnotify}/bin/notify-send -r 120000 "Flick" "This tool requires ydotool to be installed on your system." + notify-send -r 120000 "Flick" "This tool requires ydotool to be installed on your system." fi ydotool mousemove -- 800 0 sleep 0.03 ydotool mousemove -- -800 0 ''; +in +{ + package = pkgs.symlinkJoin { + name = "autoclick-action"; + paths = [ script pkgs.libnotify ]; + }; } diff --git a/home/modules/graphical/mouse-actions/actions/play-pause.nix b/home/modules/graphical/mouse-actions/actions/play-pause.nix deleted file mode 100644 index fefeb2d..0000000 --- a/home/modules/graphical/mouse-actions/actions/play-pause.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: - -{ - package = pkgs.writeShellScriptBin "play-pause-action" '' - ${pkgs.playerctl}/bin/playerctl play-pause - ''; -} diff --git a/home/modules/graphical/mouse-actions/actions/sober-lag.nix b/home/modules/graphical/mouse-actions/actions/sober-lag.nix index 21bf18c..c13b77a 100644 --- a/home/modules/graphical/mouse-actions/actions/sober-lag.nix +++ b/home/modules/graphical/mouse-actions/actions/sober-lag.nix @@ -1,27 +1,27 @@ { pkgs, ... }: -{ - package = pkgs.writeShellScriptBin "sober-lag-action" '' - roblox_pid=$(${pkgs.procps}/bin/ps aux \ - | ${pkgs.gnugrep}/bin/grep "[s]ober --" \ - | ${pkgs.coreutils}/bin/sort -k3 -nr \ - | ${pkgs.coreutils}/bin/head -n 1 \ - | ${pkgs.gawk}/bin/awk '{print $2}') - +let + script = pkgs.writeShellScriptBin "sober-lag-action" '' + roblox_pid=$(ps aux | grep "[s]ober --" | sort -k3 -nr | head -n 1 | awk '{print $2}') if [ -z "$roblox_pid" ]; then - ${pkgs.libnotify}/bin/notify-send "sober-lag.sh" "Sober is not running." + notify-send "sober-lag.sh" "Sober is not running." exit 1 fi - pgid=$(${pkgs.procps}/bin/ps -o pgid= -p "$roblox_pid" | ${pkgs.coreutils}/bin/xargs) - + pgid=$(ps -o pgid= -p "$roblox_pid" | xargs) if [ -z "$pgid" ]; then - ${pkgs.libnotify}/bin/notify-send "sober-lag.sh" "Could not find PGID for PID $roblox_pid." + notify-send "sober-lag.sh" "Could not find PGID for PID $roblox_pid." exit 1 fi - ${pkgs.coreutils}/bin/kill -STOP -- "-$pgid" - ${pkgs.coreutils}/bin/sleep 0.2 - ${pkgs.coreutils}/bin/kill -CONT -- "-$pgid" + kill -STOP -- "-$pgid" + sleep 0.2 + kill -CONT -- "-$pgid" ''; +in +{ + package = pkgs.symlinkJoin { + name = "sober-lag-action"; + paths = [ script pkgs.procps pkgs.gawk pkgs.gnugrep pkgs.gnused pkgs.coreutils pkgs.libnotify ]; + }; } diff --git a/home/modules/graphical/mouse-actions/cycle.nix b/home/modules/graphical/mouse-actions/cycle.nix index 83426d0..1acd5d2 100644 --- a/home/modules/graphical/mouse-actions/cycle.nix +++ b/home/modules/graphical/mouse-actions/cycle.nix @@ -1,7 +1,7 @@ { pkgs }: -{ - package = pkgs.writeShellScriptBin "cycle-mouse-action" '' +let + script = pkgs.writeShellScriptBin "cycle-mouse-action" '' STATE_FILE="$HOME/.config/mouse-actions/state" mkdir -p "$(dirname "$STATE_FILE")" @@ -15,11 +15,16 @@ "deafen") NEW_ACTION="sober-lag" ;; "sober-lag") NEW_ACTION="autoclick" ;; "autoclick") NEW_ACTION="flick" ;; - "flick") NEW_ACTION="play-pause" ;; *) NEW_ACTION="deafen" esac echo "$NEW_ACTION" > "$STATE_FILE.tmp" mv "$STATE_FILE.tmp" "$STATE_FILE" ''; +in +{ + package = pkgs.symlinkJoin { + name = "cycle-mouse-action"; + paths = [ script pkgs.libnotify ]; + }; } diff --git a/home/modules/graphical/mouse-actions/run.nix b/home/modules/graphical/mouse-actions/run.nix index 83f8f78..d7ce8ad 100644 --- a/home/modules/graphical/mouse-actions/run.nix +++ b/home/modules/graphical/mouse-actions/run.nix @@ -1,7 +1,7 @@ { pkgs, actions }: -{ - package = pkgs.writeShellScriptBin "run-mouse-action" '' +let + script = pkgs.writeShellScriptBin "run-mouse-action" '' STATE_FILE="$HOME/.config/mouse-actions/state" if [ ! -f "$STATE_FILE" ]; then @@ -12,20 +12,23 @@ case "$ACTION_NAME" in "deafen") - ${pkgs.systemd}/bin/systemd-run --user ${actions.deafen.package}/bin/deafen-action + systemd-run --user ${actions.deafen.package}/bin/deafen-action ;; "sober-lag") - ${pkgs.systemd}/bin/systemd-run --user ${actions.sober-lag.package}/bin/sober-lag-action + systemd-run --user ${actions.sober-lag.package}/bin/sober-lag-action ;; "autoclick") - ${pkgs.systemd}/bin/systemd-run --user ${actions.autoclick.package}/bin/autoclick-action + systemd-run --user ${actions.autoclick.package}/bin/autoclick-action ;; "flick") - ${pkgs.systemd}/bin/systemd-run --user ${actions.flick.package}/bin/flick-action - ;; - "play-pause") - ${pkgs.systemd}/bin/systemd-run --user ${actions.play-pause.package}/bin/play-pause-action + systemd-run --user ${actions.flick.package}/bin/flick-action ;; esac ''; +in +{ + package = pkgs.symlinkJoin { + name = "run-mouse-action"; + paths = [ script pkgs.systemd ]; + }; }