nix-config/home/toast/programs/mouse-actions/cycle.nix
lightly-toasted 45a49b1529 feat: add mouse actions
Refs: 302185f6a873209ea51a26b314faa24c45cd03ac
2025-08-11 11:45:21 +09:00

29 lines
659 B
Nix

{ pkgs }:
let
script = pkgs.writeShellScriptBin "cycle-mouse-action" ''
STATE_FILE="$HOME/.config/mouse-actions/state"
mkdir -p "$(dirname "$STATE_FILE")"
if [ -f "$STATE_FILE" ]; then
CURRENT_ACTION=$(cat "$STATE_FILE")
else
CURRENT_ACTION="deafen"
fi
case "$CURRENT_ACTION" in
"deafen") NEW_ACTION="sober-lag" ;;
"sober-lag") NEW_ACTION="autoclick" ;;
*) 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 ];
};
}