summary refs log tree commit diff
path: root/pkgs/tools/dotool/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/dotool/default.nix')
-rw-r--r--pkgs/tools/dotool/default.nix46
1 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/tools/dotool/default.nix b/pkgs/tools/dotool/default.nix
new file mode 100644
index 00000000000..61d0667b35a
--- /dev/null
+++ b/pkgs/tools/dotool/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildGoModule
+, fetchFromSourcehut
+, libxkbcommon
+, pkg-config
+}:
+
+buildGoModule rec {
+  pname = "dotool";
+  version = "1.3";
+
+  src = fetchFromSourcehut {
+    owner = "~geb";
+    repo = "dotool";
+    rev = version;
+    hash = "sha256-z0fQ+qenHjtoriYSD2sOjEvfLVtZcMJbvnjKZFRSsMA=";
+  };
+
+  vendorHash = "sha256-v0uoG9mNaemzhQAiG85RequGjkSllPd4UK2SrLjfm7A=";
+
+  # uses nix store path for the dotool binary
+  # also replaces /bin/echo with echo
+  patches = [ ./fix-paths.patch ];
+
+  postPatch = ''
+    substituteInPlace ./dotoold --replace "@dotool@" "$out/bin/dotool"
+  '';
+
+  buildInputs = [ libxkbcommon ];
+  nativeBuildInputs = [ pkg-config ];
+
+  ldflags = [ "-s" "-w" "-X main.Version=${version}" ];
+
+  postInstall = ''
+    mkdir -p $out/bin
+    cp ./dotoold ./dotoolc $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Command to simulate input anywhere";
+    homepage = "https://git.sr.ht/~geb/dotool";
+    changelog = "https://git.sr.ht/~geb/dotool/tree/${version}/item/CHANGELOG.md";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ dit7ya ];
+  };
+}