MrPezevenk · 2022-04-06 14:45
I'm very new to using Emacs. I used it a bit for school but learned nothing about how to modify it etc. Recently I installed Doom Emacs which is very cool, and then I found out about Emacs Application Framework. Unfortunately I have no idea how to install it on Doom because the guide only talks about vanilla emacs. I found [a reddit thread about it](https://www.reddit.com/r/DoomEmacs/comments/p95xdg/has_anyone_been_able_to_install_eaf_on_doom/) which also cites a [github discussion](https://github.com/emacs-eaf/emacs-application-framework/discussions/475), but unfortunately I have no idea what they are talking about. I tried to do some stuff without understanding. I am not 100% sure what I did but it didn't really work and I don't even know for sure how to get everything back to where it was before I added anything and start trying again.
It would be very appreciated if someone could help me with the installation process and tell me step by step exactly what you do and maybe why.
__nautilus__ · 2022-04-06 17:55
I haven’t used EAF, so I can’t say, but it seems like a pretty big change with a lot of potential points of breakage. It could be worth waiting until you’re a bit more familiar with emacs/doom before trying something that is going to require such advanced debugging knowledge. Of course, diving into the deep end can also be a good learning experience, but it can be super frustrating.
Regarding doom, you can almost always get back to square one by wiping out ~/.emacs.d, cloning it fresh, and then running doom install.
MrPezevenk · 2022-04-06 18:12
Good point, thanks.
T_Verron · 2022-04-08 09:39
(Not an ELY5, sorry.)
Doom uses straight.el to install package, and EAF can be installed with straight now.
This is what I would use to install it on vanilla emacs, it should also work on doom but there might be a more doom-ish way of saying it.
```
(straight-use-package
'(eaf
:type git
:host github
:repo "emacs-eaf/emacs-application-framework"
:files ("eaf.el" "eaf.py" "extension" "core" "img" "sync-eaf-resources.py")))
(use-package eaf)
```
You can customize `eaf-apps-to-install` to say, well, which apps to install: e.g. `(setq eaf-apps-to-install '(demo))` for `eaf-demo`.
Make sure to also `(setq eaf-byte-compile-apps t)` to have the app files byte-compiled (as straight.el or package.el would normally do). I still don't understand why it's not the default value.
(I guess it's my fault that the documentation doesn't mention the installation with straight. My weak excuse is that he PR was merged before I could add it `:)`.)
MrPezevenk · 2022-04-09 10:08
Thanks a lot!
thetta-reddast · 2022-04-28 21:55
Did you get it to work? I can't seem to be able to install it on Doom correctly
MrPezevenk · 2022-04-28 21:56
I don't remember lol
I ended up making my own emacs configuration from scratch anyways hahahaha
osvarcha · 2022-06-27 03:35
Hahaha I got frustrated too, but starting from scratch and getting to know a little emacs-lisp.
osvarcha · 2022-06-27 04:28
3 months ago I tried to install EAF with DoomEmacs, but I don't trust EAF much, the project is really good and of great potential they are constantly improving the code and fixing errors that may arise, the first time I worked in vanilla emacs but after 2 days I did a "**git pull"** and I had errors with the browser and then I spent 5 days and it was corrected, It is a project that is in development but it promises a lot because they have a template to code to make your own extensions using WEB technologies, integrating them with Emacs with EAF as PopWeb his brother project.
This was the configuration that uses:
In my directory I have a folder called "Gits" and there clone the EAF repository
(use-package eaf
:load-path "~/Gits/emacs-application-framework/"
:custom
(eaf-browser-continue-where-left-off t)
(eaf-browser-enable-adblocker t)
(browse-url-browser-function 'eaf-open-browser))
(require 'eaf-pdf-viewer)
(require 'eaf-browser)
(require 'eaf-image-viewer)
(require 'eaf-terminal)
(require 'eaf-video-player)
(require 'eaf-markdown-previewer)
(require 'eaf-org-previewer)
(require 'eaf-music-player)
(require 'eaf-file-manager)
(require 'eaf-rss-reader)
;;(require 'eaf-mindmap)
(require 'eaf-jupyter)
(require 'eaf-camera)
(require 'eaf-system-monitor)
;;(require 'eaf-netease-cloud-music)
;;(require 'eaf-file-browser)
;;(require 'eaf-file-sender)
;;(require 'eaf-airshare)
;;(require 'eaf-demo)
;;(require 'eaf-vue-demo)
;; If use Evil-mode Optional
(require 'eaf-evil)
(define-key key-translation-map (kbd "SPC")
(lambda (prompt)
(if (derived-mode-p 'eaf-mode)
(pcase eaf--buffer-app-name
("browser" (if (string= (eaf-call-sync "call_function" eaf--buffer-id "is_focus") "True")
(kbd "SPC")
(kbd eaf-evil-leader-key)))
("pdf-viewer" (kbd eaf-evil-leader-key))
("image-viewer" (kbd eaf-evil-leader-key))
(_ (kbd "SPC")))
(kbd "SPC"))))
I tried it again with a clean DoomEmacs installation and I am surprised that this OnFire I see the repository and 1 hour ago it became a \*\* push \*\*. In conclusion, the project continues to improve and I like that it now runs first.
I also advise you to see the EAF creator's dofile has its ".emacs" configuration called [M-Emacs](https://github.com/MatthewZMD/.emacs.d#org532685c) has a good configuration for EAF for users who do not use EVIL-MODE