Compare commits

..

2 commits

8 changed files with 54 additions and 72 deletions

View file

@ -1,9 +1,9 @@
{ pkgs, ... }: { pkgs, ... }:
let {
script = pkgs.writeShellScriptBin "autoclick-action" '' package = pkgs.writeShellScriptBin "autoclick-action" ''
if ! command -v ydotool >/dev/null 2>&1; then if ! command -v ydotool >/dev/null 2>&1; then
notify-send -r 120000 "Autoclicker" "This tool requires ydotool to be installed on your system." ${pkgs.libnotify}/bin/notify-send -r 120000 "Autoclicker" "This tool requires ydotool to be installed on your system."
fi fi
AUTOCLICK_FILE="/run/user/$(id -u)/autoclick" AUTOCLICK_FILE="/run/user/$(id -u)/autoclick"
@ -15,11 +15,11 @@ let
current=$(cat "$AUTOCLICK_FILE") current=$(cat "$AUTOCLICK_FILE")
if [ "$current" = "0" ]; then if [ "$current" = "0" ]; then
echo "1" > "$AUTOCLICK_FILE" echo "1" > "$AUTOCLICK_FILE"
notify-send -r 120000 "Autoclicker" "Stopped" ${pkgs.libnotify}/bin/notify-send -r 120000 "Autoclicker" "Stopped"
exit 0 exit 0
else else
echo "0" > "$AUTOCLICK_FILE" echo "0" > "$AUTOCLICK_FILE"
notify-send -r 120000 "Autoclicker" "Started" ${pkgs.libnotify}/bin/notify-send -r 120000 "Autoclicker" "Started"
fi fi
while :; do while :; do
@ -31,10 +31,4 @@ let
fi fi
done done
''; '';
in
{
package = pkgs.symlinkJoin {
name = "autoclick-action";
paths = [ script pkgs.libnotify ];
};
} }

View file

@ -1,13 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
let
script = pkgs.writeShellScriptBin "deafen-action" ''
hyprctl dispatch sendshortcut CTRL+SHIFT, D, 'class:^(vesktop)$'
'';
in
{ {
package = pkgs.symlinkJoin { package = pkgs.writeShellScriptBin "deafen-action" ''
name = "deafen-action"; ${pkgs.hyprland}/bin/hyprctl dispatch sendshortcut CTRL+SHIFT, D, 'class:^(vesktop)$'
paths = [ script pkgs.hyprland ]; '';
};
} }

View file

@ -5,4 +5,5 @@
deafen = import ./deafen.nix { inherit pkgs; }; deafen = import ./deafen.nix { inherit pkgs; };
sober-lag = import ./sober-lag.nix { inherit pkgs; }; sober-lag = import ./sober-lag.nix { inherit pkgs; };
flick = import ./flick.nix { inherit pkgs; }; flick = import ./flick.nix { inherit pkgs; };
play-pause = import ./play-pause.nix { inherit pkgs; };
} }

View file

@ -1,18 +1,12 @@
{ pkgs, ... }: { pkgs, ... }:
let {
script = pkgs.writeShellScriptBin "flick-action" '' package = pkgs.writeShellScriptBin "flick-action" ''
if ! command -v ydotool >/dev/null 2>&1; then if ! command -v ydotool >/dev/null 2>&1; then
notify-send -r 120000 "Flick" "This tool requires ydotool to be installed on your system." ${pkgs.libnotify}/bin/notify-send -r 120000 "Flick" "This tool requires ydotool to be installed on your system."
fi fi
ydotool mousemove -- 800 0 ydotool mousemove -- 800 0
sleep 0.03 sleep 0.03
ydotool mousemove -- -800 0 ydotool mousemove -- -800 0
''; '';
in
{
package = pkgs.symlinkJoin {
name = "autoclick-action";
paths = [ script pkgs.libnotify ];
};
} }

View file

@ -0,0 +1,7 @@
{ pkgs, ... }:
{
package = pkgs.writeShellScriptBin "play-pause-action" ''
${pkgs.playerctl}/bin/playerctl play-pause
'';
}

View file

@ -1,27 +1,27 @@
{ pkgs, ... }: { pkgs, ... }:
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
notify-send "sober-lag.sh" "Sober is not running."
exit 1
fi
pgid=$(ps -o pgid= -p "$roblox_pid" | xargs)
if [ -z "$pgid" ]; then
notify-send "sober-lag.sh" "Could not find PGID for PID $roblox_pid."
exit 1
fi
kill -STOP -- "-$pgid"
sleep 0.2
kill -CONT -- "-$pgid"
'';
in
{ {
package = pkgs.symlinkJoin { package = pkgs.writeShellScriptBin "sober-lag-action" ''
name = "sober-lag-action"; roblox_pid=$(${pkgs.procps}/bin/ps aux \
paths = [ script pkgs.procps pkgs.gawk pkgs.gnugrep pkgs.gnused pkgs.coreutils pkgs.libnotify ]; | ${pkgs.gnugrep}/bin/grep "[s]ober --" \
}; | ${pkgs.coreutils}/bin/sort -k3 -nr \
| ${pkgs.coreutils}/bin/head -n 1 \
| ${pkgs.gawk}/bin/awk '{print $2}')
if [ -z "$roblox_pid" ]; then
${pkgs.libnotify}/bin/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)
if [ -z "$pgid" ]; then
${pkgs.libnotify}/bin/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"
'';
} }

View file

@ -1,7 +1,7 @@
{ pkgs }: { pkgs }:
let {
script = pkgs.writeShellScriptBin "cycle-mouse-action" '' package = pkgs.writeShellScriptBin "cycle-mouse-action" ''
STATE_FILE="$HOME/.config/mouse-actions/state" STATE_FILE="$HOME/.config/mouse-actions/state"
mkdir -p "$(dirname "$STATE_FILE")" mkdir -p "$(dirname "$STATE_FILE")"
@ -15,16 +15,11 @@ let
"deafen") NEW_ACTION="sober-lag" ;; "deafen") NEW_ACTION="sober-lag" ;;
"sober-lag") NEW_ACTION="autoclick" ;; "sober-lag") NEW_ACTION="autoclick" ;;
"autoclick") NEW_ACTION="flick" ;; "autoclick") NEW_ACTION="flick" ;;
"flick") NEW_ACTION="play-pause" ;;
*) NEW_ACTION="deafen" *) NEW_ACTION="deafen"
esac esac
echo "$NEW_ACTION" > "$STATE_FILE.tmp" echo "$NEW_ACTION" > "$STATE_FILE.tmp"
mv "$STATE_FILE.tmp" "$STATE_FILE" mv "$STATE_FILE.tmp" "$STATE_FILE"
''; '';
in
{
package = pkgs.symlinkJoin {
name = "cycle-mouse-action";
paths = [ script pkgs.libnotify ];
};
} }

View file

@ -1,7 +1,7 @@
{ pkgs, actions }: { pkgs, actions }:
let {
script = pkgs.writeShellScriptBin "run-mouse-action" '' package = pkgs.writeShellScriptBin "run-mouse-action" ''
STATE_FILE="$HOME/.config/mouse-actions/state" STATE_FILE="$HOME/.config/mouse-actions/state"
if [ ! -f "$STATE_FILE" ]; then if [ ! -f "$STATE_FILE" ]; then
@ -12,23 +12,20 @@ let
case "$ACTION_NAME" in case "$ACTION_NAME" in
"deafen") "deafen")
systemd-run --user ${actions.deafen.package}/bin/deafen-action ${pkgs.systemd}/bin/systemd-run --user ${actions.deafen.package}/bin/deafen-action
;; ;;
"sober-lag") "sober-lag")
systemd-run --user ${actions.sober-lag.package}/bin/sober-lag-action ${pkgs.systemd}/bin/systemd-run --user ${actions.sober-lag.package}/bin/sober-lag-action
;; ;;
"autoclick") "autoclick")
systemd-run --user ${actions.autoclick.package}/bin/autoclick-action ${pkgs.systemd}/bin/systemd-run --user ${actions.autoclick.package}/bin/autoclick-action
;; ;;
"flick") "flick")
systemd-run --user ${actions.flick.package}/bin/flick-action ${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
;; ;;
esac esac
''; '';
in
{
package = pkgs.symlinkJoin {
name = "run-mouse-action";
paths = [ script pkgs.systemd ];
};
} }