summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbenj <benj@rse8.com>2024-04-15 11:52:49 -0700
committerbenj <benj@rse8.com>2024-04-15 12:52:04 -0700
commitce6f89cf9e0fbbe89d093f9b792e0e580587cb12 (patch)
treea9189d467c07315ab91a77376c865b0e40c58a93
parentcdf3f799fd5cdb34d4dc760dccfa354d7b266785 (diff)
downloademacs-ce6f89cf9e0fbbe89d093f9b792e0e580587cb12.tar
emacs-ce6f89cf9e0fbbe89d093f9b792e0e580587cb12.tar.gz
emacs-ce6f89cf9e0fbbe89d093f9b792e0e580587cb12.tar.bz2
emacs-ce6f89cf9e0fbbe89d093f9b792e0e580587cb12.tar.lz
emacs-ce6f89cf9e0fbbe89d093f9b792e0e580587cb12.tar.xz
emacs-ce6f89cf9e0fbbe89d093f9b792e0e580587cb12.tar.zst
emacs-ce6f89cf9e0fbbe89d093f9b792e0e580587cb12.zip
don't call auth store a bajilion times and start using gptel
-rw-r--r--init.el48
1 files changed, 31 insertions, 17 deletions
diff --git a/init.el b/init.el
index 0da943e..4694bc7 100644
--- a/init.el
+++ b/init.el
@@ -182,10 +182,21 @@
(use-package flycheck
:ensure t)
+(use-package gptel
+ :ensure t
+ :bind (:prefix-map ai-commands
+ :prefix-docstring "Emacs AI comamands"
+ :prefix "C-c a"
+ ("a" . 'gptel)
+ ("s" . 'gptel-menu))
+ :init
+ (setq gptel-model "gpt-4-turbo-preview"
+ gptel-default-mode #'org-mode))
+
(use-package hl-todo
:ensure t
:init
- (global-hl-todo-mode))
+ (global-hl-todo-mode))
(use-package jinx
:ensure t
@@ -214,29 +225,32 @@
:after smtpmail-multi
:init
(defun get-mail-accounts ()
- (let* ((raw-keys (auth-source-pass-get 'secret "emacs/mail-accounts"))
- (keys (if (null raw-keys) nil (mapcar 'intern (split-string raw-keys)))))
- (if (null keys)
+ (let* ((entries (auth-source-pass-parse-entry "emacs/mail-accounts"))
+ (accounts (if (null entries) nil (seq-filter (lambda (pair) (not (equal (car pair) 'secret))) entries))))
+ (if (null accounts)
(message "No mail accounts were found in the password-store. Cannot send mail")
- (mapcar (lambda (x)
- (let ((store-name (auth-source-pass-get (symbol-name x) "emacs/mail-accounts")))
- (cons x (list
- ;; see smtpmail-multi.el for ordering
- (auth-source-pass-get "user" store-name) ;; username
- (auth-source-pass-get "host" store-name) ;; server
- (string-to-number (auth-source-pass-get "port" store-name)) ;; port
- (auth-source-pass-get "user" store-name) ;; from
- (intern (auth-source-pass-get "type" store-name)) ;; stream type
- nil nil nil)))) ;; starttls_key starttls_cert local_host
- keys))))
+ (mapcar (lambda (pair)
+ (let ((key (intern (car pair)))
+ (value ((lambda (account)
+ (let ((store (auth-source-pass-parse-entry account)))
+ `(,(assoc-default "user" store)
+ ,(assoc-default "host" store)
+ ,(string-to-number (assoc-default "port" store))
+ ,(assoc-default "user" store)
+ ,(intern (assoc-default "type" store))
+ nil nil nil
+ )))
+ (cdr pair))))
+ (cons key value)))
+ accounts))))
(setq send-mail-function 'smtpmail-multi-send-it
mail-accounts (get-mail-accounts)
primary-account (nth 0 (car mail-accounts))
-
smtpmail-multi-accounts mail-accounts
smtpmail-multi-default-account primary-account
- user-mail-address (nth 3 (cdr (assoc primary-account smtpmail-multi-accounts)))))
+ user-mail-address (nth 3 (cdr (assoc primary-account smtpmail-multi-accounts)))
+ smtpmail-multi-associations (mapcar (lambda (pair) `(,(car (cdr pair)) ,(car pair))) mail-accounts)))
(use-package multiple-cursors
:ensure t