From e187e15b85770488d5ebcac2a6ced95d32610e36 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 1 May 2024 09:48:28 +0200 Subject: [PATCH 1/4] Remove `chatgpt` --- flake.nix | 4 ---- init.el | 9 +-------- packages/packages.nix | 2 +- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/flake.nix b/flake.nix index 26e860c..a4bcddd 100644 --- a/flake.nix +++ b/flake.nix @@ -22,10 +22,6 @@ 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 7ba6700..95f04f8 100644 --- a/init.el +++ b/init.el @@ -793,14 +793,7 @@ 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 chatgpt :config - (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 @@ -811,7 +804,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-pacakges' idiomatic way + (require 'password-store-otp) ;; FIXME use `use-pacakge' 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 fb309eb..a8aa22f 100644 --- a/packages/packages.nix +++ b/packages/packages.nix @@ -4,7 +4,6 @@ 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]; }; @@ -98,6 +97,7 @@ pkgs: epkgs: let poly-org # casual org-re-reveal + gptel ]) ++ (with elpaPackages; [ delight kind-icon From a8622fd7d5b050b795701dce30075183d28eb690 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 1 May 2024 09:48:40 +0200 Subject: [PATCH 2/4] Follow mouse --- init.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index 95f04f8..96f4ced 100644 --- a/init.el +++ b/init.el @@ -48,7 +48,8 @@ (backup-directory-alist `(("." . ,temporary-file-directory))) (auto-save-files-name-transforms `((".*" ,temporary-file-directory t))) (backup-by-copying t) - (focus-follows-mouse 't) + (focus-follows-mouse t) + (mouse-autoselect-window t) :config (set-face-background 'vertical-border (face-background 'default)) (set-display-table-slot standard-display-table 'vertical-border (make-glyph-code ?┃)) From 74e0f203bbd179aae0d4fc5433c8b38140527be7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 1 May 2024 09:48:51 +0200 Subject: [PATCH 3/4] Use `nixd` instead of `nil` --- init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.el b/init.el index 96f4ced..8557a69 100644 --- a/init.el +++ b/init.el @@ -465,7 +465,7 @@ (nix-ts-mode . (lambda () (require 'eglot) (add-to-list 'eglot-server-programs - '(nix-ts-mode . ("nil"))) + '(nix-ts-mode . ("nixd"))) ;; 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") From b8d1c727a1109628e4cb7090a5e697df07eb20e3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 1 May 2024 09:49:02 +0200 Subject: [PATCH 4/4] Use `gptel` --- init.el | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/init.el b/init.el index 8557a69..f33b0a5 100644 --- a/init.el +++ b/init.el @@ -794,7 +794,29 @@ 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")) :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))))))) + ) (use-package copilot :custom