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/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/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 new file mode 100644 index 0000000..ea11152 --- /dev/null +++ b/herdr/.config/herdr/config.toml @@ -0,0 +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/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"; 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