diff --git a/flake.lock b/flake.lock index 112172a..aade22e 100644 --- a/flake.lock +++ b/flake.lock @@ -25,16 +25,16 @@ ] }, "locked": { - "lastModified": 1768949235, - "narHash": "sha256-TtjKgXyg1lMfh374w5uxutd6Vx2P/hU81aEhTxrO2cg=", + "lastModified": 1771756436, + "narHash": "sha256-Tl2I0YXdhSTufGqAaD1ySh8x+cvVsEI1mJyJg12lxhI=", "owner": "nix-community", "repo": "home-manager", - "rev": "75ed713570ca17427119e7e204ab3590cc3bf2a5", + "rev": "5bd3589390b431a63072868a90c0f24771ff4cbb", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-25.11", + "ref": "master", "repo": "home-manager", "type": "github" } @@ -60,16 +60,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1769318308, - "narHash": "sha256-Mjx6p96Pkefks3+aA+72lu1xVehb6mv2yTUUqmSet6Q=", + "lastModified": 1771813003, + "narHash": "sha256-rb+oAW0pPJHeyau97ZQ04Afzbxv8Qdexzvxoc0PosBI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "1cd347bf3355fce6c64ab37d3967b4a2cb4b878c", + "rev": "09fd5099fab71fc4f891f50ecb370b0ed5a8a4aa", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.11", + "ref": "master", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 3746a5b..bd48208 100644 --- a/flake.nix +++ b/flake.nix @@ -3,9 +3,9 @@ inputs = { # Specify the source of Home Manager and Nixpkgs. - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; + nixpkgs.url = "github:nixos/nixpkgs/master"; home-manager = { - url = "github:nix-community/home-manager/release-25.11"; + url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; kube = { @@ -37,7 +37,7 @@ }; in { homeConfigurations.shibumi = - let pkgs = nixpkgs.legacyPackages.aarch64-darwin; + let pkgs = import nixpkgs { system = "aarch64-darwin"; config.allowUnfree = true; }; modules = modules-for-system pkgs; in home-manager.lib.homeManagerConfiguration { inherit pkgs; diff --git a/home.org b/home.org index 987d9ba..3e45bfc 100644 --- a/home.org +++ b/home.org @@ -663,15 +663,16 @@ to track them. | s-f | C-x p f | [[id:A2F7FF5C-AFCC-44D4-9AA5-3498F6D6D5E0::workspace_keybinds][Open file in current project]] | | | s-F | C-x p p | [[id:A2F7FF5C-AFCC-44D4-9AA5-3498F6D6D5E0::workspace_keybinds][Switch project]] | | | S-s | C-x t RET | [[id:A2F7FF5C-AFCC-44D4-9AA5-3498F6D6D5E0::workspace_keybinds][Switch tab]] | | - | C-c a | | [[id:3B0BFCDC-DFD5-42A0-97D8-3B032B128AF7][Org agenda]] | | - | C-c A | | [[id:5CCB676B-9FF0-47B4-8AF2-10FD3899A646][Eglot code actions]] | prog | - | C-c c | | [[id:3B0BFCDC-DFD5-42A0-97D8-3B032B128AF7][Org capture]] | | + | C-c A | | [[id:3B0BFCDC-DFD5-42A0-97D8-3B032B128AF7][Org agenda]] | | + | C-c a | | [[id:5CCB676B-9FF0-47B4-8AF2-10FD3899A646][Eglot code actions]] | prog | + | C-c c | | Claude Code | | + | C-c C | | [[id:3B0BFCDC-DFD5-42A0-97D8-3B032B128AF7][Org capture]] | | | C-c D | | [[id:5CCB676B-9FF0-47B4-8AF2-10FD3899A646][Show flymake diagnostics]] | prog | | C-c h | | [[id:6D1A8B35-3093-4DA6-A5AA-2A0D45112BAB][Consult shell history]] | | - | C-c I | | [[id:5CCB676B-9FF0-47B4-8AF2-10FD3899A646][Eglot find implementation]] | prog | + | C-c i | | [[id:5CCB676B-9FF0-47B4-8AF2-10FD3899A646][Eglot find implementation]] | prog | | C-c l | | [[id:3B0BFCDC-DFD5-42A0-97D8-3B032B128AF7][Org store link]] | | | C-c n | | [[id:3B0BFCDC-DFD5-42A0-97D8-3B032B128AF7][Org Roam prefix]] | | - | C-c R | | [[id:5CCB676B-9FF0-47B4-8AF2-10FD3899A646][Eglot rename]] | prog | + | C-c r | | [[id:5CCB676B-9FF0-47B4-8AF2-10FD3899A646][Eglot rename]] | prog | | C-c u | | [[id:5CCB676B-9FF0-47B4-8AF2-10FD3899A646][Cycle string inflection]] | various | | C-c M-g | | [[id:4F426E77-CE03-4BF8-8D1B-7791C7C02B28][Magit file dispatch]] | | @@ -888,16 +889,16 @@ content to be. '(((or "\\*Flymake diagnostics *" "\\*Embark Export *" "\\*Embark Collect *" - "\\*xref*" - "\\*compilation\\*" - "\\*sly-mrepl *" - "\\*Messages\\*" - "\\*lispy-message\\*" - "\\*EGLOT connections\\*" - "\\*trace-output\\*" - "\\*occur\\*" - "*eshell\\*") - (display-buffer-reuse-window display-buffer-in-side-window) + "\\*xref*" + "\\*compilation\\*" + "\\*sly-mrepl *" + "\\*Messages\\*" + "\\*lispy-message\\*" + "\\*EGLOT connections\\*" + "\\*trace-output\\*" + "\\*occur\\*" + "*eshell\\*") + (display-buffer-in-side-window) (side . bottom) (slot . 0) (window-height . 0.33) @@ -911,7 +912,8 @@ content to be. "\\*rustfmt\\*" "\\*slack: *" "\\*forge: *" - "new-pullreq") + "new-pullreq" + "\\*claude:*") (display-buffer-reuse-window display-buffer-in-side-window) (side . right) (slot . 0) @@ -919,7 +921,7 @@ content to be. (window-parameters (no-delete-other-windows . t) (no-other-window . t))) ("\\*Embark Actions\\*" - (display-buffer-reuse-window display-buffer-in-side-window) + (display-buffer-in-side-window) (side . right) (slot . -1) (window-width . 0.5) @@ -931,6 +933,17 @@ content to be. '(no-other-window . writable) window-persistent-parameters)) #+END_SRC + +** Claude Code + +#+BEGIN_SRC nix :tangle target/claude-code.nix + { + programs.claude-code = { + enable = true; + }; + } +#+END_SRC + ** Editing :PROPERTIES: :header-args:elisp: :tangle target/emacs-editing.el @@ -1139,9 +1152,9 @@ available? It seems to work for now anyway... (add-hook 'eglot-managed-mode-hook (lambda () (eglot-inlay-hints-mode -1)) nil t) (require 'eglot) (bind-keys :map eglot-mode-map - ("C-c A" . eglot-code-actions) - ("C-c R" . eglot-rename) - ("C-c I" . eglot-find-implementation)) + ("C-c a" . eglot-code-actions) + ("C-c r" . eglot-rename) + ("C-c i" . eglot-find-implementation)) (setopt ediff-split-window-function 'split-window-horizontally) @@ -1153,7 +1166,7 @@ available? It seems to work for now anyway... *** Rust #+BEGIN_SRC elisp - ;; (setq major-mode-remap-alist '((rust-mode . rust-mode))) + (setq major-mode-remap-alist '((rust-mode . rust-mode))) (setopt rust-mode-treesitter-derive t) @@ -1164,6 +1177,8 @@ available? It seems to work for now anyway... *** YAML #+BEGIN_SRC elisp + (require 'yaml-ts-mode) + (defun yaml-validate () (interactive) (compile (concat "yamllint -d '{extends: default, rules: {indentation: {indent-sequences: false}, braces: {max-spaces-inside: 1}}}' " (buffer-file-name)) t)) @@ -1293,8 +1308,7 @@ available? It seems to work for now anyway... #+END_SRC #+BEGIN_SRC elisp - (setopt magit-define-global-key-bindings 'recommended) - (bind-keys ("s-g" . magit-status)) + (setq magit-define-global-key-bindings 'recommended) (setopt magit-save-repository-buffers 'dontask) (setopt magit-commit-show-diff nil) @@ -1446,8 +1460,8 @@ available? It seems to work for now anyway... #+BEGIN_SRC elisp (require 'org) - (bind-keys ("C-c a" . org-agenda) - ("C-c c" . org-capture) + (bind-keys ("C-c A" . org-agenda) + ("C-c C" . org-capture) ("C-c l" . org-id-store-link)) (add-hook 'org-mode-hook 'visual-line-mode) @@ -1661,6 +1675,39 @@ available? It seems to work for now anyway... (age-file-enable) #+END_SRC +** Claude Code +:PROPERTIES: +:header-args:elisp: :tangle target/emacs-claude-code.el +:END: + +#+BEGIN_SRC nix :tangle target/emacs-claude-code.nix + {pkgs, ...}: + { + programs.emacs = { + enable = true; + extraPackages = epkgs: with epkgs; [ + (epkgs.trivialBuild { + name = "claude-code"; + src = pkgs.fetchFromGitHub { + owner = "stevemolitor"; + repo = "claude-code.el"; + rev = "4a9914bd4161eb43f489820f9174c62390e5adc8"; + sha256 = "sha256-ISlD6q1hceckry1Jd19BX1MfobHJxng5ulX2gq9f644="; + }; + packageRequires = [ epkgs.inheritenv ]; + }) + ]; + extraConfig = builtins.readFile ./emacs-claude-code.el; + }; + } +#+END_SRC + +#+BEGIN_SRC elisp + (require 'claude-code) + + (global-set-key (kbd "C-c c") claude-code-command-map) + (claude-code-mode) +#+END_SRC * Theme I like Catppuccin Frappe as my theme. Let's use it in as many places as we can. @@ -1712,7 +1759,8 @@ I like Catppuccin Frappe as my theme. Let's use it in as many places as we can. {pkgs, ...}: { xdg = { - enable = true; + enable = false +; configFile."lazygit/config.yml" = { enable = true; source = pkgs.fetchFromGitHub