From 3f9b790278f13251c9f06856af7707fd758a0251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9C=BF=20corey?= Date: Sun, 19 Apr 2026 23:21:12 -0700 Subject: [PATCH] feat(Rhizome): add things3-cli package and darwin module Package things3-cli v0.2.0 (Go CLI for Things 3) from source, expose it via the custom-packages overlay, add a programs.things3-cli darwin module, and enable it for the Rhizome host. Co-Authored-By: Claude Sonnet 4.6 --- hosts/Rhizome/programs.nix | 4 ++++ modules/darwin/programs/default.nix | 1 + modules/darwin/programs/things3-cli.nix | 17 +++++++++++++ overlays/custom-packages.nix | 3 +++ packages/things3-cli/package.nix | 32 +++++++++++++++++++++++++ 5 files changed, 57 insertions(+) create mode 100644 modules/darwin/programs/things3-cli.nix create mode 100644 packages/things3-cli/package.nix diff --git a/hosts/Rhizome/programs.nix b/hosts/Rhizome/programs.nix index a0925976..eb8438ef 100644 --- a/hosts/Rhizome/programs.nix +++ b/hosts/Rhizome/programs.nix @@ -96,4 +96,8 @@ enable = true; startOnActivation = true; }; + + programs.things3-cli = { + enable = true; + }; } diff --git a/modules/darwin/programs/default.nix b/modules/darwin/programs/default.nix index 2702813c..de6e10eb 100644 --- a/modules/darwin/programs/default.nix +++ b/modules/darwin/programs/default.nix @@ -11,5 +11,6 @@ ./roon.nix ./scroll-reverser.nix ./soundsource.nix + ./things3-cli.nix ]; } diff --git a/modules/darwin/programs/things3-cli.nix b/modules/darwin/programs/things3-cli.nix new file mode 100644 index 00000000..b29bd023 --- /dev/null +++ b/modules/darwin/programs/things3-cli.nix @@ -0,0 +1,17 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.programs.things3-cli; +in { + options.programs.things3-cli = { + enable = mkEnableOption "things3-cli, a CLI for Things 3"; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [pkgs.things3-cli]; + }; +} diff --git a/overlays/custom-packages.nix b/overlays/custom-packages.nix index 94ce6878..15722e17 100644 --- a/overlays/custom-packages.nix +++ b/overlays/custom-packages.nix @@ -27,4 +27,7 @@ self: super: { # Ungoogled Chromium with privacy enhancements ungoogled-chromium = super.callPackage ./../packages/ungoogled-chromium/package.nix {}; + + # CLI for Things 3 + things3-cli = super.callPackage ./../packages/things3-cli/package.nix {}; } diff --git a/packages/things3-cli/package.nix b/packages/things3-cli/package.nix new file mode 100644 index 00000000..c05cc5fb --- /dev/null +++ b/packages/things3-cli/package.nix @@ -0,0 +1,32 @@ +{ + lib, + fetchFromGitHub, + buildGoModule, + nix-update-script, +}: +buildGoModule { + pname = "things3-cli"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "ossianhempel"; + repo = "things3-cli"; + rev = "v0.2.0"; + hash = "sha256-1YBBOYaCrP7/K1ADJter+iEETNk57Z6UMZY4/+F5iKw="; + }; + + vendorHash = "sha256-tN903swhctln5f23UQvjdHfLnunzah4Jr+NdsEHG3nI="; + + # Tests require Things 3 database and app running on macOS + doCheck = false; + + passthru.updateScript = nix-update-script {}; + + meta = with lib; { + description = "CLI for Things 3 by Cultured Code, implemented in Go"; + homepage = "https://github.com/ossianhempel/things3-cli"; + license = licenses.mit; + mainProgram = "things"; + platforms = platforms.darwin; + }; +}