diff --git a/flakes/emacs/home.nix b/flakes/emacs/home.nix index 0daae8f..61d0655 100644 --- a/flakes/emacs/home.nix +++ b/flakes/emacs/home.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, lib, ... }: { home.file.".emacs.d/early-init.el".source = ./config/early-init.el; home.file.".emacs.d/tree-sitter/libtree-sitter-swift.dylib".source = ./config/tree-sitter/libtree-sitter-swift.dylib; @@ -8,71 +8,109 @@ enable = true; extraConfig = builtins.readFile ./config/init.el + builtins.readFile ./config/lisp/utils.el; - extraPackages = epkgs: (with epkgs; [ - agent-shell - apheleia - avy - cape - cider - clojure-mode - consult - consult-denote - copilot - corfu - denote - dockerfile-mode - ef-themes - eglot - envrc - exec-path-from-shell - flycheck - flycheck-clj-kondo - flycheck-swiftlint - graphql-mode - helpful - htmlize - jinx - js2-mode - json-mode - ledger-mode - ligature - markdown-mode - minions - multiple-cursors - nerd-icons - nerd-icons-completion - nerd-icons-corfu - nerd-icons-dired - nerd-icons-ibuffer - ob-restclient - ob-swift - olivetti - orderless - org - org-modern - ox-gfm - ox-reveal - pulsar - rainbow-delimiters - rainbow-mode - restclient - smartparens - swift-mode - super-save - terraform-mode - treesit-auto - ob-typescript - yaml-mode - vterm - fontaine - magit - magit-todos - marginalia - modus-themes - nix-mode - vertico - winpulse - yasnippet - ]); + extraPackages = epkgs: + let + myEpkgs = epkgs.overrideScope (final: prev: { + shell-maker = prev.shell-maker.overrideAttrs (_: { + version = "0.90.1"; + src = pkgs.fetchFromGitHub { + owner = "xenodium"; + repo = "shell-maker"; + rev = "55f829d179608a3c4b11e86427713d5be7c4bb58"; + hash = "sha256-tFzyVXxgrR6LOPUhX4MgJNLy3PX+pwprjdYi+IZXr+E="; + }; + }); + + agent-shell = final.melpaBuild { + pname = "agent-shell"; + ename = "agent-shell"; + version = "0.47.3"; + + src = pkgs.fetchFromGitHub { + owner = "xenodium"; + repo = "agent-shell"; + rev = "v0.50.1"; + hash = "sha256-y3WKd7w9zNebNlP3phMLmMbrFd+MHqwwJH/dUP6VSlo="; + }; + + packageRequires = with final; [ + acp + shell-maker + ]; + + meta = { + homepage = "https://github.com/xenodium/agent-shell"; + description = "Native agentic integrations for Claude Code, Gemini CLI, etc"; + }; + }; + }); + in + with myEpkgs; [ + agent-shell + apheleia + avy + cape + cider + clojure-mode + consult + consult-denote + copilot + corfu + denote + dockerfile-mode + ef-themes + eglot + envrc + exec-path-from-shell + flycheck + flycheck-clj-kondo + flycheck-swiftlint + flymake-collection + graphql-mode + helpful + htmlize + jinx + js2-mode + json-mode + ledger-mode + ligature + markdown-mode + minions + multiple-cursors + nerd-icons + nerd-icons-completion + nerd-icons-corfu + nerd-icons-dired + nerd-icons-ibuffer + ob-restclient + ob-swift + olivetti + orderless + org + org-modern + ox-gfm + ox-reveal + pulsar + rainbow-delimiters + rainbow-mode + restclient + smartparens + swift-mode + super-save + terraform-mode + treesit-auto + ob-typescript + yaml-mode + vterm + fontaine + magit + magit-todos + marginalia + modus-themes + nix-mode + vertico + winpulse + yasnippet + ]; }; }