From cc337816ee3d657859ab11bdd9118d50a9629c92 Mon Sep 17 00:00:00 2001 From: Caroline Larimore Date: Thu, 1 May 2025 01:14:35 -0700 Subject: c-pc: autoclicker script --- modules/home/suites/desktop/default.nix | 1 + modules/home/tools/default.nix | 3 +++ packages/click/default.nix | 26 ++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 packages/click/default.nix 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 +'' -- cgit v1.2.3