diff options
| author | Caroline Larimore <caroline@larimo.re> | 2025-05-01 01:14:35 -0700 |
|---|---|---|
| committer | Caroline Larimore <caroline@larimo.re> | 2025-05-01 01:14:35 -0700 |
| commit | cc337816ee3d657859ab11bdd9118d50a9629c92 (patch) | |
| tree | 22416006b9fa58c3eb5ae777b49a0e9a2d488bcf | |
| parent | 5a59cea92e1d75fc673923b4ab4614a8281f2f64 (diff) | |
c-pc: autoclicker script
| -rw-r--r-- | modules/home/suites/desktop/default.nix | 1 | ||||
| -rw-r--r-- | modules/home/tools/default.nix | 3 | ||||
| -rw-r--r-- | packages/click/default.nix | 26 |
3 files changed, 30 insertions, 0 deletions
diff --git a/modules/home/suites/desktop/default.nix b/modules/home/suites/desktop/default.nix index ca2855d..7a07d79 100644 --- a/modules/home/suites/desktop/default.nix +++ b/modules/home/suites/desktop/default.nix @@ -18,6 +18,7 @@ in { tools = { mute.enable = true; + click.enable = true; }; desktop.components = { diff --git a/modules/home/tools/default.nix b/modules/home/tools/default.nix index 98b37c7..132194d 100644 --- a/modules/home/tools/default.nix +++ b/modules/home/tools/default.nix @@ -14,5 +14,8 @@ with lib; with lib.${namespace}; { (mkSimpleTool "mute" { packages = [ cxl.mute ]; }) + (mkSimpleTool "click" { + packages = [ cxl.click ]; + }) ]; } diff --git a/packages/click/default.nix b/packages/click/default.nix new file mode 100644 index 0000000..9f3ff70 --- /dev/null +++ b/packages/click/default.nix @@ -0,0 +1,26 @@ +{ pkgs, ... }: + +let + xdotool = "${pkgs.xdotool}/bin/xdotool"; + xwininfo = "${pkgs.xorg.xwininfo}/bin/xwininfo"; + awk = "${pkgs.gawk}/bin/awk"; +in pkgs.writeShellScriptBin "click" '' + set -euo pipefail + IFS=$'\n\t' + + delay="''${1:-1}" + button="''${2:-1}" + + printf 'click target window: ' + id="$(${xwininfo} | ${awk} '/Window id:/{print $4}')" + printf '%s\n' "$id" + + declare -i count=0 + while true; do + ${xdotool} click --window "$id" "$button" + + printf '\rclick count: %d' "$((count += 1))" + + sleep "$delay" + done +'' |