From 644c7eac5d4a30d891d2ad3f982ed7936f178b23 Mon Sep 17 00:00:00 2001 From: "sascha.koenig" Date: Tue, 10 Feb 2026 08:33:38 +0100 Subject: [PATCH] feat: add sidecar and td packages, fix neovim extraLuaConfig --- modules/home-manager/coding/editors.nix | 4 +- pkgs/default.nix | 2 + pkgs/sidecar/default.nix | 66 +++++++++++++++++++++++++ pkgs/td/default.nix | 47 ++++++++++++++++++ 4 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 pkgs/sidecar/default.nix create mode 100644 pkgs/td/default.nix diff --git a/modules/home-manager/coding/editors.nix b/modules/home-manager/coding/editors.nix index 2cb7fae..ba78d5a 100644 --- a/modules/home-manager/coding/editors.nix +++ b/modules/home-manager/coding/editors.nix @@ -29,8 +29,8 @@ in { withNodeJs = true; withPython3 = true; - # This is your init.lua content - initLua = '' + # This is your init.lua content (extraLuaConfig for compatibility with older home-manager) + extraLuaConfig = '' -- Bootstrap lazy.nvim local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then diff --git a/pkgs/default.nix b/pkgs/default.nix index 178932f..5d108c9 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -6,6 +6,8 @@ # Custom packages registry # Each package is defined in its own directory under pkgs/ beads = pkgs.callPackage ./beads {}; + sidecar = pkgs.callPackage ./sidecar {}; + td = pkgs.callPackage ./td {}; code2prompt = pkgs.callPackage ./code2prompt {}; hyprpaper-random = pkgs.callPackage ./hyprpaper-random {}; launch-webapp = pkgs.callPackage ./launch-webapp {}; diff --git a/pkgs/sidecar/default.nix b/pkgs/sidecar/default.nix new file mode 100644 index 0000000..a01b367 --- /dev/null +++ b/pkgs/sidecar/default.nix @@ -0,0 +1,66 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + gitMinimal, + makeWrapper, # Add this + nix-update-script, + td, # Add this - the td package + versionCheckHook, + writableTmpDirAsHomeHook, +}: +buildGoModule (finalAttrs: { + pname = "sidecar"; + version = "0.71.0"; + + src = fetchFromGitHub { + owner = "marcus"; + repo = "sidecar"; + tag = "v${finalAttrs.version}"; + hash = "sha256-/tCdhU5Q6ejSSFZCeep6BFWpvAgjyC2KPcDaX0ls8eI="; + }; + + vendorHash = "sha256-R/AjNJ4x4t1zXXzT+21cjY+9pxs4DVXU4xs88BQvHx4="; + + subPackages = ["cmd/sidecar"]; + + ldflags = [ + "-s" + "-w" + "-X main.Version=v${finalAttrs.version}" # Can combine these + ]; + + nativeBuildInputs = [makeWrapper]; # Add this + + nativeCheckInputs = [ + gitMinimal + writableTmpDirAsHomeHook + ]; + + nativeInstallCheckInputs = [ + versionCheckHook + writableTmpDirAsHomeHook + ]; + + versionCheckProgramArg = "--version"; + doInstallCheck = true; + doCheck = false; + + postInstall = '' + wrapProgram $out/bin/sidecar \ + --prefix PATH : ${lib.makeBinPath [td]} + ''; + + passthru = { + updateScript = nix-update-script {}; + }; + + meta = { + description = "Use sidecar next to CLI agents for diffs, file trees, conversation history, and task management with td"; + homepage = "https://github.com/marcus/sidecar"; + changelog = "https://github.com/marcus/sidecar/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + mainProgram = "sidecar"; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/td/default.nix b/pkgs/td/default.nix new file mode 100644 index 0000000..d973e51 --- /dev/null +++ b/pkgs/td/default.nix @@ -0,0 +1,47 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + gitMinimal, + nix-update-script, + versionCheckHook, + writableTmpDirAsHomeHook, +}: +buildGoModule (finalAttrs: { + pname = "td"; + version = "0.33.0"; + + src = fetchFromGitHub { + owner = "marcus"; + repo = "td"; + tag = "v${finalAttrs.version}"; + hash = "sha256-gci4B83x/0UMawy+fncArF9zO1aHRE/zXj91e5h6yi8="; + }; + + vendorHash = "sha256-Rp0lhnBLJx+exX7VLql3RfthTVk3LLftD6n6SsSWzVY="; + + ldflags = [ + "-s" + "-w" + "-X" + "main.Version=v${finalAttrs.version}" + ]; + + nativeCheckInputs = [gitMinimal writableTmpDirAsHomeHook]; + + nativeInstallCheckInputs = [versionCheckHook writableTmpDirAsHomeHook]; + versionCheckProgramArg = "version"; + doInstallCheck = true; + + doCheck = false; + + passthru.updateScript = nix-update-script {}; + + meta = with lib; { + description = "Minimalist CLI for tracking tasks across AI coding sessions"; + homepage = "https://github.com/marcus/td"; + license = licenses.mit; + mainProgram = "td"; + platforms = platforms.unix; + }; +})