diff --git a/flake.lock b/flake.lock index 499ebcc..1fc7c79 100644 --- a/flake.lock +++ b/flake.lock @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1743930892, - "narHash": "sha256-2efjGG9Mpz/QPZQjkeqOW/mpxf099t0NO0kK/tchWPQ=", + "lastModified": 1743991507, + "narHash": "sha256-sRyA1LOsRSeF8W2drXEuGU2U+actcYEKdk1f+2kDKb8=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "3fb12f3aacdc18ee1f455cca300c33d5f20de175", + "rev": "ac8af15c5f586879c08cd257b69749f791d94e68", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1743948087, - "narHash": "sha256-B6cIi2ScgVSROPPlTti6len+TdR0K25B9R3oKvbw3M8=", + "lastModified": 1744008831, + "narHash": "sha256-g3mHJLB8ShKuMaBBZxiGuoftJ22f7Boegiw5xBUnS8E=", "owner": "nix-community", "repo": "home-manager", - "rev": "ef3b2a6b602c3f1a80c6897d6de3ee62339a3eb7", + "rev": "f463902a3f03e15af658e48bcc60b39188ddf734", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1743933152, - "narHash": "sha256-r9ERTC2qY3S76l1KHB1/SWQjqQtrYBRmNUL3lnCF18o=", + "lastModified": 1743964165, + "narHash": "sha256-5vXjK5W+RIveud/Qn4OyVqrZi4pUDefKZsny33dDj+s=", "ref": "refs/heads/main", - "rev": "63d550938ba2a3690be987e884fe95e384708a82", - "revCount": 17764, + "rev": "2ef4b69760af183792a740f425eb371a6aeb0009", + "revCount": 17767, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1743703532, - "narHash": "sha256-s1KLDALEeqy+ttrvqV3jx9mBZEvmthQErTVOAzbjHZs=", + "lastModified": 1743813633, + "narHash": "sha256-BgkBz4NpV6Kg8XF7cmHDHRVGZYnKbvG0Y4p+jElwxaM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bdb91860de2f719b57eef819b5617762f7120c70", + "rev": "7819a0d29d1dd2bc331bec4b327f0776359b1fa6", "type": "github" }, "original": { diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 9b685a3..192f3fd 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -214,6 +214,8 @@ :custom (meow-use-clipboard 't) :config + (require 'meow-tree-sitter) + (meow-tree-sitter-register-defaults) (add-hook 'after-make-frame-functions (defun ccr/meow--prepare-face (_) (meow--prepare-face) (remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face))) @@ -698,8 +700,8 @@ :custom ((eshell-command-not-found-command "command-not-found")) :hook ((eshell-mode . eshell-command-not-found-mode))) -(use-package eshell-atuin - :hook ((eshell-mode . eshell-atuin-mode))) +;; (use-package eshell-atuin +;; :hook ((eshell-mode . eshell-atuin-mode))) (use-package eshell-syntax-highlighting :custom @@ -981,22 +983,82 @@ This is meant to be an helper to be called from the window manager." (use-package gptel :custom - (gptel-model 'qwen/qwen-max) + (gptel-model 'google/gemini-2.0-flash-001) (gptel-backend (gptel-make-openai "OpenRouter" :host "openrouter.ai" :endpoint "/api/v1/chat/completions" :key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH"))) :stream t - :models '(qwen/qwen-max deepseek/deepseek-chat)) + :models '(google/gemini-2.0-flash-001)) ) (gptel-default-mode 'org-mode) (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it + (gptel-use-tools 't) + + :bind + ("C-c a a" . gptel-add) + ("C-c a f" . gptel-add-file) + ("C-c a r" . gptel-context-remove-all) + ("C-c a " . gptel-menu) + + :config (require 'gptel-curl) ;; (add-hook 'gptel-post-response-functions 'gptel-end-of-response) ;; (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll) + (setq gptel-tools (mapcar (lambda (tool) (apply #'gptel-make-tool tool)) + '(( + :name "create_file" + :function (lambda (path filename content) + (let ((full-path (expand-file-name filename path))) + (with-temp-buffer + (insert content) + (write-file full-path)) + (format-read "Created file %s in %s" filename path))) + :description "Create a new file with the specified content" + :args (list '(:name "path" + :type string + :description "The directory where to create the file") + '(:name "filename" + :type string + :description "The name of the file to create") + '(:name "content" + :type string + :description "The content to write to the file")) + :category "filesystem" + ) + ;; ( + ;; :name "run_command" + ;; :confirm 't + ;; :function (lambda (command) + ;; (shell-command-to-string command)) + ;; :description "Run arbitrary commands" + ;; :args (list '(:name "command" + ;; :type string + ;; :description "The content to run e.g. 'ls *' or 'fd '")) + ;; ) + ( + :name "get_weather" + :function (lambda (location) + (url-retrieve-synchronously "api.weather.com/..." + location unit)) + :description "Get the current weather in a given location" + :args (list '(:name "location" + :type string + :description "The city and state, e.g. San Francisco, CA") + '(:name "unit" + :type string + :enum ["celsius" "farenheit"] + :description + "The unit of temperature, either 'celsius' or 'fahrenheit" + :optional t + )) + ) + )) + ) + (defun ccr/suggest-eshell-command () (interactive) (save-excursion diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index d040d53..5544eb1 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -27,11 +27,11 @@ in rebase.autostash = true; github.user = "aciceri"; - user.signingKey = "/home/${username}/.ssh/id_rsa"; + user.signingKey = "/home/${username}/.ssh/id_ed25519"; gpg.format = "ssh"; commit.gpgsign = true; - credential.helper = "manager"; + credential.helper = "libsecret"; credential.credentialStore = "cache"; core = {