diff --git a/flake.lock b/flake.lock index 26cd07f..f263850 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1714580308, - "narHash": "sha256-D9sx3irluJ7qjmKSORgwFIT7+woMBaUdik1g3AzvWK0=", + "lastModified": 1714467992, + "narHash": "sha256-+JT8h7EDcIRmM1qOxSHcKENruIyDOJ502haTFqnQ+74=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "ce14ca664285a33988892c485f12d20fcb792d49", + "rev": "bf94159254c238a379f54bd4c3d11a50322e6469", "type": "github" }, "original": { @@ -36,6 +36,22 @@ "type": "github" } }, + "extra-package-chatgpt": { + "flake": false, + "locked": { + "lastModified": 1698792517, + "narHash": "sha256-sh/O36RN34osWLaNVNM3mWKE7mJUdom/ZrBoO2U+Yr8=", + "owner": "joshcho", + "repo": "ChatGPT.el", + "rev": "51c658aa40a106a4ee3afe4376f5ed3d6024c8a9", + "type": "github" + }, + "original": { + "owner": "joshcho", + "repo": "ChatGPT.el", + "type": "github" + } + }, "extra-package-combobulate": { "flake": false, "locked": { @@ -55,11 +71,11 @@ "extra-package-copilot": { "flake": false, "locked": { - "lastModified": 1714572852, - "narHash": "sha256-Knp36PtgA73gtYO+W1clQfr570bKCxTFsGW3/iH86A0=", + "lastModified": 1713189314, + "narHash": "sha256-53BGX2llkrM5mDmFSVe+O/Vo4F2gDJTFh/4TqBuQme8=", "owner": "zerolfx", "repo": "copilot.el", - "rev": "733bff26450255e092c10873580e9abfed8a81b8", + "rev": "edf517a57f539eb41eaa2f92c6752538f3a62b72", "type": "github" }, "original": { @@ -228,11 +244,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1714409183, - "narHash": "sha256-Wacm/DrzLD7mjFGnSxxyGkJgg2unU/dNdNgdngBH+RU=", + "lastModified": 1714272655, + "narHash": "sha256-3/ghIWCve93ngkx5eNPdHIKJP/pMzSr5Wc4rNKE1wOc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "576ecd43d3b864966b4423a853412d6177775e8b", + "rev": "12430e43bd9b81a6b4e79e64f87c624ade701eaf", "type": "github" }, "original": { @@ -262,6 +278,7 @@ "inputs": { "emacs-overlay": "emacs-overlay", "extra-package-agenix-el": "extra-package-agenix-el", + "extra-package-chatgpt": "extra-package-chatgpt", "extra-package-combobulate": "extra-package-combobulate", "extra-package-copilot": "extra-package-copilot", "extra-package-indent-bars": "extra-package-indent-bars", diff --git a/flake.nix b/flake.nix index a4bcddd..26e860c 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,10 @@ url = "github:t4ccer/agenix.el"; flake = false; }; + extra-package-chatgpt = { + url = "github:joshcho/ChatGPT.el"; + flake = false; + }; extra-package-copilot = { url = "github:zerolfx/copilot.el"; flake = false; diff --git a/init.el b/init.el index f33b0a5..7ba6700 100644 --- a/init.el +++ b/init.el @@ -48,8 +48,7 @@ (backup-directory-alist `(("." . ,temporary-file-directory))) (auto-save-files-name-transforms `((".*" ,temporary-file-directory t))) (backup-by-copying t) - (focus-follows-mouse t) - (mouse-autoselect-window t) + (focus-follows-mouse 't) :config (set-face-background 'vertical-border (face-background 'default)) (set-display-table-slot standard-display-table 'vertical-border (make-glyph-code ?┃)) @@ -465,7 +464,7 @@ (nix-ts-mode . (lambda () (require 'eglot) (add-to-list 'eglot-server-programs - '(nix-ts-mode . ("nixd"))) + '(nix-ts-mode . ("nil"))) ;; FIXME `nixd' completion not working, will give it a second try in the future ;; '(nix-ts-mode . ("nixd" :initializationOptions (:eval (:depth 10 :workers 4) ;; :formatting (:command "alejandra") @@ -794,29 +793,14 @@ This is meant to be an helper to be called from the window manager." ("C-c n l" . consult-org-roam-forward-links) ("C-c n r" . consult-org-roam-search)) -(use-package gptel - :custom - (gptel-api-key (getenv "OPENAI_API_KEY")) +(use-package chatgpt :config - (defun ccr/suggest-eshell-command () - (interactive) - (save-excursion - (eshell-bol) - (let ((start-pos (point)) - (end-pos (line-end-position))) - (gptel-request - (buffer-substring-no-properties start-pos end-pos) ;the prompt - :system "You are proficient with emacs shell (eshell), translate the following to something I could directly prompt to the shell. Your responses should only be code, without explanation or formatting." - :buffer (current-buffer) - :context (cons (set-marker (make-marker) start-pos) - (set-marker (make-marker) end-pos)) - :callback - (lambda (response info) - (if (not response) - (message "ChatGPT response failed with: %s" (plist-get info :status)) - (kill-region start-pos end-pos) - (insert response))))))) - ) + (dolist (e '(("spiega" . "Spiega il seguente") + ("documenta" . "Documenta il seguente usando la sintassi appropriata in modo che possa essere inserito nel codice") + )) + (push e chatgpt-code-query-map)) + :bind + ("C-c i" . chatgpt-query)) (use-package copilot :custom @@ -827,7 +811,7 @@ This is meant to be an helper to be called from the window manager." (use-package pass :config - (require 'password-store-otp) ;; FIXME use `use-pacakge' idiomatic way + (require 'password-store-otp) ;; FIXME use `use-pacakges' idiomatic way :bind (("C-c p p" . password-store-copy) ("C-c p o" . password-store-otp-token-copy) diff --git a/packages/packages.nix b/packages/packages.nix index 10ebdbc..fb309eb 100644 --- a/packages/packages.nix +++ b/packages/packages.nix @@ -4,11 +4,18 @@ pkgs: epkgs: let depsPerPackage = { indent-bars = [elpaPackages.compat]; + chatgpt = [melpaPackages.polymode]; copilot = [melpaPackages.editorconfig melpaPackages.dash melpaPackages.s melpaPackages.f]; notmuch-notify = [melpaPackages.alert melpaPackages.notmuch]; }; - overrideAttrsPerPackage = { }; + overrideAttrsPerPackage = { + copilot = old: { + postInstall = '' + cp -r "$src/dist" "$LISPDIR" + ''; + }; + }; # *Attrset* containig extra emacs packages from flake inputs extraPackages = lib.mapAttrs (inputName: input: let @@ -89,9 +96,8 @@ pkgs: epkgs: let notmuch consult-notmuch poly-org - casual - # org-re-reveal # FIXME very not nice hash mismatch when building - gptel + # casual + org-re-reveal ]) ++ (with elpaPackages; [ delight kind-icon