abougouffa / minemacs

MinEmacs: an Emacs configuration framework for daily use
https://abougouffa.github.io/minemacs/
MIT License
143 stars 16 forks source link

does not open gpg files correctly #67

Closed DarkBuffalo closed 1 year ago

DarkBuffalo commented 1 year ago

Hi @abougouffa, Good job ! when I try to open an encrypted file like file.org.gpg it does not decrypt it, it displays it with lots of characters like this:

(\{¢kÄHÒ...

Thanks

abougouffa commented 1 year ago

Hi @abougouffa, Good job !

Thank you, @DarkBuffalo

Seems weird! I use Emacs to edit GPG encrypted files regularly! Didn't face this issue before. I didn't try it on MacOS though, it might be a MacOS related issue.

DarkBuffalo commented 1 year ago

i'm on Archlinux.

I may have expressed badly, it doesn't work automatically. When I choose to open a gpg file with dired it does not decrypt it automatically for editing in the buffer.

abougouffa commented 1 year ago

On Linux (Manjaro, Arch & Ubuntu), I didn't face such an issue, Emacs supports GPG encrypted files out of the box. When I open a *.gpg file, it gets decrypted automatically.

Do you use the standard .gpg extension, or you use a custom or no special extension? AFAIK, Emacs uses file extension to determine if it is a GPG encrypted file or not.

DarkBuffalo commented 1 year ago

yes @abougouffa i use standard gpg extension file. Capture some gpg files are opened with the hex editor and if i open the same file with my personal emacs config it automatically prompts me to enter the password to decrypt it.

abougouffa commented 1 year ago

Merci d'avoir pris le temps pour faire la vidéo @DarkBuffalo,

Je vois maintenant! Il me semble que cela est causé par le module me-binary. Essayez d'ajouter (setq +binary-hexl-enable nil) à votre config.el, cela désactive l'ouverture automatique des fichiers binaires non reconnus en hexl-mode. J'essaierai prochainement de régler ça d'une manière permanente.

abougouffa commented 1 year ago

J'ai désactivé l'ouverture automatique des fichiers binaires en hexl-mode jusqu'à que je trouve une solution durable.

DarkBuffalo commented 1 year ago

Salut @abougouffa désolé mais le soucis continu Capture vidéo

abougouffa commented 1 year ago

Salut @DarkBuffalo

Essayez d'évaluer ce bout de code:

(assoc "\\.gpg" file-name-handler-alist #'string-match-p)

Il devrait retourner quelque chose comme ("\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'" . epa-file-handler).

UPDATE: Essayez également d'activer explicitement epa-file avec M-x epa-file-enable.

UPDATE2: Vous pouvez aussi essayer d'activer le mode auto-encryption-mode s'il n'est pas déjà active.

DarkBuffalo commented 1 year ago

Essayez d'évaluer ce bout de code:\n\n(assoc \"\\.gpg\" file-name-handler-alist #'string-match-p)\nIl devrait retourner quelque chose comme (\"\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'\" . epa-file-handler).

Il me retourne: nil Pourtant quand je cherche la variable epa-file-handler elle retourne bien "\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'"

DarkBuffalo commented 1 year ago

UPDATE: Essayez également d'activer explicitement epa-file avec M-x epa-file-enable.

Ça fonctionne le temp de la session emacs

DarkBuffalo commented 1 year ago

UPDATE2: Vous pouvez aussi essayer d'activer le mode auto-encryption-mode s'il n'est pas déjà active.

Il est actif

abougouffa commented 1 year ago

Essayez d'ajouter (epa-file-enable) au config.el, ça devrait le faire jusqu'à qu'une solution durable soit trouvée. Je ne sais pas la cause de ce souci, essayez de lancer Emacs sans configuration emacs -Q et puis ouvrir un fichier crypté. Si ça ne marche pas dans ce cas, ce serait un problème au niveau du système ou d'Emacs.

DarkBuffalo commented 1 year ago

Essayez d'ajouter (epa-file-enable) au config.el, ça devrait le faire jusqu'à qu'une solution durable soit trouvée. Je ne sais pas la cause de ce souci, essayez de lancer Emacs sans configuration emacs -Q et puis ouvrir un fichier crypté. Si ça ne marche pas dans ce cas, ce serait un problème au niveau du système ou d'Emacs.

Voici l'erreur qui s'affiche si j'ajoute (epa-file-enable) : Debugger entered--Lisp error: (wrong-number-of-arguments epa-file-handler 0)

avec emacs -Q ça fonctionne.

abougouffa commented 1 year ago

Voici l'erreur qui s'affiche si j'ajoute (epa-file-enable) : Debugger entered--Lisp error: (wrong-number-of-arguments epa-file-handler 0)

C'est bizarre comme comportement!

Je n'arrive pas à le reproduire sur ma machine principale (Emacs 29.0.91), ni sur machine virtuelle (Emacs 28.2)!

Essayez de déplacer votre config.el puis lancer MinEmacs sans ce dernier.

DarkBuffalo commented 1 year ago

sans le config.el pas d'erreur concernant epa-file-handler.

Je suis sous emacs 29.0.91

abougouffa commented 1 year ago

sans le config.el pas d'erreur concernant epa-file-handler.

Oui, mais est-ce que le décryptage automatique marche dans ce cas?

DarkBuffalo commented 1 year ago

sans le config.el pas d'erreur concernant epa-file-handler.

Oui, mais est-ce que le décryptage automatique marche dans ce cas?

Non

abougouffa commented 1 year ago

Bizarre ! Sincèrement, je n'arrive pas à identifier la cause de ce problème. Peux-tu partager les modules que tu as activés ? (minemacs-modules et minemacs-core-modules)

DarkBuffalo commented 1 year ago

voici

(setq minemacs-core-modules
      '(me-splash        ; Simple splash screen
        me-keybindings   ; Keybinding (general, which-key, hydra, ...)
        me-evil          ; Emacs as Vim (evil, evil-collection, evil-escape, evil-snipe, evil-numbers, ...)
        me-core-ui       ; Core UI (doom-themes, modus-themes, doom-modeline, ...)
        me-completion))  ; Completion (vertico, marginalia, corfu, cape, consult, embark, ...)

;; List of enabled modules
(setq minemacs-modules
      '(me-ui            ; User interface (focus, writeroom-mode, mixed-pitch, ...)
        me-editor        ; Editing (yasnippet, smartparens, unicode-fonts, ligature, ...)
        me-daemon        ; Emacs daemon tweaks
        me-undo          ; Better undoing (undo-fu, undo-fu-session, vundo, ...)
        me-multi-cursors ; Multi-cursors editing (iedit, evil-mc, evil-iedit-state, ...)
        me-vc            ; Version control (magit, forge, core-review, diff-hl, ...)
        me-project       ; Project management (project, consult-project-extra, ...)
        ;; obsolete/me-projectile ; Project management (projectile, consult-projectile, treemacs-projectile, ...)
        me-prog          ; Programming stuff (tree-sitter, eglot, eldoc, eldoc-box, apheleia, editorconfig, ...)
        me-checkers      ; Static checkers (flymake, flymake-easy, ...)
        ;; obsolete/me-flycheck   ; Static checkers (flycheck, ...)
        me-debug         ; Debugging tools (gdb-mi, realgud, disaster, ...)
        me-lsp        ; LSP and DAP (lsp-mode, dap-mode, consult-lsp, lsp-pyright, ccls, ...)
        me-lisp          ; Lisps development (parinfer-rust, sly, macrostep, geiser, elisp, helpful, eros, ...)
        ;; me-embedded   ; Embedded systems (arduino, openocd, bitbake, vhdl-mode, ...)
        ;; me-robot      ; Robotics stuff (ros, robot-mode, ...)
        me-data          ; Data file formats (csv, yaml, toml, json, plantuml-mode, ...)
        ;; me-math       ; Mathematics (maxima, ess, ein, julia-mode, octave, ...)
        ;; me-modeling   ; Modeling tools (scad-mode, ...)
        me-org           ; Org-mode for life (org, org-contrib, org-modern, org-appear, ...)
        me-extra         ; Extra features (better-jumper, crux, ...)
        me-notes         ; Notes & Zettelkasten (org-roam, consult-org-roam, ...)
        me-eaf           ; EAF apps (browser, jupyter, file-sender, ...)
        me-email         ; Email (mu4e, mu4e-alert, org-msg, ...)
        me-rss           ; News feed (elfeed, ...)
        me-lifestyle     ; *Very* opinionated lifestyle packages (org-verse, ...)
        me-docs          ; Documents (pdf-tools, nov, ...)
        me-latex         ; LaTeX (auctex, auctex-latexmk, reftex, bibtex, ...)
        me-biblio        ; Bibliography & citations (org-cite, citar, zotxt, ...)
        me-natural-langs ; Natural language stuff (spell-fu, go-translate, eglot-ltex, ...)
        me-files         ; Files and directories (dirvish, treemacs, vlf, ...)
        me-tools         ; System tools (tramp, vterm, tldr, ssh-deploy, docker, ...)
        me-tty           ; Emacs from terminal (xt-mouse, xclip, ...)
        me-fun           ; Games and funny packages (xkcd, speed-type, ...)
        me-media         ; Multimedia (empv, emms, ...)
        ;; me-workspaces ; Workspace separation (tabspaces, tab-bar, ...). NOTE: This is a WIP
        me-binary        ; Display binary files in hex or decompile them (hexl, ...) ...
        me-window))      ; Frame & window tweaks
mandarvaze commented 1 year ago

@abougouffa When this is resolved, can one of you summarize the solution in English please 😄

abougouffa commented 1 year ago

@mandarvaze Are you facing the same problem? I tried, but I didn't manage to reproduce it on my machines.

abougouffa commented 1 year ago

@mandarvaze @DarkBuffalo Can you try to add this to your config.el?

(use-package epa-file
  :straight (:type built-in)
  :after minemacs-loaded
  :demand t
  :config
  (epa-file-enable)
  (epa-file-name-regexp-update))
mandarvaze commented 1 year ago

@mandarvaze Are you facing the same problem? I tried, but I didn't manage to reproduce it on my machines.

@abougouffa I had some problem related to gpg file opening. Emacs would freeze. It could be related to pinentry (Where user is asked to enter the passphrase) not being visible (I assumed)

DarkBuffalo commented 1 year ago

@mandarvaze @DarkBuffalo Can you try to add this to your config.el?

(use-package epa-file
  :straight (:type built-in)
  :after minemacs-loaded
  :demand t
  :config
  (epa-file-enable)
  (epa-file-name-regexp-update))

@abougouffa It works! Thanks for your time ;-)

abougouffa commented 1 year ago

It should be fixed now.

@DarkBuffalo Please retest it (without inserting the code above in config.el) to see if it is really solved. Thank you for your help! I really appreciate it.

DarkBuffalo commented 1 year ago

It should be fixed now.

@DarkBuffalo Please retest it (without inserting the code above in config.el) to see if it is really solved. Thank you for your help! I really appreciate it.

Yes it works. Thanks.