From 84def19dadd4632c6d6c9263d57abfe4046262b7 Mon Sep 17 00:00:00 2001 From: user3301 <26126682+user3301@users.noreply.github.com> Date: Sat, 11 Jul 2026 11:53:56 +1000 Subject: [PATCH 1/2] add herdr terminal agent multiplexer Co-Authored-By: Claude Fable 5 --- flake.lock | 43 +++++++++++++++++++++++++++++++++ flake.nix | 6 +++++ herdr/.config/herdr/config.toml | 3 +++ home/modules/terminal.nix | 16 +++++++++++- 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 herdr/.config/herdr/config.toml diff --git a/flake.lock b/flake.lock index 4166d95..ae747c9 100644 --- a/flake.lock +++ b/flake.lock @@ -55,6 +55,27 @@ "type": "github" } }, + "herdr": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1783727218, + "narHash": "sha256-cAOLXuqB5PZ4qP1piWybnPGEZ/Kld7kssVPUi87Pwbk=", + "owner": "ogulcancelik", + "repo": "herdr", + "rev": "46174563489273199a17c982356c6e4674ef00d4", + "type": "github" + }, + "original": { + "owner": "ogulcancelik", + "repo": "herdr", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -136,12 +157,34 @@ "root": { "inputs": { "claude-code-nix": "claude-code-nix", + "herdr": "herdr", "home-manager": "home-manager", "nix-darwin": "nix-darwin", "nixos-wsl": "nixos-wsl", "nixpkgs": "nixpkgs" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "herdr", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1783577481, + "narHash": "sha256-EWMxOWrJ031f8f/lrcEmhTRs4npw1/5N3Hcjin846c8=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "4cdea398dc491b082dccdce0fad1ed0b75fa3394", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, diff --git a/flake.nix b/flake.nix index 8d35720..2b861fc 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,12 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + # Herdr - terminal agent multiplexer (https://herdr.dev) + herdr = { + url = "github:ogulcancelik/herdr"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Home Manager - for user-level configuration home-manager = { url = "github:nix-community/home-manager/release-26.05"; diff --git a/herdr/.config/herdr/config.toml b/herdr/.config/herdr/config.toml new file mode 100644 index 0000000..ff4108a --- /dev/null +++ b/herdr/.config/herdr/config.toml @@ -0,0 +1,3 @@ +# Herdr configuration (https://herdr.dev/docs/configuration) +# First launch runs an onboarding flow that writes settings into this file. +# Reload without restarting: herdr server reload-config diff --git a/home/modules/terminal.nix b/home/modules/terminal.nix index d656c61..1af4923 100644 --- a/home/modules/terminal.nix +++ b/home/modules/terminal.nix @@ -1,4 +1,9 @@ -{ config, ... }: +{ + config, + pkgs, + inputs, + ... +}: { # Zellij terminal multiplexer @@ -7,6 +12,15 @@ # Settings managed via existing config file }; + # Herdr terminal agent multiplexer (https://herdr.dev) + home.packages = [ + inputs.herdr.packages.${pkgs.stdenv.hostPlatform.system}.default + ]; + + # Symlink herdr config so herdr's own writes (onboarding, settings) land in the repo + xdg.configFile."herdr".source = + config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dotfiles/herdr/.config/herdr"; + # Symlink existing zellij config xdg.configFile."zellij".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dotfiles/zellij/.config/zellij"; From db40101ce57d7545ba3e45cf962817be89f5bb01 Mon Sep 17 00:00:00 2001 From: user3301 <26126682+user3301@users.noreply.github.com> Date: Sat, 11 Jul 2026 22:16:42 +1000 Subject: [PATCH 2/2] ignore herdr runtime state, disable zellij auto-start Co-Authored-By: Claude Fable 5 --- .gitignore | 5 +++++ git/.config/git/.gitignore_global | 2 ++ herdr/.config/herdr/config.toml | 3 +++ zsh/.zshrc | 2 -- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 7d38817..68170d3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,11 @@ .zshenv.local git/.config/git/config.local +# Herdr runtime state (written into the symlinked config dir; only config.toml is tracked) +herdr/.config/herdr/*.log +herdr/.config/herdr/session.json +herdr/.config/herdr/*.sock + # Nix result result-* diff --git a/git/.config/git/.gitignore_global b/git/.config/git/.gitignore_global index c565702..d969f71 100644 --- a/git/.config/git/.gitignore_global +++ b/git/.config/git/.gitignore_global @@ -3,3 +3,5 @@ .DS_Store .tool-versions + +**/.claude/settings.local.json diff --git a/herdr/.config/herdr/config.toml b/herdr/.config/herdr/config.toml index ff4108a..ea11152 100644 --- a/herdr/.config/herdr/config.toml +++ b/herdr/.config/herdr/config.toml @@ -1,3 +1,6 @@ # Herdr configuration (https://herdr.dev/docs/configuration) # First launch runs an onboarding flow that writes settings into this file. # Reload without restarting: herdr server reload-config + +[ui] +agent_panel_sort = "spaces" diff --git a/zsh/.zshrc b/zsh/.zshrc index a60ef0c..fb2e7db 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -43,8 +43,6 @@ function y() { rm -f -- "$tmp" } -eval "$(zellij setup --generate-auto-start zsh)" - # Run fastfetch when on every interactive terminal and NOT ssh into a machine # if [[ $- == *i* ]] && [[ -z "$SSH_CONNECTION" ]]; then # fastfetch