mirror of
https://github.com/lightly-toasted/nix-config.git
synced 2025-12-10 07:59:43 +00:00
25 lines
632 B
Nix
25 lines
632 B
Nix
{ pkgs }:
|
|
|
|
{
|
|
package = 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" ;;
|
|
"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"
|
|
'';
|
|
}
|