Commit 7ad392116717

Vincent Demeester <vincent@sbr.pm>
2026-02-17 16:04:25
feat(lazyworktree): add AI session commands, move config to dots
Added pir/cr custom commands (e/E/o/O keys) for launching AI coding sessions from worktrees. Moved lazyworktree settings to dots/ for direct YAML management, bypassing broken pkgs.formats.yaml pipeline. Fixed missing nixpkgs.follows on nixos-raspberrypi input which caused duplicate nixpkgs_2 node in flake.lock.
1 parent 2cfdee4
Changed files (5)
dots/config/lazyworktree/config.yaml
@@ -0,0 +1,66 @@
+auto_fetch_prs: false
+auto_refresh: true
+custom_commands:
+  E:
+    description: Tmux + Pi (Vertex)
+    show_help: true
+    tmux:
+      attach: true
+      on_exists: switch
+      session_name: wt:$WORKTREE_NAME
+      windows:
+        - command: pir
+          name: pir
+        - command: zsh
+          name: shell
+        - command: lazygit
+          name: lazygit
+  O:
+    description: Tmux + Claude (Vertex)
+    show_help: true
+    tmux:
+      attach: true
+      on_exists: switch
+      session_name: wt:$WORKTREE_NAME
+      windows:
+        - command: cr
+          name: claude
+        - command: zsh
+          name: shell
+        - command: lazygit
+          name: lazygit
+  e:
+    command: pir
+    description: Pi (Vertex)
+    show_help: true
+  o:
+    command: cr
+    description: Claude (Vertex)
+    show_help: true
+  t:
+    description: Tmux session
+    show_help: true
+    tmux:
+      attach: true
+      on_exists: switch
+      session_name: wt:$WORKTREE_NAME
+      windows:
+        - command: emacs
+          name: emacs
+        - command: zsh
+          name: shell
+        - command: lazygit
+          name: lazygit
+        - command: pir
+          name: pir
+editor: emacsclient -t
+git_pager: delta
+git_pager_args: --paging=never --dark --line-numbers
+icon_set: nerd-font-v3
+issue_branch_name_template: "{{.IssueNumber}}-{{.Slug}}"
+max_name_length: 95
+merge_method: rebase
+pr_branch_name_template: "pr-{{.PRNumber}}-{{.Slug}}"
+refresh_interval: 10
+session_prefix: wt-
+sort_mode: path
dots/Makefile
@@ -37,6 +37,9 @@ claude-plugins : ~/.config/claude/plugins/session-manager
 claude-statusline : ~/.config/claude/statusline.sh
 claude-compat : ~/.claude
 
+all += lazyworktree
+lazyworktree : ~/.config/lazyworktree/config.yaml
+
 all += ntfy-config ntfy-scripts
 ntfy-config : ~/.config/ntfy/client.yml
 ntfy-scripts : ~/.config/ntfy/handle-notification.sh ~/.config/ntfy/acknowledge-notification.sh ~/.config/ntfy/ntfy-update-config
home/common/dev/lazyworktree.nix
@@ -2,71 +2,12 @@
 {
   imports = [ ../../modules/lazyworktree.nix ];
 
+  # Config is managed via dots/.config/lazyworktree/config.yaml
   programs.lazyworktree = {
     enable = true;
     enableZshIntegration = true;
     package = pkgs.master.lazyworktree;
 
-    settings = {
-      # UI settings
-      icon_set = "nerd-font-v3";
-      max_name_length = 95;
-      sort_mode = "path";
-
-      # Use delta for diffs (matches git.nix configuration)
-      git_pager = "delta";
-      git_pager_args = "--paging=never --dark --line-numbers";
-
-      # Editor (matches your typical setup)
-      editor = "emacsclient -t";
-
-      # Workflow settings
-      auto_fetch_prs = false; # Enable manually when needed
-      auto_refresh = true;
-      refresh_interval = 10;
-
-      # Git settings (matches git.nix)
-      merge_method = "rebase";
-
-      # Session management
-      session_prefix = "wt-";
-
-      # Branch naming
-      issue_branch_name_template = "{{.IssueNumber}}-{{.Slug}}";
-      pr_branch_name_template = "pr-{{.PRNumber}}-{{.Slug}}";
-
-      # Custom commands
-      custom_commands = {
-        t = {
-          description = "Tmux session";
-          show_help = true;
-          tmux = {
-            session_name = "wt:$WORKTREE_NAME";
-            attach = true;
-            on_exists = "switch";
-            windows = [
-              {
-                name = "emacs";
-                command = "emacs";
-              }
-              {
-                name = "shell";
-                command = "zsh";
-              }
-              {
-                name = "lazygit";
-                command = "lazygit";
-              }
-              {
-                name = "claude";
-                command = "cr";
-              }
-            ];
-          };
-        };
-      };
-    };
-
     # Explicit aliases for commonly used repositories
     aliases = {
       wh = "${config.home.homeDirectory}/src/home";
flake.lock
@@ -787,7 +787,9 @@
           "flake-compat"
         ],
         "nixos-images": "nixos-images",
-        "nixpkgs": "nixpkgs"
+        "nixpkgs": [
+          "nixpkgs"
+        ]
       },
       "locked": {
         "lastModified": 1770234563,
@@ -806,16 +808,16 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1770234462,
-        "narHash": "sha256-Ab6VqbckLApCrZlj8+HXJkPhMiquUP84osaSOZzA3HI=",
-        "owner": "nvmd",
+        "lastModified": 1771008912,
+        "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
+        "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "071e76e7df3520f30f8a213b37f2f3f4cd96e937",
+        "rev": "a82ccc39b39b621151d6732718e3e250109076fa",
         "type": "github"
       },
       "original": {
-        "owner": "nvmd",
-        "ref": "modules-with-keys-25.11",
+        "owner": "NixOS",
+        "ref": "nixos-unstable",
         "repo": "nixpkgs",
         "type": "github"
       }
@@ -883,22 +885,6 @@
         "type": "github"
       }
     },
-    "nixpkgs_2": {
-      "locked": {
-        "lastModified": 1771008912,
-        "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "a82ccc39b39b621151d6732718e3e250109076fa",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
     "pre-commit": {
       "inputs": {
         "flake-compat": "flake-compat_2",
@@ -1020,7 +1006,7 @@
         "nix-github-actions": "nix-github-actions_4",
         "nixos-hardware": "nixos-hardware",
         "nixos-raspberrypi": "nixos-raspberrypi",
-        "nixpkgs": "nixpkgs_2",
+        "nixpkgs": "nixpkgs",
         "nixpkgs-25_11": "nixpkgs-25_11",
         "nixpkgs-master": "nixpkgs-master",
         "nixpkgs-wip-consolidated": "nixpkgs-wip-consolidated",
flake.nix
@@ -411,6 +411,7 @@
     nix-github-actions.inputs.nixpkgs.follows = "nixpkgs";
 
     nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/develop";
+    nixos-raspberrypi.inputs.nixpkgs.follows = "nixpkgs";
     nixos-raspberrypi.inputs.flake-compat.follows = "flake-compat";
 
     copilot-cli.url = "github:scarisey/copilot-cli-flake";