From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Christopher M. Miles" Newsgroups: gmane.emacs.bugs Subject: bug#63293: 30.0.50; EasyPG seems has a bug on saving the encrypted file buffer Date: Thu, 04 May 2023 10:46:22 +0800 Message-ID: <18702.8191330441$1683270095@news.gmane.org> Reply-To: numbchild@gmail.com Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38131"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.10.3; emacs 30.0.50 To: 63293@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri May 05 09:01:26 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pupRW-0009jH-0I for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 05 May 2023 09:01:26 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pupRB-0002PC-7Z; Fri, 05 May 2023 03:01:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pupR8-0002Oi-Mi for bug-gnu-emacs@gnu.org; Fri, 05 May 2023 03:01:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pupR8-0007Ti-DE for bug-gnu-emacs@gnu.org; Fri, 05 May 2023 03:01:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pupR8-0000hT-8J for bug-gnu-emacs@gnu.org; Fri, 05 May 2023 03:01:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: "Christopher M. Miles" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 05 May 2023 07:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 63293 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.16832700402646 (code B ref -1); Fri, 05 May 2023 07:01:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 5 May 2023 07:00:40 +0000 Original-Received: from localhost ([127.0.0.1]:53063 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pupQl-0000gc-Ts for submit@debbugs.gnu.org; Fri, 05 May 2023 03:00:39 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:44172) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pupQk-0000gT-Ku for submit@debbugs.gnu.org; Fri, 05 May 2023 03:00:38 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pupQV-0001tZ-0F for bug-gnu-emacs@gnu.org; Fri, 05 May 2023 03:00:26 -0400 Original-Received: from [2409:8a28:6038:2b80:52d2:f5ff:fe16:c591] (helo=Mac-mini.local) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pupPU-00056c-3e for bug-gnu-emacs@gnu.org; Fri, 05 May 2023 03:00:22 -0400 Original-Received: by Mac-mini.local (Postfix, from userid 501) id 511DC8AFE773; Thu, 4 May 2023 10:48:27 +0800 (CST) X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:8a28:6038:2b80:52d2:f5ff:fe16:c591 (deferred) Received-SPF: softfail client-ip=2409:8a28:6038:2b80:52d2:f5ff:fe16:c591; envelope-from=numbchild@gmail.com; helo=Mac-mini.local X-Spam_score_int: 25 X-Spam_score: 2.5 X-Spam_bar: ++ X-Spam_report: (2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FROM=0.001, MSGID_MULTIPLE_AT=1, NML_ADSP_CUSTOM_MED=0.9, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665, SPOOFED_FREEMAIL=0.001, SPOOFED_FREEMAIL_NO_RDNS=0.001, SPOOF_GMAIL_MID=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:261073 Archived-At: ------------------------------------------------------------------------ I originally posted to emacs-devel@gnu.org mailing list, wrong place. So I post here now. This is a very long email that contains all steps I tried to reproduce and = try to fix the problem but still failed. Short: 1. gpg encrypt a plain text file into "file.org.gpg" with the command "gpg = -e file.org" 2. `$ emacs -Q` press keybinding [C-x C-f] to open the encrypted file "file= .org.gpg" 3. modify the file buffer 4. Emacs press [C-x C-s] to save the buffer 5. Emacs suspends lost response. Buffer mode-line status is still "modified= ". Long: The original mailing list thread is here: https://list.orgmode.org/m2h6stnyo0.fsf@numbchild@gmail.com/T/#m7c6831530da= 9604219fd01f72584c28d35e688e0 Reproduce: 1. here is EasyPG config #+begin_src emacs-lisp (use-package epa ;; force Emacs to use its own internal password prompt instead of an e= xternal ;; pinentry program. :preface (setenv "GPG_AGENT_INFO" nil) :custom ((epa-pinentry-mode 'loopback) ; let EasyPG Assistant to use l= oopback for pinentry. ;; cache passphrase for symmetric encryption. ;; For security reasons, this option is turned off by default= and ;; not recommended to use. Instead, consider using gpg-agent= which ;; does the same job in a safer way. (epa-file-cache-passphrase-for-symmetric-encryption t) (epa-file-inhibit-auto-save t) (epa-keyserver "keys.openpgp.org") (epa-file-encrypt-to '("stardiviner" "numbchild@gmail.com")) (epa-file-select-keys (if (null epa-file-encrypt-to) t nil))) :commands (epa-search-keys) :init (epa-file-enable) (add-to-list 'display-buffer-alist '("^\\*Keys\\*" . (display-buffer-b= elow-selected)))) #+end_src 2. =3D[M-x toggle-debug-on-quit]=3D 3. edit encrypted file "authinfo.gpg" in Emacs, then press =3D[C-x C-s]=3D = to save file. 4. but Emacs have not actually save file, the mode-line file status is stil= l "modified", and Emacs suspending. 5. I press =3D[C-g]=3D to quit got following stacktrace: #+begin_example Debugger entered--Lisp error: (quit) accept-process-output(# 1) epg-wait-for-status(#s(epg-context :protocol OpenPGP :program "/opt/homeb= rew/bin/gpg" :home-directory "/Users/stardiviner/.gnupg" :armor nil :textmo= de nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :comp= ress-algorithm nil :passphrase-callback (epa-file-passphrase-callback-funct= ion . "/Users/stardiviner/.config/emacs/secrets/authinfo....") :progress-ca= llback (epa-progress-callback-function . "Encrypting /Users/stardiviner/.co= nfig/emacs/secret...") :edit-callback nil :signers nil :sender nil :sig-not= ations nil :process # :output-file "/var/folders/ym/f3v5_yk127= 9g5ls70x3hzblh0000gn/T/e..." :result nil :operation encrypt :pinentry-mode = loopback :error-output "" :error-buffer #) ("BEGIN_ENC= RYPTION")) epg-start-encrypt(#s(epg-context :protocol OpenPGP :program "/opt/homebre= w/bin/gpg" :home-directory "/Users/stardiviner/.gnupg" :armor nil :textmode= nil :include-certs nil :cipher-algorithm nil :digest-algorithm nil :compre= ss-algorithm nil :passphrase-callback (epa-file-passphrase-callback-functio= n . "/Users/stardiviner/.config/emacs/secrets/authinfo....") :progress-call= back (epa-progress-callback-function . "Encrypting /Users/stardiviner/.conf= ig/emacs/secret...") :edit-callback nil :signers nil :sender nil :sig-notat= ions nil :process # :output-file "/var/folders/ym/f3v5_yk1279g= 5ls70x3hzblh0000gn/T/e..." :result nil :operation encrypt :pinentry-mode lo= opback :error-output "" :error-buffer #) #s(epg-data := file nil :string "# -*- epa-file-encrypt-to: (\"stardiviner\") -*-\n\n# ...= ") (#s(epg-key :owner-trust ultimate :sub-key-list (#s(epg-sub-key :validit= y ultimate :capability (sign certify) :secret-p nil :algorithm 1 :length 20= 48 :id "1B5DF1C95AE89AC3" :creation-time 1422686308 :expiration-time nil :f= ingerprint "F09F650D7D674819892591401B5DF1C95AE89AC3") #s(epg-sub-key :vali= dity ultimate :capability (encrypt) :secret-p nil :algorithm 1 :length 2048= :id "0251FA6886EB6B77" :creation-time 1422686308 :expiration-time nil :fin= gerprint "32A8581A6E137ABD26DA2F570251FA6886EB6B77")) :user-id-list (#s(epg= -user-id :validity ultimate :string "stardiviner (numbchild@gmail.com) :output-file "/var/folders/ym/f3v5_yk1279= g5ls70x3hzblh0000gn/T/e..." :result nil :operation encrypt :pinentry-mode l= oopback :error-output "" :error-buffer #) "# -*- epa-f= ile-encrypt-to: (\"stardiviner\") -*-\n\n# ..." (#s(epg-key :owner-trust ul= timate :sub-key-list (#s(epg-sub-key :validity ultimate :capability (sign c= ertify) :secret-p nil :algorithm 1 :length 2048 :id "1B5DF1C95AE89AC3" :cre= ation-time 1422686308 :expiration-time nil :fingerprint "F09F650D7D67481989= 2591401B5DF1C95AE89AC3") #s(epg-sub-key :validity ultimate :capability (enc= rypt) :secret-p nil :algorithm 1 :length 2048 :id "0251FA6886EB6B77" :creat= ion-time 1422686308 :expiration-time nil :fingerprint "32A8581A6E137ABD26DA= 2F570251FA6886EB6B77")) :user-id-list (#s(epg-user-id :validity ultimate :s= tring "stardiviner (numbchild@gmail.com) )(#) map-y-or-n-p(#f(compiled-function (buffer) #)= #f(compiled-function (buffer) #) (#) ("buffer" "buffers" "save") ((18 #f(compiled-function (buf) #) "view this buffer") (6 #f(compiled-function (= buf) #) "view this buffer and quit") (100 #f(co= mpiled-function (buf) #) "view changes in this= buffer"))) save-some-buffers(:no-prompt #f(compiled-function () #)) apply(save-some-buffers (:no-prompt #f(compiled-function () #))) timer-event-handler([nil 0 5 0 :repeat save-some-buffers (:no-prompt #f(c= ompiled-function () #)) idle 0 nil]) #+end_example ---------------------------------------------------------------------------= ------------------------- When I save modified "=3D~/.config/emacs/secrets/authinfo.gpg=3D", got prom= pt: #+begin_example Untrusted key AEDA8A17BB08B786 Christopher Miles (stardiviner, numbchild) <= numbchild@gmail.com>. Use anyway? (y or n) #+end_example If I input "n" for prompt: #+begin_example Debugger entered--Lisp error: (file-error "Opening output file" "Encrypt fa= iled" "Unusable public key: B8C4B8E547C32433 (key not tru...") apply(debug error (file-error "Opening output file" "Encrypt failed" "Unu= sable public key: B8C4B8E547C32433 (key not tru...")) edebug(error (file-error "Opening output file" "Encrypt failed" "Unusable= public key: B8C4B8E547C32433 (key not tru...")) signal(file-error ("Opening output file" "Encrypt failed" "Unusable publi= c key: B8C4B8E547C32433 (key not tru...")) edebug-signal(file-error ("Opening output file" "Encrypt failed" "Unusabl= e public key: B8C4B8E547C32433 (key not tru...")) signal(file-error ("Opening output file" "Encrypt failed" "Unusable publi= c key: B8C4B8E547C32433 (key not tru...")) (edebug-after (edebug-before 157) 163 (signal 'file-error (edebug-after (= edebug-before 158) 162 (cons "Opening output file" (edebug-after (edebug-be= fore 159) 161 (cdr (edebug-after 0 160 error))))))) (condition-case error (edebug-after (edebug-before 67) 142 (setq string (= edebug-after (edebug-before 68) 141 (epg-encrypt-string (edebug-after 0 69 = context) (edebug-after (edebug-before 70) 109 (if (edebug-after ... 73 ...)= (edebug-after ... 77 ...) (edebug-after ... 86 ...) (edebug-after ... 90 .= ..) (edebug-after ... 108 ...))) (edebug-after (edebug-before 110) 140 (if = (edebug-after ... 126 ...) (edebug-after ... 130 ...) (edebug-after ... 139= ...))))))) (error (edebug-after (edebug-before 143) 145 (epa-display-error= (edebug-after 0 144 context))) (edebug-after (edebug-before 146) 156 (if (= edebug-after (edebug-before 147) 152 (setq entry (edebug-after (edebug-befo= re 148) 151 (assoc ... ...)))) (edebug-after (edebug-before 153) 155 (setcd= r (edebug-after 0 154 entry) nil)))) (edebug-after (edebug-before 157) 163 = (signal 'file-error (edebug-after (edebug-before 158) 162 (cons "Opening ou= tput file" (edebug-after (edebug-before 159) 161 (cdr ...)))))))) (edebug-after (edebug-before 66) 164 (condition-case error (edebug-after = (edebug-before 67) 142 (setq string (edebug-after (edebug-before 68) 141 (e= pg-encrypt-string (edebug-after 0 69 context) (edebug-after (edebug-before = 70) 109 (if ... ... ... ... ...)) (edebug-after (edebug-before 110) 140 (if= ... ... ...)))))) (error (edebug-after (edebug-before 143) 145 (epa-displa= y-error (edebug-after 0 144 context))) (edebug-after (edebug-before 146) 15= 6 (if (edebug-after (edebug-before 147) 152 (setq entry (edebug-after ... 1= 51 ...))) (edebug-after (edebug-before 153) 155 (setcdr (edebug-after 0 154= entry) nil)))) (edebug-after (edebug-before 157) 163 (signal 'file-error (= edebug-after (edebug-before 158) 162 (cons "Opening output file" (edebug-af= ter ... 161 ...)))))))) (let* ((coding-system (edebug-after (edebug-before 11) 27 (or (edebug-aft= er 0 12 coding-system-for-write) (edebug-after (edebug-before 13) 26 (if (e= debug-after ... 15 ...) (edebug-after ... 24 ...) (edebug-after 0 25 buffer= -file-coding-system)))))) (context (edebug-after (edebug-before 28) 29 (epg= -make-context))) (coding-system-for-write 'binary) string entry (recipients= (edebug-after (edebug-before 30) 41 (cond ((edebug-after (edebug-before 31= ) 33 (listp ...)) (edebug-after 0 34 epa-file-encrypt-to)) ((edebug-after (= edebug-before 35) 37 (stringp ...)) (edebug-after (edebug-before 38) 40 (li= st ...)))))) buffer) (edebug-after (edebug-before 42) 49 (epg-context-set-p= assphrase-callback (edebug-after 0 43 context) (edebug-after (edebug-before= 44) 48 (cons (edebug-after (edebug-before 45) 46 #'epa-file-passphrase-cal= lback-function) (edebug-after 0 47 file))))) (edebug-after (edebug-before 5= 0) 59 (epg-context-set-progress-callback (edebug-after 0 51 context) (edebu= g-after (edebug-before 52) 58 (cons (edebug-after (edebug-before 53) 54 #'e= pa-progress-callback-function) (edebug-after (edebug-before 55) 57 (format = "Encrypting %s" (edebug-after 0 56 file))))))) (edebug-after (edebug-before= 60) 65 (let ((cl-x (edebug-after 0 62 context))) (or (let ((cl-x cl-x)) (p= rogn (and (memq ... cl-struct-epg-context-tags) t))) (signal 'wrong-type-ar= gument (list 'epg-context cl-x))) (let* ((v cl-x)) (edebug-after (edebug-be= fore 61) 63 (aset v 4 (edebug-after 0 64 epa-armor)))))) (edebug-after (ede= bug-before 66) 164 (condition-case error (edebug-after (edebug-before 67) 1= 42 (setq string (edebug-after (edebug-before 68) 141 (epg-encrypt-string (e= debug-after 0 69 context) (edebug-after ... 109 ...) (edebug-after ... 140 = ...))))) (error (edebug-after (edebug-before 143) 145 (epa-display-error (e= debug-after 0 144 context))) (edebug-after (edebug-before 146) 156 (if (ede= bug-after (edebug-before 147) 152 (setq entry ...)) (edebug-after (edebug-b= efore 153) 155 (setcdr ... nil)))) (edebug-after (edebug-before 157) 163 (s= ignal 'file-error (edebug-after (edebug-before 158) 162 (cons "Opening outp= ut file" ...))))))) (edebug-after (edebug-before 165) 176 (epa-file-run-rea= l-handler (edebug-after (edebug-before 166) 167 #'write-region) (edebug-aft= er (edebug-before 168) 175 (list (edebug-after 0 169 string) nil (edebug-af= ter 0 170 file) (edebug-after 0 171 append) (edebug-after 0 172 visit) (ede= bug-after 0 173 lockname) (edebug-after 0 174 mustbenew))))) (edebug-after = (edebug-before 177) 183 (if (edebug-after (edebug-before 178) 179 (boundp '= last-coding-system-used)) (edebug-after (edebug-before 180) 182 (setq last-= coding-system-used (edebug-after 0 181 coding-system))))) (edebug-after (ed= ebug-before 184) 207 (if (edebug-after (edebug-before 185) 187 (eq (edebug-= after 0 186 visit) t)) (edebug-after (edebug-before 188) 194 (progn (edebug= -after (edebug-before 189) 191 (setq buffer-file-name (edebug-after 0 190 f= ile))) (edebug-after (edebug-before 192) 193 (set-visited-file-modtime)))) = (edebug-after (edebug-before 195) 206 (if (edebug-after (edebug-before 196)= 198 (stringp (edebug-after 0 197 visit))) (edebug-after (edebug-before 199= ) 205 (progn (edebug-after ... 201 ...) (edebug-after ... 204 ...))))))) (e= debug-after (edebug-before 208) 223 (if (edebug-after (edebug-before 209) 2= 19 (or (edebug-after (edebug-before 210) 212 (eq (edebug-after 0 211 visit)= t)) (edebug-after (edebug-before 213) 215 (eq (edebug-after 0 214 visit) n= il)) (edebug-after (edebug-before 216) 218 (stringp (edebug-after 0 217 vis= it))))) (edebug-after (edebug-before 220) 222 (message "Wrote %s" (edebug-a= fter 0 221 buffer-file-name)))))) (edebug-after (edebug-before 10) 224 (let* ((coding-system (edebug-after = (edebug-before 11) 27 (or (edebug-after 0 12 coding-system-for-write) (edeb= ug-after (edebug-before 13) 26 (if ... ... ...))))) (context (edebug-after = (edebug-before 28) 29 (epg-make-context))) (coding-system-for-write 'binary= ) string entry (recipients (edebug-after (edebug-before 30) 41 (cond ((edeb= ug-after ... 33 ...) (edebug-after 0 34 epa-file-encrypt-to)) ((edebug-afte= r ... 37 ...) (edebug-after ... 40 ...))))) buffer) (edebug-after (edebug-b= efore 42) 49 (epg-context-set-passphrase-callback (edebug-after 0 43 contex= t) (edebug-after (edebug-before 44) 48 (cons (edebug-after (edebug-before 4= 5) 46 #'epa-file-passphrase-callback-function) (edebug-after 0 47 file)))))= (edebug-after (edebug-before 50) 59 (epg-context-set-progress-callback (ed= ebug-after 0 51 context) (edebug-after (edebug-before 52) 58 (cons (edebug-= after (edebug-before 53) 54 #'epa-progress-callback-function) (edebug-after= (edebug-before 55) 57 (format "Encrypting %s" ...)))))) (edebug-after (ede= bug-before 60) 65 (let ((cl-x (edebug-after 0 62 context))) (or (let ((cl-x= cl-x)) (progn (and ... t))) (signal 'wrong-type-argument (list 'epg-contex= t cl-x))) (let* ((v cl-x)) (edebug-after (edebug-before 61) 63 (aset v 4 (e= debug-after 0 64 epa-armor)))))) (edebug-after (edebug-before 66) 164 (cond= ition-case error (edebug-after (edebug-before 67) 142 (setq string (edebug-= after (edebug-before 68) 141 (epg-encrypt-string ... ... ...)))) (error (ed= ebug-after (edebug-before 143) 145 (epa-display-error (edebug-after 0 144 c= ontext))) (edebug-after (edebug-before 146) 156 (if (edebug-after ... 152 .= ..) (edebug-after ... 155 ...))) (edebug-after (edebug-before 157) 163 (sig= nal 'file-error (edebug-after ... 162 ...)))))) (edebug-after (edebug-befor= e 165) 176 (epa-file-run-real-handler (edebug-after (edebug-before 166) 167= #'write-region) (edebug-after (edebug-before 168) 175 (list (edebug-after = 0 169 string) nil (edebug-after 0 170 file) (edebug-after 0 171 append) (ed= ebug-after 0 172 visit) (edebug-after 0 173 lockname) (edebug-after 0 174 m= ustbenew))))) (edebug-after (edebug-before 177) 183 (if (edebug-after (edeb= ug-before 178) 179 (boundp 'last-coding-system-used)) (edebug-after (edebug= -before 180) 182 (setq last-coding-system-used (edebug-after 0 181 coding-s= ystem))))) (edebug-after (edebug-before 184) 207 (if (edebug-after (edebug-= before 185) 187 (eq (edebug-after 0 186 visit) t)) (edebug-after (edebug-be= fore 188) 194 (progn (edebug-after (edebug-before 189) 191 (setq buffer-fil= e-name ...)) (edebug-after (edebug-before 192) 193 (set-visited-file-modtim= e)))) (edebug-after (edebug-before 195) 206 (if (edebug-after (edebug-befor= e 196) 198 (stringp ...)) (edebug-after (edebug-before 199) 205 (progn ... = ...)))))) (edebug-after (edebug-before 208) 223 (if (edebug-after (edebug-b= efore 209) 219 (or (edebug-after (edebug-before 210) 212 (eq ... t)) (edebu= g-after (edebug-before 213) 215 (eq ... nil)) (edebug-after (edebug-before = 216) 218 (stringp ...)))) (edebug-after (edebug-before 220) 222 (message "W= rote %s" (edebug-after 0 221 buffer-file-name))))))) (closure ((mustbenew) (lockname . "~/.config/emacs/secrets/authinfo.gpg")= (visit . t) (append) (file . "/Users/stardiviner/.config/emacs/secrets/aut= hinfo....") (end . 1960) (start . 1) t) nil :closure-dont-trim-context (ede= bug-after (edebug-before 0) 4 (if (edebug-after 0 1 append) (edebug-after (= edebug-before 2) 3 (error "Can't append to the file")))) (edebug-after (ede= bug-before 5) 9 (setq file (edebug-after (edebug-before 6) 8 (expand-file-n= ame (edebug-after 0 7 file))))) (edebug-after (edebug-before 10) 224 (let* = ((coding-system (edebug-after (edebug-before 11) 27 (or (edebug-after 0 12 = coding-system-for-write) (edebug-after ... 26 ...)))) (context (edebug-afte= r (edebug-before 28) 29 (epg-make-context))) (coding-system-for-write 'bina= ry) string entry (recipients (edebug-after (edebug-before 30) 41 (cond (...= ...) (... ...)))) buffer) (edebug-after (edebug-before 42) 49 (epg-context= -set-passphrase-callback (edebug-after 0 43 context) (edebug-after (edebug-= before 44) 48 (cons (edebug-after ... 46 ...) (edebug-after 0 47 file))))) = (edebug-after (edebug-before 50) 59 (epg-context-set-progress-callback (ede= bug-after 0 51 context) (edebug-after (edebug-before 52) 58 (cons (edebug-a= fter ... 54 ...) (edebug-after ... 57 ...))))) (edebug-after (edebug-before= 60) 65 (let ((cl-x (edebug-after 0 62 context))) (or (let (...) (progn ...= )) (signal 'wrong-type-argument (list ... cl-x))) (let* ((v cl-x)) (edebug-= after (edebug-before 61) 63 (aset v 4 ...))))) (edebug-after (edebug-before= 66) 164 (condition-case error (edebug-after (edebug-before 67) 142 (setq s= tring (edebug-after ... 141 ...))) (error (edebug-after (edebug-before 143)= 145 (epa-display-error ...)) (edebug-after (edebug-before 146) 156 (if ...= ...)) (edebug-after (edebug-before 157) 163 (signal ... ...))))) (edebug-a= fter (edebug-before 165) 176 (epa-file-run-real-handler (edebug-after (edeb= ug-before 166) 167 #'write-region) (edebug-after (edebug-before 168) 175 (l= ist (edebug-after 0 169 string) nil (edebug-after 0 170 file) (edebug-after= 0 171 append) (edebug-after 0 172 visit) (edebug-after 0 173 lockname) (ed= ebug-after 0 174 mustbenew))))) (edebug-after (edebug-before 177) 183 (if (= edebug-after (edebug-before 178) 179 (boundp 'last-coding-system-used)) (ed= ebug-after (edebug-before 180) 182 (setq last-coding-system-used (edebug-af= ter 0 181 coding-system))))) (edebug-after (edebug-before 184) 207 (if (ede= bug-after (edebug-before 185) 187 (eq (edebug-after 0 186 visit) t)) (edebu= g-after (edebug-before 188) 194 (progn (edebug-after ... 191 ...) (edebug-a= fter ... 193 ...))) (edebug-after (edebug-before 195) 206 (if (edebug-after= ... 198 ...) (edebug-after ... 205 ...))))) (edebug-after (edebug-before 2= 08) 223 (if (edebug-after (edebug-before 209) 219 (or (edebug-after ... 212= ...) (edebug-after ... 215 ...) (edebug-after ... 218 ...))) (edebug-after= (edebug-before 220) 222 (message "Wrote %s" (edebug-after 0 221 buffer-fil= e-name))))))))() edebug-default-enter(epa-file-write-region (nil nil "/Users/stardiviner/.= config/emacs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.= gpg" nil) (closure ((mustbenew) (lockname . "~/.config/emacs/secrets/authin= fo.gpg") (visit . t) (append) (file . "/Users/stardiviner/.config/emacs/sec= rets/authinfo....") (end . 1960) (start . 1) t) nil :closure-dont-trim-cont= ext (edebug-after (edebug-before 0) 4 (if (edebug-after 0 1 append) (edebug= -after (edebug-before 2) 3 (error "Can't append to the file")))) (edebug-af= ter (edebug-before 5) 9 (setq file (edebug-after (edebug-before 6) 8 (expan= d-file-name (edebug-after 0 7 file))))) (edebug-after (edebug-before 10) 22= 4 (let* ((coding-system (edebug-after (edebug-before 11) 27 (or ... ...))) = (context (edebug-after (edebug-before 28) 29 (epg-make-context))) (coding-s= ystem-for-write 'binary) string entry (recipients (edebug-after (edebug-bef= ore 30) 41 (cond ... ...))) buffer) (edebug-after (edebug-before 42) 49 (ep= g-context-set-passphrase-callback (edebug-after 0 43 context) (edebug-after= (edebug-before 44) 48 (cons ... ...)))) (edebug-after (edebug-before 50) 5= 9 (epg-context-set-progress-callback (edebug-after 0 51 context) (edebug-af= ter (edebug-before 52) 58 (cons ... ...)))) (edebug-after (edebug-before 60= ) 65 (let ((cl-x ...)) (or (let ... ...) (signal ... ...)) (let* (...) (ede= bug-after ... 63 ...)))) (edebug-after (edebug-before 66) 164 (condition-ca= se error (edebug-after (edebug-before 67) 142 (setq string ...)) (error (ed= ebug-after ... 145 ...) (edebug-after ... 156 ...) (edebug-after ... 163 ..= .)))) (edebug-after (edebug-before 165) 176 (epa-file-run-real-handler (ede= bug-after (edebug-before 166) 167 #'write-region) (edebug-after (edebug-bef= ore 168) 175 (list ... nil ... ... ... ... ...)))) (edebug-after (edebug-be= fore 177) 183 (if (edebug-after (edebug-before 178) 179 (boundp ...)) (edeb= ug-after (edebug-before 180) 182 (setq last-coding-system-used ...)))) (ede= bug-after (edebug-before 184) 207 (if (edebug-after (edebug-before 185) 187= (eq ... t)) (edebug-after (edebug-before 188) 194 (progn ... ...)) (edebug= -after (edebug-before 195) 206 (if ... ...)))) (edebug-after (edebug-before= 208) 223 (if (edebug-after (edebug-before 209) 219 (or ... ... ...)) (edeb= ug-after (edebug-before 220) 222 (message "Wrote %s" ...)))))))) edebug-default-enter(epa-file-write-region (nil nil "/Users/stardiviner/.= config/emacs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.= gpg" nil) (closure ((mustbenew) (lockname . "~/.config/emacs/secrets/authin= fo.gpg") (visit . t) (append) (file . "/Users/stardiviner/.config/emacs/sec= rets/authinfo....") (end . 1960) (start . 1) t) nil :closure-dont-trim-cont= ext (edebug-after (edebug-before 0) 4 (if (edebug-after 0 1 append) (edebug= -after (edebug-before 2) 3 (error "Can't append to the file")))) (edebug-af= ter (edebug-before 5) 9 (setq file (edebug-after (edebug-before 6) 8 (expan= d-file-name (edebug-after 0 7 file))))) (edebug-after (edebug-before 10) 22= 4 (let* ((coding-system (edebug-after (edebug-before 11) 27 (or ... ...))) = (context (edebug-after (edebug-before 28) 29 (epg-make-context))) (coding-s= ystem-for-write 'binary) string entry (recipients (edebug-after (edebug-bef= ore 30) 41 (cond ... ...))) buffer) (edebug-after (edebug-before 42) 49 (ep= g-context-set-passphrase-callback (edebug-after 0 43 context) (edebug-after= (edebug-before 44) 48 (cons ... ...)))) (edebug-after (edebug-before 50) 5= 9 (epg-context-set-progress-callback (edebug-after 0 51 context) (edebug-af= ter (edebug-before 52) 58 (cons ... ...)))) (edebug-after (edebug-before 60= ) 65 (let ((cl-x ...)) (or (let ... ...) (signal ... ...)) (let* (...) (ede= bug-after ... 63 ...)))) (edebug-after (edebug-before 66) 164 (condition-ca= se error (edebug-after (edebug-before 67) 142 (setq string ...)) (error (ed= ebug-after ... 145 ...) (edebug-after ... 156 ...) (edebug-after ... 163 ..= .)))) (edebug-after (edebug-before 165) 176 (epa-file-run-real-handler (ede= bug-after (edebug-before 166) 167 #'write-region) (edebug-after (edebug-bef= ore 168) 175 (list ... nil ... ... ... ... ...)))) (edebug-after (edebug-be= fore 177) 183 (if (edebug-after (edebug-before 178) 179 (boundp ...)) (edeb= ug-after (edebug-before 180) 182 (setq last-coding-system-used ...)))) (ede= bug-after (edebug-before 184) 207 (if (edebug-after (edebug-before 185) 187= (eq ... t)) (edebug-after (edebug-before 188) 194 (progn ... ...)) (edebug= -after (edebug-before 195) 206 (if ... ...)))) (edebug-after (edebug-before= 208) 223 (if (edebug-after (edebug-before 209) 219 (or ... ... ...)) (edeb= ug-after (edebug-before 220) 222 (message "Wrote %s" ...)))))))) edebug-enter(epa-file-write-region (nil nil "/Users/stardiviner/.config/e= macs/secrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil= ) (closure ((mustbenew) (lockname . "~/.config/emacs/secrets/authinfo.gpg")= (visit . t) (append) (file . "/Users/stardiviner/.config/emacs/secrets/aut= hinfo....") (end . 1960) (start . 1) t) nil :closure-dont-trim-context (ede= bug-after (edebug-before 0) 4 (if (edebug-after 0 1 append) (edebug-after (= edebug-before 2) 3 (error "Can't append to the file")))) (edebug-after (ede= bug-before 5) 9 (setq file (edebug-after (edebug-before 6) 8 (expand-file-n= ame (edebug-after 0 7 file))))) (edebug-after (edebug-before 10) 224 (let* = ((coding-system (edebug-after (edebug-before 11) 27 (or ... ...))) (context= (edebug-after (edebug-before 28) 29 (epg-make-context))) (coding-system-fo= r-write 'binary) string entry (recipients (edebug-after (edebug-before 30) = 41 (cond ... ...))) buffer) (edebug-after (edebug-before 42) 49 (epg-contex= t-set-passphrase-callback (edebug-after 0 43 context) (edebug-after (edebug= -before 44) 48 (cons ... ...)))) (edebug-after (edebug-before 50) 59 (epg-c= ontext-set-progress-callback (edebug-after 0 51 context) (edebug-after (ede= bug-before 52) 58 (cons ... ...)))) (edebug-after (edebug-before 60) 65 (le= t ((cl-x ...)) (or (let ... ...) (signal ... ...)) (let* (...) (edebug-afte= r ... 63 ...)))) (edebug-after (edebug-before 66) 164 (condition-case error= (edebug-after (edebug-before 67) 142 (setq string ...)) (error (edebug-aft= er ... 145 ...) (edebug-after ... 156 ...) (edebug-after ... 163 ...)))) (e= debug-after (edebug-before 165) 176 (epa-file-run-real-handler (edebug-afte= r (edebug-before 166) 167 #'write-region) (edebug-after (edebug-before 168)= 175 (list ... nil ... ... ... ... ...)))) (edebug-after (edebug-before 177= ) 183 (if (edebug-after (edebug-before 178) 179 (boundp ...)) (edebug-after= (edebug-before 180) 182 (setq last-coding-system-used ...)))) (edebug-afte= r (edebug-before 184) 207 (if (edebug-after (edebug-before 185) 187 (eq ...= t)) (edebug-after (edebug-before 188) 194 (progn ... ...)) (edebug-after (= edebug-before 195) 206 (if ... ...)))) (edebug-after (edebug-before 208) 22= 3 (if (edebug-after (edebug-before 209) 219 (or ... ... ...)) (edebug-after= (edebug-before 220) 222 (message "Wrote %s" ...)))))))) epa-file-write-region(nil nil "/Users/stardiviner/.config/emacs/secrets/a= uthinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil) apply(epa-file-write-region (nil nil "/Users/stardiviner/.config/emacs/se= crets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil)) (if (and op (not epa-inhibit)) (apply op args) (epa-file-run-real-handler= operation args)) (let ((op (get operation 'epa-file))) (if (and op (not epa-inhibit)) (app= ly op args) (epa-file-run-real-handler operation args))) (progn (let ((op (get operation 'epa-file))) (if (and op (not epa-inhibit= )) (apply op args) (epa-file-run-real-handler operation args)))) (unwind-protect (progn (let ((op (get operation 'epa-file))) (if (and op = (not epa-inhibit)) (apply op args) (epa-file-run-real-handler operation arg= s)))) (set-match-data saved-match-data t)) (let ((saved-match-data (match-data))) (unwind-protect (progn (let ((op (= get operation 'epa-file))) (if (and op (not epa-inhibit)) (apply op args) (= epa-file-run-real-handler operation args)))) (set-match-data saved-match-da= ta t))) epa-file-handler(write-region nil nil "/Users/stardiviner/.config/emacs/s= ecrets/authinfo...." nil t "~/.config/emacs/secrets/authinfo.gpg" nil) write-region(nil nil "/Users/stardiviner/.config/emacs/secrets/authinfo..= .." nil t "~/.config/emacs/secrets/authinfo.gpg") basic-save-buffer-2() basic-save-buffer-1() basic-save-buffer(nil) save-buffer() #f(compiled-function (buffer) #)(#) map-y-or-n-p(#f(compiled-function (buffer) #)= #f(compiled-function (buffer) #) (#) ("buffer" "buffers" "save") ((18 #f(compiled-function (buf) #) "view this buffer") (6 #f(compiled-function (= buf) #) "view this buffer and quit") (100 #f(co= mpiled-function (buf) #) "view changes in this= buffer"))) save-some-buffers(:no-prompt #f(compiled-function () #)) apply(save-some-buffers (:no-prompt #f(compiled-function () #))) timer-event-handler([t 0 5 0 :repeat save-some-buffers (:no-prompt #f(com= piled-function () #)) idle 0 nil]) recursive-edit() edebug--recursive-edit(after) edebug--display-1((#s(epg-key :owner-trust ultimate :sub-key-list (#s(epg= -sub-key :validity ultimate :capability (sign certify) :secret-p nil :algor= ithm 1 :length 2048 :id "1B5DF1C95AE89AC3" :creation-time 1422686308 :expir= ation-time nil :fingerprint "F09F650D7D674819892591401B5DF1C95AE89AC3") #s(= epg-sub-key :validity ultimate :capability (encrypt) :secret-p nil :algorit= hm 1 :length 2048 :id "0251FA6886EB6B77" :creation-time 1422686308 :expirat= ion-time nil :fingerprint "32A8581A6E137ABD26DA2F570251FA6886EB6B77")) :use= r-id-list (#s(epg-user-id :validity ultimate :string "stardiviner (numbchil= d@gmail.com) This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Home: /Users/stardiviner/.gnupg Supported algorithms: Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 Compression: Uncompressed, ZIP, ZLIB, BZIP2 #+end_src #+begin_src emacs-lisp (emacs-version) #+end_src #+RESULTS[(2023-05-02 10:57:56) ad277f3210da682b9a8f2b15d7843ef0163e6cf2]: : GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin22.4.0, NS appkit-2299.50= Version 13.3.1 (Build 22E261)) : of 2023-04-27 Here is what I tried some troubleshooting: - [X] troubleshooting + [X] uninstall newly installed Emacs packages "chatgpt-shell" etc. + [X] check out GnuPG config files + [X] redo encrypt & sign =3Dauthinfo.gpg=3D file + [X] emacs minimal config for reproduce -> confirmed problem - [X] search + [X] https://superuser.com/questions/366035/how-can-i-disable-prompt-abo= ut-trust-when-encrypting-file-with-gpg-in-emacs + [X] https://superuser.com/questions/1204820/emacs-easypg-asks-what-key-= to-use-although-epa-file-encrypt-to-already-specified - [X] troubleshooting - [X] src_emacs-lisp{(getenv "DISPLAY")} {{{results(=3Dssh-askpass=3D)}}} - [X] edebug + [X] save-buffer - [X] epa-file-handler + [X] epa-file-write-region - [X] epg-encrypt-string + [X] epg-start-encrypt - [X] epg-wait-for-status + [X] accept-process-output -> the process seems return 1 exi= t code? - [X] epg context #+begin_src emacs-lisp (epg-make-context) #+end_src #+RESULTS[(2023-05-02 09:42:28) ff5134e662dc53f52cd8e5807acefe25a94cc5c3]: : #s(epg-context :protocol OpenPGP :program "/opt/homebrew/bin/gpg" :home-d= irectory "/Users/stardiviner/.gnupg" :armor nil :textmode nil :include-cert= s nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil := passphrase-callback (epa-passphrase-callback-function) :progress-callback n= il :edit-callback nil :signers nil :sender nil :sig-notations nil :process = nil :output-file nil :result nil :operation nil :pinentry-mode loopback :er= ror-output "" :error-buffer nil) - [X] find bellowing two key ID belongs where Untrusted key "AEDA8A17BB08B786" ---> fingerprint "0DEF7425E79FE2E0090B424B= AEDA8A17BB08B786" --> my old key ((invalid-recipient (reason . 10) (requested . "B8C4B8E547C32433"))) --> "F= 09F650D7D674819892591401B5DF1C95AE89AC3" --> my current new gnupg key Question: I don't know why my current gnupg key and old gnupg key are toget= her. #+begin_src sh gpg --list-public-keys 0DEF7425E79FE2E0090B424BAEDA8A17BB08B786 #+end_src #+RESULTS[(2023-05-02 10:28:48) 8315506b0a6956294dbacb0276a25b482a834e5c]: : pub rsa2048 2012-03-02 [SC] : 9BAA92BCCDDDB9EF3B36CB99B8C4B8E547C32433 : uid [ultimate] Christopher Miles (stardiviner, numbchild) : sub rsa2048 2012-03-02 [E] : #+begin_src sh :eval no gpg --edit-key 0DEF7425E79FE2E0090B424BAEDA8A17BB08B786 #+end_src - [X] downgrade macOS Homebrew installed GnuPG version Formula: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/gnup= g.rb History: https://github.com/Homebrew/homebrew-core/commits/c72069733f8b12= 857afe9a9cdd1c9a73bc16f4a8/Formula/gnupg.rb #+begin_src sh brew install gnupg@2.2 #+end_src - [X] restart macOS system - [X] =3D$ emacs-minimal-init=3D + [X] open and save modified "authinfo.gpg" file success - [X] try to re-install gnupg broken version, re-install emacs@30 through H= omebrew -> still have problem, so I think problem is not on Emacs side. - [X] testing decrypt & encrypting in terminal and Emacs shell with gpg com= mand. + [X] test decrypt & encrypt in terminal with gpg command is fine. + [X] test decrypt & encrypt in Emacs =3D[M-x shell]=3D with gpg command = is fine. #+begin_example bash-5.2$ bash-5.2$ bash-5.2$ pwd /Users/stardiviner/.config/emacs/secrets bash-5.2$ gpg -d authinfo.gpg > authinfo gpg: encrypted with rsa2048 key, ID 0251FA6886EB6B77, created 2015-01-31 "stardiviner (numbchild@gmail.com) " gpg: encrypted with rsa2048 key, ID AEDA8A17BB08B786, created 2012-03-02 "Christopher Miles (stardiviner, numbchild) " gpg: using "F09F650D7D674819892591401B5DF1C95AE89AC3" as default secret= key for signing bash-5.2$ ls accounts.json.gpg authinfo authinfo.gpg bash-5.2$ #+end_example + [X] test decrypt & encrypt in Emacs with ~start-process~ -> works fine #+begin_src emacs-lisp :dir "~/.config/emacs/secrets/" :results output (let ((output-buffer "*gnupg-decrypt*")) (pwd) (when (get-buffer output-buffer) (with-current-buffer (get-buffer output-buffer) (erase-buffer))) (start-process "gnupg-testing" output-buffer "gpg" "--decrypt" "authinfo.gpg" ;; ">" "authinfo" ) (sleep-for 2) (print (with-current-buffer (get-buffer output-buffer) (buffer-substring-no-properties (point-min) (point-max))))) #+end_src - [X] This reminds me of https://orgmode.org/list/2023-01-22T18-32-17@devnu= ll.Karl-Voit.at Check out my private key info: #+begin_src sh # gpg -K gpg --list-secret-keys --verbose --with-subkey-fingerprints #+end_src #+RESULTS[(2023-05-03 01:41:09) 80ae7b09060704481af2e01ae6f6086262d4a05c]: #+begin_example /Users/stardiviner/.gnupg/pubring.kbx ------------------------------------- sec rsa2048 2015-01-31 [SC] F09F650D7D674819892591401B5DF1C95AE89AC3 uid [ultimate] stardiviner (numbchild@gmail.com) uid [ultimate] stardiviner (Christopher Miles) uid [ultimate] [jpeg image of size 3384] ssb rsa2048 2015-01-31 [E] 32A8581A6E137ABD26DA2F570251FA6886EB6B77 #+end_example - [X] [[mu4e:msgid:87354esdhk.fsf@localhost][The further step we can try is= following what epg does.]] I am now looking into ~epg--start~ source code and I note ~epg-debug~ var= iable, which might provide some more info to think about. Also, note the ~make-process~ call in ~epg= --start~ - you may try to run it manually, similar to ~start-process~ and check if it fails. (For me, ~= :connection-type 'pipe~ part is a bit fishy - I recall there were some quirks related to it; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D44824 ... but it was the = opposite to having ~'pipe~ AFAIR). - [X] toggle option ~epg-debug~ #+begin_src emacs-lisp (setq epg-debug t) #+end_src #+begin_example :file "*epg-debug*" GPG_AGENT_INFO is not set /opt/homebrew/bin/gpg --no-tty --status-fd 1 --yes --enable-progress-filt= er --command-fd 0 --output /var/folders/ym/f3v5_yk1279g5ls70x3hzblh0000gn/T= /epg-outputMMP3Zp --pinentry-mode loopback --decrypt -- /Users/stardiviner/= .config/emacs/secrets/authinfo.gpg [GNUPG:] PROGRESS /Users/stardiviner/. ? 0 1204 B [GNUPG:] ENC_TO AEDA8A17BB08B786 1 0 [GNUPG:] ENC_TO 0251FA6886EB6B77 1 0 [GNUPG:] KEY_CONSIDERED F09F650D7D674819892591401B5DF1C95AE89AC3 0 [GNUPG:] KEY_CONSIDERED 9BAA92BCCDDDB9EF3B36CB99B8C4B8E547C32433 0 [GNUPG:] KEY_CONSIDERED F09F650D7D674819892591401B5DF1C95AE89AC3 0 [GNUPG:] KEY_CONSIDERED F09F650D7D674819892591401B5DF1C95AE89AC3 0 [GNUPG:] DECRYPTION_KEY 32A8581A6E137ABD26DA2F570251FA6886EB6B77 F09F650D= 7D674819892591401B5DF1C95AE89AC3 u [GNUPG:] NO_SECKEY AEDA8A17BB08B786 [GNUPG:] BEGIN_DECRYPTION [GNUPG:] DECRYPTION_INFO 2 7 0 [GNUPG:] PROGRESS /Users/stardiviner/. ? 1204 1204 B [GNUPG:] PLAINTEXT 62 1682998161 [GNUPG:] DECRYPTION_OKAY [GNUPG:] GOODMDC [GNUPG:] END_DECRYPTION GPG_AGENT_INFO is not set /opt/homebrew/bin/gpg --no-tty --status-fd 1 --yes --enable-progress-filt= er --command-fd 0 --output /var/folders/ym/f3v5_yk1279g5ls70x3hzblh0000gn/T= /epg-outputE3zoeh --pinentry-mode loopback --encrypt -r 1B5DF1C95AE89AC3 -r= B8C4B8E547C32433 [GNUPG:] KEY_CONSIDERED F09F650D7D674819892591401B5DF1C95AE89AC3 0 [GNUPG:] KEY_CONSIDERED 9BAA92BCCDDDB9EF3B36CB99B8C4B8E547C32433 0 [GNUPG:] KEY_CONSIDERED F09F650D7D674819892591401B5DF1C95AE89AC3 0 GPG_AGENT_INFO is not set /opt/homebrew/bin/gpg --no-tty --status-fd 1 --yes --enable-progress-filt= er --command-fd 0 --output /var/folders/ym/f3v5_yk1279g5ls70x3hzblh0000gn/T= /epg-outputxPZRrb --pinentry-mode loopback --encrypt -r 1B5DF1C95AE89AC3 -r= B8C4B8E547C32433 [GNUPG:] KEY_CONSIDERED F09F650D7D674819892591401B5DF1C95AE89AC3 0 [GNUPG:] KEY_CONSIDERED 9BAA92BCCDDDB9EF3B36CB99B8C4B8E547C32433 0 [GNUPG:] KEY_CONSIDERED F09F650D7D674819892591401B5DF1C95AE89AC3 0 #+end_example - [X] test the debug output buffer printed full command in terminal. (remov= e =3D--output=3D option to see the output) #+begin_src sh :eval no gpg --no-tty --status-fd 1 --yes --enable-progress-filter --command-fd 0 = --pinentry-mode loopback --decrypt -- /Users/stardiviner/.config/emacs/secr= ets/authinfo.gpg # after input password, it decrypted success #+end_src =20=20=20 The encrypt command seems missing input file. #+begin_src sh :eval no gpg --no-tty --status-fd 1 --yes --enable-progress-filter --command-fd 0 = --pinentry-mode loopback --encrypt -r 1B5DF1C95AE89AC3 -r B8C4B8E547C32433 #+end_src - [X] I look into ~epg--start~ source code. note the ~make-process~ call in= ~epg--start~ - you may try to run it manually, similar to ~start-process~ and check if it fails. (For m= e, ~:connection-type 'pipe~ part is a bit fishy.) #+begin_src emacs-lisp :eval no ;;; `epg-start-encrypt' -> `epg--start' (let ((context #s(epg-context :protocol OpenPGP :program "/opt/homebrew/bin/gpg" = :home-directory nil :armor nil :textmode nil :include-certs nil :cipher-alg= orithm nil :digest-algorithm nil :compress-algorithm nil :passphrase-callba= ck (epa-file-passphrase-callback-function . "/Users/stardiviner/.config/ema= cs/secrets/authinfo.gpg") :progress-callback (epa-progress-callback-functio= n . "Encrypting /Users/stardiviner/.config/emacs/secrets/authinfo.gpg") :ed= it-callback nil :signers nil :sender nil :sig-notations nil :process nil :o= utput-file "/var/folders/ym/f3v5_yk1279g5ls70x3hzblh0000gn/T/epg-outputsyLC= Lb" :result nil :operation encrypt :pinentry-mode loopback :error-output ""= :error-buffer nil)) (args '("--encrypt" #1=3D"-r" "1B5DF1C95AE89AC3" #1# "B8C4B8E547C32= 433")) (error-process (make-pipe-process :name "epg-error" :buffer (generate-new-buffer " *e= pg-error*") ;; Suppress "XXX finished" line. :sentinel #'ignore :noquery t))) (make-process :name "epg" :buffer (generate-new-buffer " *epg*") :command (cons (epg-context-program context) args) :connection-type 'pipe :coding 'raw-text :filter #'epg--process-filter :stderr error-process :noquery t)) #+end_src ------------------------------------------------------------------------ In GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin22.4.0, NS appkit-2299.50 Version 13.3.1 (Build 22E261)) of 2023-05-02 built on Mac-mini.local Windowing system distributor 'Apple', version 10.3.2299 System Description: macOS 13.3.1 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=3D/opt/homebrew/share/emacs/site-lisp --infodir=3D/opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/info/emacs --prefix=3D/opt/homebrew/Cellar/emacs-plus@30/30.0.50 --with-xml2 --with-gnutls --without-compress-install --with-dbus --with-imagemagick --with-modules --with-rsvg --with-ns --disable-ns-self-contained 'CFLAGS=3D-Os -w -pipe -mmacosx-version-min=3D13 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -DFD_SETSIZE=3D10000 -DDARWIN_UNLIMITED_SELECT' 'CPPFLAGS=3D-I/opt/homebrew/opt/libomp/include -I/opt/homebrew/opt/icu4c/include -I/opt/homebrew/opt/openssl@1.1/include -isystem/opt/homebrew/include -F/opt/homebrew/Frameworks -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk' 'LDFLAGS=3D-L/opt/homebrew/opt/libomp/lib -L/opt/homebrew/opt/icu4c/lib -L/opt/homebrew/opt/openssl@1.1/lib -L/opt/homebrew/lib -F/opt/homebrew/Frameworks -Wl,-headerpad_max_install_names -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk'' Configured features: ACL DBUS GIF GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB Important settings: locale-coding-system: utf-8 Major mode: mu4e:headers Minor modes in effect: company-quickhelp-mode: t company-quickhelp-local-mode: t project-x-mode: t sly-symbol-completion-mode: t edebug-inline-result-mode: t treemacs-filewatch-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t TeX-PDF-mode: t org-media-note-mode: t rainbow-fart-mode: t global-jinx-mode: t marginalia-mode: t save-place-mode: t winner-mode: t global-edit-server-edit-mode: t global-atomic-chrome-edit-mode: t org-link-beautify-mode: t global-hl-todo-mode: t projectile-mode: t eyebrowse-mode: t yas-global-mode: t yas-minor-mode: t global-flycheck-mode: t mu4e-marker-icons-mode: t mu4e-search-minor-mode: t global-hl-line-mode: t hl-line-mode: t mu4e-update-minor-mode: t mu4e-context-minor-mode: t mu4e-modeline-mode: t org-edna-mode: t org-tag-beautify-mode: t global-git-commit-mode: t magit-auto-revert-mode: t savehist-mode: t recentf-mode: t pdf-occur-global-minor-mode: t corfu-history-mode: t corfu-popupinfo-mode: t corfu-prescient-mode: t tramp-auto-auth-mode: t ace-pinyin-global-mode: t ace-pinyin-mode: t shell-dirtrack-mode: t golden-ratio-mode: t helm-top-poll-mode: t async-bytecomp-package-mode: t minibuffer-electric-default-mode: t minibuffer-depth-indicate-mode: t info-rename-buffer-mode: t global-ligature-mode: t ligature-mode: t vertico-multiform-mode: t vertico-mode: t global-dash-fontify-mode: t override-global-mode: t server-mode: t tooltip-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t global-prettify-symbols-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t buffer-read-only: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t auto-save-visited-mode: t Load-path shadows: ~/Code/Emacs/org-contrib/lisp/ob-ledger hides /Users/stardiviner/.config/em= acs/init/extensions/ob-ledger ~/Code/Emacs/org-contrib/lisp/ob-asymptote hides /Users/stardiviner/.config= /emacs/init/extensions/ob-asymptote ~/Code/Emacs/org-extra-link-types/org-extra-link-types hides /Users/stardiv= iner/.config/emacs/elpa/org-extra-link-types-20220902.956/org-extra-link-ty= pes /Users/stardiviner/.config/emacs/elpa/worf-20220102.835/elpa hides /Users/s= tardiviner/.config/emacs/elpa/lispy-20230314.1738/elpa /Users/stardiviner/.config/emacs/init/extensions/libmpdee hides /Users/star= diviner/.config/emacs/elpa/libmpdee-20220825.957/libmpdee ~/Code/Emacs/org-contrib/lisp/ob-csharp hides /Users/stardiviner/.config/em= acs/elpa/ob-csharp-20160530.2249/ob-csharp ~/Code/Emacs/ob-translate/ob-translate hides /Users/stardiviner/.config/ema= cs/elpa/ob-translate-20170720.1919/ob-translate ~/Code/Emacs/org-ql/helm-org-ql hides /Users/stardiviner/.config/emacs/elpa= /helm-org-ql-20230310.1225/helm-org-ql ~/Code/Emacs/org-ql/org-ql-find hides /Users/stardiviner/.config/emacs/elpa= /org-ql-20230312.1433/org-ql-find ~/Code/Emacs/org-ql/org-ql-search hides /Users/stardiviner/.config/emacs/el= pa/org-ql-20230312.1433/org-ql-search ~/Code/Emacs/org-ql/org-ql-view hides /Users/stardiviner/.config/emacs/elpa= /org-ql-20230312.1433/org-ql-view ~/Code/Emacs/org-ql/org-ql hides /Users/stardiviner/.config/emacs/elpa/org-= ql-20230312.1433/org-ql ~/Code/Emacs/org-ql/org-ql-completing-read hides /Users/stardiviner/.config= /emacs/elpa/org-ql-20230312.1433/org-ql-completing-read /Users/stardiviner/.config/emacs/init/extensions/cal-china-x hides /Users/s= tardiviner/.config/emacs/elpa/cal-china-x-20200924.1837/cal-china-x ~/Code/Emacs/google-translate/google-translate-core-ui hides /Users/stardiv= iner/.config/emacs/elpa/google-translate-20220921.245/google-translate-core= -ui ~/Code/Emacs/google-translate/google-translate-core hides /Users/stardivine= r/.config/emacs/elpa/google-translate-20220921.245/google-translate-core ~/Code/Emacs/google-translate/google-translate-smooth-ui hides /Users/stard= iviner/.config/emacs/elpa/google-translate-20220921.245/google-translate-sm= ooth-ui ~/Code/Emacs/google-translate/google-translate hides /Users/stardiviner/.co= nfig/emacs/elpa/google-translate-20220921.245/google-translate ~/Code/Emacs/google-translate/google-translate-backend hides /Users/stardiv= iner/.config/emacs/elpa/google-translate-20220921.245/google-translate-back= end ~/Code/Emacs/google-translate/google-translate-default-ui hides /Users/star= diviner/.config/emacs/elpa/google-translate-20220921.245/google-translate-d= efault-ui /Users/stardiviner/.config/emacs/elpa/worf-20220102.835/elpa hides /Users/s= tardiviner/.config/emacs/elpa/ivy-20230410.1815/elpa /Users/stardiviner/.config/emacs/elpa/emacsql-sqlite-20230225.2205/emacsql-= sqlite hides /Users/stardiviner/.config/emacs/elpa/emacsql-20230417.1448/em= acsql-sqlite /Users/stardiviner/.config/emacs/elpa/cmake-mode-20230422.828/cmake-mode hi= des /opt/homebrew/share/emacs/site-lisp/cmake/cmake-mode /Users/stardiviner/.config/emacs/elpa/pcmpl-git-20170121.59/pcmpl-git hides= /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50/lisp/pcmpl-= git /Users/stardiviner/.config/emacs/elpa/transient-20230501.1034/transient hid= es /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50/lisp/tran= sient /Users/stardiviner/.config/emacs/elpa/external-completion-0.1/external-comp= letion hides /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50= /lisp/external-completion /Users/stardiviner/.config/emacs/elpa/use-package-20230426.2324/use-package= -jump hides /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50/= lisp/use-package/use-package-jump /Users/stardiviner/.config/emacs/elpa/use-package-20230426.2324/use-package= -diminish hides /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0= .50/lisp/use-package/use-package-diminish /Users/stardiviner/.config/emacs/elpa/use-package-20230426.2324/use-package= hides /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50/lisp/= use-package/use-package /Users/stardiviner/.config/emacs/elpa/use-package-20230426.2324/use-package= -delight hides /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.= 50/lisp/use-package/use-package-delight /Users/stardiviner/.config/emacs/elpa/use-package-20230426.2324/use-package= -lint hides /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50/= lisp/use-package/use-package-lint /Users/stardiviner/.config/emacs/elpa/bind-key-20230203.2004/bind-key hides= /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50/lisp/use-pa= ckage/bind-key /Users/stardiviner/.config/emacs/elpa/use-package-20230426.2324/use-package= -core hides /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50/= lisp/use-package/use-package-core /Users/stardiviner/.config/emacs/elpa/use-package-20230426.2324/use-package= -ensure hides /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.5= 0/lisp/use-package/use-package-ensure /Users/stardiviner/.config/emacs/elpa/use-package-20230426.2324/use-package= -bind-key hides /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0= .50/lisp/use-package/use-package-bind-key /Users/stardiviner/.config/emacs/elpa/eglot-20221020.1010/eglot hides /opt/= homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50/lisp/progmodes/eg= lot ~/Code/Emacs/org-mode/lisp/ob-comint hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-comint ~/Code/Emacs/org-mode/lisp/ob-exp hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-exp ~/Code/Emacs/org-mode/lisp/org-ctags hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-ctags ~/Code/Emacs/org-mode/lisp/ob-emacs-lisp hides /opt/homebrew/Cellar/emacs-p= lus@30/30.0.50/share/emacs/30.0.50/lisp/org/ob-emacs-lisp ~/Code/Emacs/org-mode/lisp/oc hides /opt/homebrew/Cellar/emacs-plus@30/30.0= .50/share/emacs/30.0.50/lisp/org/oc ~/Code/Emacs/org-mode/lisp/ox-texinfo hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/ox-texinfo ~/Code/Emacs/org-mode/lisp/ol-irc hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ol-irc ~/Code/Emacs/org-mode/lisp/ol-doi hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ol-doi ~/Code/Emacs/org-mode/lisp/ob hides /opt/homebrew/Cellar/emacs-plus@30/30.0= .50/share/emacs/30.0.50/lisp/org/ob ~/Code/Emacs/org-mode/lisp/org-refile hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/org-refile ~/Code/Emacs/org-mode/lisp/org-version hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/org-version ~/Code/Emacs/org-mode/lisp/org-num hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/org-num ~/Code/Emacs/org-mode/lisp/ol-mhe hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ol-mhe ~/Code/Emacs/org-mode/lisp/ob-shell hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ob-shell ~/Code/Emacs/org-mode/lisp/org-attach hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/org-attach ~/Code/Emacs/org-mode/lisp/ob-C hides /opt/homebrew/Cellar/emacs-plus@30/30= .0.50/share/emacs/30.0.50/lisp/org/ob-C ~/Code/Emacs/org-mode/lisp/org-macs hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/org-macs ~/Code/Emacs/org-mode/lisp/org-entities hides /opt/homebrew/Cellar/emacs-pl= us@30/30.0.50/share/emacs/30.0.50/lisp/org/org-entities ~/Code/Emacs/org-mode/lisp/ob-dot hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-dot ~/Code/Emacs/org-mode/lisp/ob-sql hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-sql ~/Code/Emacs/org-mode/lisp/ol-eww hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ol-eww ~/Code/Emacs/org-mode/lisp/org-datetree hides /opt/homebrew/Cellar/emacs-pl= us@30/30.0.50/share/emacs/30.0.50/lisp/org/org-datetree ~/Code/Emacs/org-mode/lisp/org-macro hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-macro ~/Code/Emacs/org-mode/lisp/ob-eval hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ob-eval ~/Code/Emacs/org-mode/lisp/ob-haskell hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/ob-haskell ~/Code/Emacs/org-mode/lisp/ox-org hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ox-org ~/Code/Emacs/org-mode/lisp/ol-rmail hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ol-rmail ~/Code/Emacs/org-mode/lisp/ob-awk hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-awk ~/Code/Emacs/org-mode/lisp/ob-groovy hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-groovy ~/Code/Emacs/org-mode/lisp/ox-icalendar hides /opt/homebrew/Cellar/emacs-pl= us@30/30.0.50/share/emacs/30.0.50/lisp/org/ox-icalendar ~/Code/Emacs/org-mode/lisp/ob-octave hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-octave ~/Code/Emacs/org-mode/lisp/ob-scheme hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-scheme ~/Code/Emacs/org-mode/lisp/org-mobile hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/org-mobile ~/Code/Emacs/org-mode/lisp/ob-processing hides /opt/homebrew/Cellar/emacs-p= lus@30/30.0.50/share/emacs/30.0.50/lisp/org/ob-processing ~/Code/Emacs/org-mode/lisp/oc-biblatex hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/oc-biblatex ~/Code/Emacs/org-mode/lisp/oc-csl hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/oc-csl ~/Code/Emacs/org-mode/lisp/org-colview hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/org-colview ~/Code/Emacs/org-mode/lisp/ob-R hides /opt/homebrew/Cellar/emacs-plus@30/30= .0.50/share/emacs/30.0.50/lisp/org/ob-R ~/Code/Emacs/org-mode/lisp/org-table hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-table ~/Code/Emacs/org-mode/lisp/ox-html hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ox-html ~/Code/Emacs/org-mode/lisp/ob-fortran hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/ob-fortran ~/Code/Emacs/org-mode/lisp/ol hides /opt/homebrew/Cellar/emacs-plus@30/30.0= .50/share/emacs/30.0.50/lisp/org/ol ~/Code/Emacs/org-mode/lisp/ob-plantuml hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/ob-plantuml ~/Code/Emacs/org-mode/lisp/ol-docview hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/ol-docview ~/Code/Emacs/org-mode/lisp/ob-perl hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ob-perl ~/Code/Emacs/org-mode/lisp/ob-sqlite hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-sqlite ~/Code/Emacs/org-mode/lisp/oc-basic hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/oc-basic ~/Code/Emacs/org-mode/lisp/ob-sed hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-sed ~/Code/Emacs/org-mode/lisp/org-fold-core hides /opt/homebrew/Cellar/emacs-p= lus@30/30.0.50/share/emacs/30.0.50/lisp/org/org-fold-core ~/Code/Emacs/org-mode/lisp/ob-ditaa hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ob-ditaa ~/Code/Emacs/org-mode/lisp/ob-ruby hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ob-ruby ~/Code/Emacs/org-mode/lisp/oc-bibtex hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/oc-bibtex ~/Code/Emacs/org-mode/lisp/org-habit hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-habit ~/Code/Emacs/org-mode/lisp/org-loaddefs hides /opt/homebrew/Cellar/emacs-pl= us@30/30.0.50/share/emacs/30.0.50/lisp/org/org-loaddefs ~/Code/Emacs/org-mode/lisp/ol-gnus hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ol-gnus ~/Code/Emacs/org-mode/lisp/ob-screen hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-screen ~/Code/Emacs/org-mode/lisp/org-mouse hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-mouse ~/Code/Emacs/org-mode/lisp/ob-css hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-css ~/Code/Emacs/org-mode/lisp/org-inlinetask hides /opt/homebrew/Cellar/emacs-= plus@30/30.0.50/share/emacs/30.0.50/lisp/org/org-inlinetask ~/Code/Emacs/org-mode/lisp/ob-lisp hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ob-lisp ~/Code/Emacs/org-mode/lisp/ol-eshell hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ol-eshell ~/Code/Emacs/org-mode/lisp/org-pcomplete hides /opt/homebrew/Cellar/emacs-p= lus@30/30.0.50/share/emacs/30.0.50/lisp/org/org-pcomplete ~/Code/Emacs/org-mode/lisp/org-lint hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/org-lint ~/Code/Emacs/org-mode/lisp/org-id hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/org-id ~/Code/Emacs/org-mode/lisp/org-capture hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/org-capture ~/Code/Emacs/org-mode/lisp/ob-sass hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ob-sass ~/Code/Emacs/org-mode/lisp/ob-tangle hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-tangle ~/Code/Emacs/org-mode/lisp/ob-calc hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ob-calc ~/Code/Emacs/org-mode/lisp/ob-java hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ob-java ~/Code/Emacs/org-mode/lisp/org-compat hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/org-compat ~/Code/Emacs/org-mode/lisp/org-attach-git hides /opt/homebrew/Cellar/emacs-= plus@30/30.0.50/share/emacs/30.0.50/lisp/org/org-attach-git ~/Code/Emacs/org-mode/lisp/ox-beamer hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ox-beamer ~/Code/Emacs/org-mode/lisp/org-protocol hides /opt/homebrew/Cellar/emacs-pl= us@30/30.0.50/share/emacs/30.0.50/lisp/org/org-protocol ~/Code/Emacs/org-mode/lisp/org-element hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/org-element ~/Code/Emacs/org-mode/lisp/ob-lob hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-lob ~/Code/Emacs/org-mode/lisp/org-tempo hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-tempo ~/Code/Emacs/org-mode/lisp/ob-python hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-python ~/Code/Emacs/org-mode/lisp/ob-latex hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ob-latex ~/Code/Emacs/org-mode/lisp/ol-w3m hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ol-w3m ~/Code/Emacs/org-mode/lisp/org-agenda hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/org-agenda ~/Code/Emacs/org-mode/lisp/org-persist hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/org-persist ~/Code/Emacs/org-mode/lisp/ob-ocaml hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ob-ocaml ~/Code/Emacs/org-mode/lisp/ob-ref hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-ref ~/Code/Emacs/org-mode/lisp/org-fold hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/org-fold ~/Code/Emacs/org-mode/lisp/ob-julia hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ob-julia ~/Code/Emacs/org-mode/lisp/ob-lilypond hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/ob-lilypond ~/Code/Emacs/org-mode/lisp/ob-table hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ob-table ~/Code/Emacs/org-mode/lisp/ob-clojure hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/ob-clojure ~/Code/Emacs/org-mode/lisp/org-indent hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/org-indent ~/Code/Emacs/org-mode/lisp/org-plot hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/org-plot ~/Code/Emacs/org-mode/lisp/ox-latex hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ox-latex ~/Code/Emacs/org-mode/lisp/org-src hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/org-src ~/Code/Emacs/org-mode/lisp/org-duration hides /opt/homebrew/Cellar/emacs-pl= us@30/30.0.50/share/emacs/30.0.50/lisp/org/org-duration ~/Code/Emacs/org-mode/lisp/ob-makefile hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/ob-makefile ~/Code/Emacs/org-mode/lisp/ol-info hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ol-info ~/Code/Emacs/org-mode/lisp/org-clock hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-clock ~/Code/Emacs/org-mode/lisp/ob-forth hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ob-forth ~/Code/Emacs/org-mode/lisp/ox-odt hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ox-odt ~/Code/Emacs/org-mode/lisp/ol-man hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ol-man ~/Code/Emacs/org-mode/lisp/ox-publish hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/ox-publish ~/Code/Emacs/org-mode/lisp/org-archive hides /opt/homebrew/Cellar/emacs-plu= s@30/30.0.50/share/emacs/30.0.50/lisp/org/org-archive ~/Code/Emacs/org-mode/lisp/ob-org hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-org ~/Code/Emacs/org-mode/lisp/ob-lua hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ob-lua ~/Code/Emacs/org-mode/lisp/org-keys hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/org-keys ~/Code/Emacs/org-mode/lisp/ob-eshell hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-eshell ~/Code/Emacs/org-mode/lisp/org-faces hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-faces ~/Code/Emacs/org-mode/lisp/ox-man hides /opt/homebrew/Cellar/emacs-plus@30/= 30.0.50/share/emacs/30.0.50/lisp/org/ox-man ~/Code/Emacs/org-mode/lisp/org-list hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/org-list ~/Code/Emacs/org-mode/lisp/ox-md hides /opt/homebrew/Cellar/emacs-plus@30/3= 0.0.50/share/emacs/30.0.50/lisp/org/ox-md ~/Code/Emacs/org-mode/lisp/org-goto hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/org-goto ~/Code/Emacs/org-mode/lisp/ol-bbdb hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ol-bbdb ~/Code/Emacs/org-mode/lisp/org hides /opt/homebrew/Cellar/emacs-plus@30/30.= 0.50/share/emacs/30.0.50/lisp/org/org ~/Code/Emacs/org-mode/lisp/ol-bibtex hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ol-bibtex ~/Code/Emacs/org-mode/lisp/ox-koma-letter hides /opt/homebrew/Cellar/emacs-= plus@30/30.0.50/share/emacs/30.0.50/lisp/org/ox-koma-letter ~/Code/Emacs/org-mode/lisp/ox-ascii hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/ox-ascii ~/Code/Emacs/org-mode/lisp/ob-matlab hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-matlab ~/Code/Emacs/org-mode/lisp/ox hides /opt/homebrew/Cellar/emacs-plus@30/30.0= .50/share/emacs/30.0.50/lisp/org/ox ~/Code/Emacs/org-mode/lisp/org-timer hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-timer ~/Code/Emacs/org-mode/lisp/oc-natbib hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/oc-natbib ~/Code/Emacs/org-mode/lisp/ob-core hides /opt/homebrew/Cellar/emacs-plus@30= /30.0.50/share/emacs/30.0.50/lisp/org/ob-core ~/Code/Emacs/org-mode/lisp/org-feed hides /opt/homebrew/Cellar/emacs-plus@3= 0/30.0.50/share/emacs/30.0.50/lisp/org/org-feed ~/Code/Emacs/org-mode/lisp/ob-gnuplot hides /opt/homebrew/Cellar/emacs-plus= @30/30.0.50/share/emacs/30.0.50/lisp/org/ob-gnuplot ~/Code/Emacs/org-mode/lisp/ob-js hides /opt/homebrew/Cellar/emacs-plus@30/3= 0.0.50/share/emacs/30.0.50/lisp/org/ob-js ~/Code/Emacs/org-mode/lisp/org-footnote hides /opt/homebrew/Cellar/emacs-pl= us@30/30.0.50/share/emacs/30.0.50/lisp/org/org-footnote ~/Code/Emacs/org-mode/lisp/ob-maxima hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/ob-maxima ~/Code/Emacs/org-mode/lisp/org-cycle hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-cycle ~/Code/Emacs/org-mode/lisp/org-crypt hides /opt/homebrew/Cellar/emacs-plus@= 30/30.0.50/share/emacs/30.0.50/lisp/org/org-crypt /Users/stardiviner/.config/emacs/elpa/hierarchy-20190425.842/hierarchy hide= s /opt/homebrew/Cellar/emacs-plus@30/30.0.50/share/emacs/30.0.50/lisp/emacs= -lisp/hierarchy Features: (shadow emacsbug lsp-ui lsp-ui-flycheck lsp-ui-doc lsp-ui-imenu lsp-ui-peek lsp-ui-sideline lsp-ui-util webjump pcre2el rxt re-builder wdired all-the-icons-dired all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons cal-move org-lint diredfl nerd-icons-dired diff-hl-dired wraplish wraplish-epc misearch multi-isearch visual-regexp-steroids visual-regexp git-rebase cargo-mode racer flycheck-rust rust-utils rust-mode rust-rustfmt rust-playpen rust-compile rust-cargo tabify sql-indent sqlup-mode flyspell ispell company-quickhelp pos-tip company-files company-abbrev company-dabbrev-code company-dabbrev company-keywords company-capf company-yasnippet ejc-company ejc-sql ejc-completion-common ejc-doc ejc-interaction clomacs cider tramp-sh cider-debug cider-browse-ns cider-mode cider-find cider-inspector cider-completion cider-profile cider-eval cider-jar cider-repl-history cider-repl cider-resolve cider-test cider-overlays cider-stacktrace cider-doc cider-browse-spec cider-clojuredocs cider-eldoc cider-client cider-common cider-connection cider-util cider-popup sesman-browser nrepl-client queue nrepl-dict parseedn parseclj-parser parseclj-lex parseclj-alist ejc-eldoc ejc-format ejc-result-buffer ejc-result-mode cua-base ejc-lib sql project-x ssh-agency embark-org embark-consult embark artist picture reporter julia-mode julia-mode-latexsubs ess-r-mode ess-r-flymake ess-r-xref ess-trns ess-r-package ess-r-completion ess-roxy ess-r-syntax ess-rd hideshow ess-s-lang ess-help ess-mode ess-inf ess-tracebug ess ess-utils ess-custom npm-mode perl-mode geiser-mode geiser-xref geiser-compile geiser-guile geiser-debug geiser-racket geiser-mit geiser-repl geiser-image geiser-capf geiser-doc geiser-menu geiser-autodoc geiser-edit geiser-completion geiser-eval geiser-connection geiser-syntax geiser-log geiser-popup emr-scheme scheme sly-fancy sly-tramp sly-indentation sly-cl-indent sly-stickers hi-lock sly-trace-dialog sly-fontifying-fu sly-package-fu sly-scratch sly-fancy-trace sly-fancy-inspector sly-mrepl sly-autodoc sly-parse sly sly-completion sly-buttons sly-messages sly-common apropos hyperspec magic-latex-buffer iimage reftex-dcr reftex-auc font-latex tex-mode org-archive mailalias footnote qp rectangular-region-mode ansible-doc yaml-mode sort smiley gnus-cite mail-extr textsec uni-scripts idna-mapping uni-confusable textsec-check external-dict vertico-indexed loaddefs-gen tar-mode mm-archive url-cache display-line-numbers bug-reference magit-extras magit-gitflow magit-popup magit-org-todos arduino-cli-mode company-arduino company-c-headers macrostep-c cmacexp macrostep flycheck-arduino ob-arduino arduino-mode ruby-tools robe etags fileloop inf-ruby ruby-mode symbol-overlay cl-print edebug-inline-result emmet-mode web-mode-edit-element web-mode-edit-element-elements web-mode-edit-element-utils web-mode-edit-element-attributes sesman clojure-mode align modern-cpp-font-lock irony-cdb-libclang irony-cdb-json irony-cdb-clang-complete irony-cdb irony-eldoc company-irony company-template irony-completion irony-snippet irony irony-iotask platformio-mode ace-window orderless whitespace info-colors helpful cc-langs trace info-look elisp-refs swiper ivy delsel ivy-faces ivy-overlay colir elfeed-link elfeed-show elfeed-search elfeed-csv elfeed elfeed-curl elfeed-log url-queue xml-query elfeed-db elfeed-lib consult-xref lsp-sqls lsp-dockerfile lsp-json lsp-yaml lsp-xml lsp-css lsp-svelte lsp-vetur lsp-html lsp-eslint lsp-javascript lsp-sourcekit lsp lsp-rust lsp-semantic-tokens dap-java lsp-java lsp-treemacs lsp-treemacs-generic lsp-treemacs-themes treemacs-treelib treemacs treemacs-header-line treemacs-compatibility treemacs-mode treemacs-bookmarks treemacs-tags treemacs-interface treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals treemacs-fringe-indicator treemacs-faces treemacs-icons treemacs-scope treemacs-themes treemacs-core-utils pfuture treemacs-logging treemacs-customization treemacs-macros lsp-go lsp-cmake lsp-clangd ccls ccls-member-hierarchy ccls-inheritance-hierarchy ccls-call-hierarchy ccls-tree ccls-code-lens ccls-semantic-highlight ccls-common cape-char cape-keyword cal-julian diary-lib diary-loaddefs cal-iso cus-start org-edit-latex preview latex latex-flymake tex-ispell tex-style tex texmathp org-html-themify htmlize org-download org-attach cdlatex reftex reftex-loaddefs reftex-vars face-remap image-file image-converter vertico-repeat consult org-media-note org-media-note-import org-media-note-mpv org-media-note-core ffmpeg-utils alert log4e gntp mpv org-timer pretty-hydra flycheck-inline paredit rainbow-delimiters highlight-blocks rainbow-fart cap-words superword subword indent-guide origami origami-parsers emr-c emr-iedit iedit iedit-lib mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core rect emr-elisp emr-lisp list-utils emr-prog emr diff-hl log-view vc-dir jinx marginalia saveplace winner edit-server atomic-chrome org-link-beautify hl-todo projectile eyebrowse init-emacs-workspace init-chef init-authoring init-text-checker init-data-science jupyter ob-jupyter jupyter-tramp tramp-cache time-stamp jupyter-server jupyter-server-ioloop jupyter-ioloop-comm jupyter-ioloop zmq zmq-core jupyter-rest-api jupyter-org-extensions jupyter-org-client jupyter-repl jupyter-kernel-manager jupyter-channel jupyter-widget-client simple-httpd jupyter-client jupyter-comm-layer jupyter-messages hmac-def jupyter-mime jupyter-kernelspec jupyter-env jupyter-base init-prog-framework-IoT init-arduino init-HTTP-RESTful walkman json-mode json-snatcher js c-ts-common ob-http ob-http-mode ob-restclient restclient-test restclient init-prog-framework-web company-web company-css company web-completion-data web-narrow-mode web-mode init-DevOps init-terraform terraform-mode hcl-mode init-ansible init-puppet init-vagrant init-container init-Singularity singularity-mode init-kubernetes init-docker init-GraphQL lsp-graphql init-NoSQL init-Neo4j ob-cypher init-MongoDB init-Redis ob-redis init-SQL init-PostgreSQL init-MySQL init-SQLite ob-sqlite flymake-sqlfluff init-data-query ob-dsq ob-sql init-csv init-json jsonian init-markup-Markdown init-markup-TeX init-prog-lang-matlab init-prog-lang-julia init-prog-lang-R ob-R init-prog-lang-javascript ob-typescript ob-deno ob-js init-prog-lang-css ob-css init-prog-lang-html init-prog-lang-java jarchive arc-mode archive-mode gradle-mode ob-java init-prog-lang-swift init-prog-lang-lua ob-lua init-prog-lang-rust eglot array ert jsonrpc flymake-proc flymake ob-rust init-prog-lang-C-common init-prog-tags ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs init-prog-lang-shell lsp-bash dap-python dap-mode dap-tasks dap-launch lsp-docker yaml dap-overlays lsp-pyright lsp-completion lsp-mode lsp-protocol gitignore-snippets yasnippet xref spinner network-stream markdown-mode edit-indirect inline ht ewoc init-prog-lang-ruby init-prog-lang-python conda pythonic ob-python python project-rootfile project init-prog-lang-clojure ob-clojurescript ob-clojure flycheck-joker flycheck-package package-lint finder flycheck init-prog-lang-scheme scheme-complete ob-scheme geiser-impl geiser-custom geiser-base geiser init-prog-lang-common-lisp init-sly init-prog-lang-emacs-lisp init-prog-lang-lisp init-prog-lsp init-prog-vcs init-prog-vcs-review init-prog-vcs-changelog magit-patch-changelog magit-patch init-prog-vcs-diff init-prog-vcs-git-github init-prog-vcs-git git-modes gitignore-mode gitconfig-mode conf-mode gitattributes-mode pcmpl-git init-prog-project init-prog-refactor init-prog-reformat reformatter init-prog-test init-prog-profiler init-prog-debugger init-prog-lint init-prog-build-system init-meson init-cmake cmake-ide levenshtein find-file init-make init-prog-compile init-prog-eval init-prog-document init-prog-document-wikipedia org-kiwix kiwix request init-prog-document-assistant init-prog-document-api init-prog-document-man init-prog-document-eldoc init-prog-sidebar init-prog-template init-prog-snippet init-prog-sense init-prog-folding init-prog-indent aggressive-indent init-prog-comment init-prog-code init-prog-license init-prog-programming init-tool-AI init-GPT ob-dall-e-shell dall-e-shell ob-chatgpt-shell chatgpt-shell shell-maker goto-addr ielm init-log-tools init-tool-uncensorship init-tool-utilities init-tool-video init-tool-audio init-tool-music init-tool-irc init-tool-paste ox-gfm ox-gist gist gh-gist gh-oauth gh-api logito gh-cache pcache gh-auth gh-common marshal gh-url url-http url-auth url-gw nsm gh-profile timezone init-tool-accounting ob-ledger init-tool-password-manager init-tool-contacts init-tool-read-it-later init-tool-podcast init-tool-rss init-tool-email init-mu4e mu4e-contrib mu4e-marker-icons mu4e mu4e-org mu4e-notification mu4e-main mu4e-view mu4e-headers mu4e-compose mu4e-draft mu4e-actions mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill hl-line mu4e-contacts mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window mu4e-obsolete init-tool-reading init-tool-sync init-tool-downloader init-tool-browser ace-link init-eww init-tool-network init-tool-painting init-tool-ascii init-tool-diagram init-mermaid init-blockdiag init-asymptote ob-asymptote init-ditaa init-Graphviz ob-dot init-UML init-tool-file init-tool-hex init-tool-tmux init-tool-remote init-SSH init-tool-keyboard init-tool-calculator init-tool-clock init-tool-ocr init-tool-translate google-translate-smooth-ui google-translate-core-ui ido google-translate-core google-translate-backend init-tool-dictionary init-tool-calendar cal-china-x holidays holiday-loaddefs cal-china lunar solar cal-dst init-language-chinese init-language-english init-languages init-org-mode init-org-drill init-org-password init-org-contacts org-contacts gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig init-org-presentation init-org-roam init-org-programming init-org-extensions org-crypt init-org-protocol org-protocol init-org-attach init-org-search org-ql peg org-duration org-goto init-org-publish ffap thingatpt ox-org init-org-import init-org-export hexrgb ox-md init-org-project-management init-org-agenda init-org-capture org-capture init-org-image init-org-latex org-latex-export-chinese-conf ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox init-org-babel org-superstar valign org-inline-anim org-edna oc-basic bibtex org-tempo tempo ob-org ob-shell init-org-clock org-mode-clocking-outside init-org-time init-org-property init-org-tag org-tag-beautify org-pretty-tags init-org-todo org-habit org-agenda org-inlinetask init-org-hyperlink org-excalidraw org-extra-link-types orgit magit-bookmark magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process magit-mode magit-git magit-base magit-section cursor-sensor crm ol-git-link ol-man ol-info ol-irc ol-eshell eshell init-org-table init-org-macro init-org-complete init-org-keybindings init-org-view init-org-document-structure org-clock init-emacs-accessibility init-emacs-network net-utils init-emacs-rpc deno-bridge websocket bindat init-emacs-subprocess init-emacs-comint init-emacs-shell ob-tmux run-command-recipes-racket run-command-recipes-java run-command-recipes-csharp run-command-recipes-cpp run-command-recipes-c run-command-recipes-python run-command-recipes-rust run-command-recipes-elisp run-command-recipes-haskell run-command-recipes-pandoc run-command-recipes-latex run-command-recipes-lib run-command-recipes-project run-command-recipes f f-shortdoc run-command run-command-runner-eat run-command-runner-vterm run-command-runner-compile run-command-runner-term run-command-selector-completing-read run-command-selector-ivy run-command-selector-helm run-command-util run-command-core dwim-shell-commands proced dwim-shell-command view dired-aux init-eshell eshell-prompt-extras em-dirs esh-mode esh-var em-ls esh-cmd esh-ext esh-proc esh-io esh-arg esh-module esh-groups esh-opt esh-util init-emacs-terminal init-emacs-overlay init-emacs-regex init-emacs-highlight init-emacs-search init-emacs-search-engine init-emacs-search-finder init-emacs-search-ripgrep rg rg-info-hack rg-menu rg-ibuffer rg-result wgrep-rg wgrep rg-history rg-header grep init-emacs-search-wgrep init-emacs-search-occur init-emacs-search-isearch init-emacs-abbrev dabbrev init-emacs-modes init-dired dired-quick-sort savehist init-emacs-ebook init-emacs-djvu init-emacs-pdf org-noter-pdftools org-pdftools pdf-annot facemenu org-noter org-noter-djvu djvu org-noter-nov nov recentf tree-widget esxml-query org-noter-pdf org-noter-core org-element org-persist xdg org-id avl-tree generator org-refile pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch let-alist pdf-misc pdf-tools compile pdf-view vc-git diff-mode edebug-x which-func imenu display-fill-column-indicator rainbow-mode xterm-color glyphless-mode corfu-history corfu-popupinfo corfu-prescient elec-pair matlab matlab-scan matlab-syntax matlab-compat pulse bookmark jka-compr pdf-cache pdf-info tq pdf-util pdf-macs image-mode exif init-emacs-image init-emacs-color init-emacs-file filesets init-tramp tramp-container tramp-auto-auth tramp-sudoedit vagrant-tramp term disp-table ehelp tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat ls-lisp init-emacs-macro init-emacs-outline allout init-emacs-keybinding init-emacs-annotate init-emacs-bookmark init-emacs-navigation ace-pinyin ace-jump-mode cl pinyinlib avy init-emacs-clipboard init-emacs-edit init-emacs-edit-server with-editor shell init-emacs-edit-sudo init-emacs-edit-indirect init-emacs-edit-multiple-cursors init-emacs-edit-tabulate init-emacs-edit-narrow init-emacs-edit-rectangle init-emacs-edit-electric init-emacs-typography init-emacs-region init-emacs-register init-emacs-kill-ring init-emacs-idle init-emacs-frame transient frameset init-emacs-window golden-ratio init-emacs-backup init-emacs-buffer init-emacs-minibuffer init-helm helm-sys helm-utils helm-help helm helm-global-bindings helm-core async-bytecomp helm-source helm-multi-match helm-lib vertico-directory minibuf-eldef mb-depth init-emacs-help info-rename-buffer init-emacs-notify notifications init-emacs-text-complete kind-icon svg-lib color cape-yasnippet cape corfu shut-up auto-complete-config external-completion init-emacs-completion prescient char-fold init-emacs-popup init-emacs-mode-line init-emacs-emoji init-emacs-prettify init-emacs-appearance nerd-icons nerd-icons-faces nerd-icons-data-material-design nerd-icons-data-font-logos nerd-icons-data-codicons nerd-icons-data-devicons nerd-icons-data-seti-ui-custom nerd-icons-data-weather-icons nerd-icons-data-font-awesome nerd-icons-data-powerline nerd-icons-data-octicons nerd-icons-data-pomicons nerd-icons-data-iec-power-symbols transwin init-emacs-theme doom-palenight-theme doom-themes doom-themes-base leuven-theme init-emacs-face init-emacs-font ligature init-emacs-encoding init-emacs-security auth-source-xoauth2 auth-source-pass smtpmail init-emacs-performance init-emacs-encrypt epa-file init-emacs-settings warnings cus-edit pp vertico-posframe vertico-multiform vertico compat posframe cus-load init-emacs-environment init-package-manager init-linux init-macOS init-prog-lang-applescript init-functions init-library ts s async deferred dash pinentry init-emacs-benchmark init-emacs-profiler benchmark-init init-emacs-debug edebug debug backtrace init-package orgtbl-ascii-plot org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit executable ob-comint org-pcomplete pcomplete comint ansi-osc ansi-color org-list org-footnote org-faces org-entities noutline outline icons ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar cal-loaddefs gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util text-property-search time-date mail-utils range wid-edit org-version org-compat org-macs format-spec lazy-load quelpa-use-package quelpa mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr help-fns radix-tree delight use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key use-package-core package-vc vc vc-dispatcher lisp-mnt finder-inf server magit-commit-mark-autoloads helm-org-rifle-autoloads realgud-lldb-autoloads kubernetes-autoloads counsel-tramp-autoloads counsel-projectile-autoloads auto-complete edmacro kmacro popup auto-complete-autoloads sideline-flycheck-autoloads elisp-demos-autoloads sideline-autoloads separedit-autoloads lazy-load-autoloads marginalia-autoloads atomic-chrome-autoloads httprepl-autoloads lsp-java-autoloads dap-mode-autoloads lsp-treemacs-autoloads dwim-shell-command-autoloads company-tabnine-autoloads lsp-pyright-autoloads graphviz-dot-mode-autoloads symbol-overlay-autoloads direx-autoloads logview-autoloads ob-powershell-autoloads cargo-mode-autoloads ein-autoloads org-tag-beautify-autoloads pomidor-autoloads ccls-autoloads dired-rsync-transient-autoloads skeletor-autoloads eros-autoloads jupyter-autoloads nerd-icons-dired-autoloads org-roam-bibtex-autoloads counsel-css-autoloads dired-narrow-autoloads transwin-autoloads yari-autoloads friendly-shell-command-autoloads rust-mode-autoloads cape-autoloads quickrun-autoloads pet-autoloads clj-deps-new-autoloads flycheck-package-autoloads nov-autoloads esxml-autoloads magit-lfs-autoloads org-anki-autoloads consult-flycheck-autoloads file-info-autoloads browse-at-remote-autoloads live-py-mode-autoloads org-extra-link-types-autoloads org-noter-pdftools-autoloads org-link-beautify-autoloads zmq-autoloads consult-org-roam-autoloads verb-autoloads mmm-mode-autoloads external-completion-autoloads detached-autoloads orderless-autoloads boxquote-autoloads orgit-autoloads graphql-autoloads lsp-ui-autoloads powershell-autoloads org-chef-autoloads orgtbl-ascii-plot-autoloads gnuplot-autoloads djvu-autoloads company-quickhelp-autoloads kubel-autoloads ftable-autoloads comint-mime-autoloads helm-dash-autoloads cargo-transient-autoloads ednc-autoloads kind-icon-autoloads systemd-autoloads svg-lib-autoloads jsonian-autoloads json-reformat-autoloads vc-msg-autoloads ace-link-autoloads org-contacts-autoloads consult-dash-autoloads csv-mode-autoloads helm-systemd-autoloads walkman-autoloads org-download-autoloads dired-rsync-autoloads org-mac-link-autoloads graphql-mode-autoloads jarchive-autoloads racket-mode-autoloads ob-http-autoloads embark-consult-autoloads vertico-posframe-autoloads xmind-org-autoloads restclient-test-autoloads helm-lib-babel-autoloads lua-mode-autoloads all-the-icons-dired-autoloads all-the-icons-autoloads treemacs-autoloads smartparens-autoloads binder-autoloads golden-ratio-autoloads emmet-mode-autoloads k8s-mode-autoloads org-inline-anim-autoloads auctex-autoloads tex-site org-bookmarks-extractor-autoloads ffmpeg-utils-autoloads proxy-mode-autoloads pfuture-autoloads org-ml-autoloads vertico-prescient-autoloads vertico-autoloads lsp-haskell-autoloads tide-autoloads realgud-pry-autoloads org-transclusion-autoloads focus-autoloads pg-autoloads gnu-elpa-keyring-update-autoloads websocket-autoloads company-math-autoloads realgud-node-debug-autoloads corfu-prescient-autoloads paredit-autoloads external-dict-autoloads json-process-client-autoloads ob-tmux-autoloads magit-patch-changelog-autoloads cargo-autoloads ob-chatgpt-shell-autoloads chatgpt-shell-autoloads counsel-osx-app-autoloads dired-sidebar-autoloads boxes-autoloads ob-dall-e-shell-autoloads ob-dsq-autoloads info-colors-autoloads no-clown-fiesta-theme-autoloads autothemer-autoloads puni-autoloads easy-mmode consult-dir-autoloads orgtbl-join-autoloads ptree-autoloads conda-autoloads cdlatex-autoloads org-board-autoloads xml-format-autoloads kele-autoloads expand-region-autoloads helm-posframe-autoloads rx company-restclient-autoloads know-your-http-well-autoloads robe-autoloads inf-ruby-autoloads journalctl-mode-autoloads circadian-autoloads org-pdftools-autoloads org-noter-autoloads pdf-tools-autoloads forge-autoloads org-mime-autoloads org-tree-slide-autoloads tramp-nspawn-autoloads names-autoloads advice run-command-recipes-autoloads run-command-autoloads prescient-autoloads amread-mode-autoloads cl-extra help-mode hydra ring lv dired-duplicates-autoloads gh-autoloads lispy-autoloads ace-window-autoloads nerd-icons-ibuffer-autoloads terraform-mode-autoloads org-assistant-autoloads uuidgen-autoloads magit-org-todos-autoloads mingus-autoloads closql-autoloads dall-e-shell-autoloads git-modes-autoloads pyim-autoloads dash-functional-autoloads diredfl-autoloads lsp-docker-autoloads yaml-autoloads macrostep-autoloads corfu-autoloads counsel-jq-autoloads tempel-collection-autoloads tempel-autoloads wolfram-autoloads frameshot-autoloads list-utils-autoloads typescript-mode-autoloads xterm-color-autoloads rime-autoloads posframe-autoloads helm-rage-autoloads shell-maker-autoloads quelpa-autoloads magit-gitflow-autoloads httpcode-autoloads ox-reveal-autoloads embark-autoloads diffview-autoloads which-key-autoloads ruby-tools-autoloads aggressive-indent-autoloads ini-mode-autoloads flycheck-autoloads valign-autoloads citar-autoloads mu4e-marker-icons-autoloads nerd-icons-autoloads eglot-autoloads diff-hl-autoloads makefile-executor-autoloads ghub-autoloads treepy-autoloads consult-projectile-autoloads cmake-font-lock-autoloads cmake-mode-autoloads use-package-autoloads bind-key-autoloads rg-autoloads wgrep-autoloads multiple-cursors-autoloads hcl-mode-autoloads math-symbol-lists-autoloads ob-translate-autoloads julia-mode-autoloads ede/auto eieio-base helm-org-ql-autoloads org-ql-autoloads peg-autoloads matlab-mode-autoloads persist-autoloads counsel-org-clock-autoloads cloak-mode-autoloads org-superstar-autoloads yaml-mode-autoloads ob-restclient-autoloads restclient-autoloads diffed-autoloads devdocs-autoloads tmr-autoloads dogears-autoloads emms-autoloads calfw-org-autoloads sharper-autoloads eldoc-overlay-autoloads quick-peek-autoloads inline-docs-autoloads org-ref-autoloads ox-pandoc-autoloads citeproc-autoloads string-inflection-autoloads bibtex-completion-autoloads biblio-autoloads biblio-core-autoloads parsebib-autoloads avy-autoloads hydra-autoloads package-lint-autoloads ox-gfm-autoloads cider-autoloads helm-system-packages-autoloads helm-org-autoloads helm-easymenu helm-autoloads js-comint-autoloads web-mode-autoloads projectile-autoloads concurrent-autoloads ledger-mode-autoloads google-translate-autoloads geiser-guile-autoloads geiser-autoloads ob-fsharp-autoloads fsharp-mode-autoloads magit-todos-autoloads pcre2el-autoloads magit-autoloads pcase git-commit-autoloads with-editor-autoloads hl-todo-autoloads empv-autoloads helm-core-autoloads async-autoloads alert-autoloads edit-server-autoloads orgtbl-aggregate-autoloads realgud-recursive-autoloads loc-changes-autoloads load-relative-autoloads helpful-autoloads elisp-refs-autoloads polymode-autoloads sly-asdf-autoloads popup-autoloads sly-autoloads consult-lsp-autoloads lsp-mode-autoloads markdown-mode-autoloads f-autoloads docker-autoloads transient-autoloads tablist-autoloads s-autoloads counsel-fd-autoloads counsel-autoloads swiper-autoloads ivy-autoloads inf-clojure-autoloads clojure-mode-autoloads company-ghci-autoloads haskell-mode-autoloads consult-yasnippet-autoloads consult-autoloads org-roam-timestamps-autoloads org-roam-autoloads magit-section-autoloads compat-autoloads dired-subtree-autoloads dired-hacks-utils-autoloads tree-sitter-ess-r-autoloads tree-sitter-langs-autoloads ess-autoloads flymake-sqlfluff-autoloads emacsql-sqlite-autoloads emacsql-autoloads poke-mode-autoloads circe-autoloads request-autoloads company-autoloads swift-mode-autoloads poke-autoloads ht-autoloads dash-autoloads info visual-fill-column-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core password-cache json subr-x map byte-opt bytecomp byte-compile url-vars early-init cl-macs gv cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 12644961 3354271) (symbols 48 163371 388) (strings 32 1357381 259021) (string-bytes 1 55936933) (vectors 16 509929) (vector-slots 8 7329654 997746) (floats 8 94881 32827) (intervals 56 375330 30163) (buffers 984 287)) <#secure method=3Dpgpmime mode=3Dsign> --=20 [ stardiviner ] I try to make every word tell the meaning that I want to express without mi= sunderstanding. Blog: https://stardiviner.github.io/ IRC(libera.chat, freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3