Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

EAF, an extensible framework that revolutionizes the graphical capabilities of Emacs

License

NotificationsYou must be signed in to change notification settings

emacs-eaf/emacs-application-framework

Repository files navigation

English |简体中文


A free/libre and open-source extensible framework that revolutionizes the graphical capabilities of Emacs.
The key to ultimatelyLive in Emacs

Vision

Emacs, the extensibletext editor, is more than 45 years old. It is older than virtually all operating systems people use today, almost as old as the first UNIX system. During the decades of development, the world's brightest hackers have contributed their intelligence and creativity. Together they've constructed the most comprehensive and richest ecosystem that you can find in any software to date.

If you are a hacker who works with numerous languages and text, who's keyboard-driven and desires maximum freedom, extensibility, and introspectivity over your tool, maybe to the extent ofliving in it, Emacs will be your best bet.

Unfortunately, this 45 years of age is also one of the greatest disadvantages of Emacs. Comparing with modern software, Emacs lacks performance. Specifically Emacs Lisp lacks performance. It doesn't have proper multithreading and its graphical capabilities are seriously limited. It is far from what you'd expect from any GUI application today (such as IDEA or VSCode). You may think that Emacs, as a text-centric editor, doesn't need them, but have you ever run into a situation that, you sit comfortably typing commands and doing your Emacs sorcery, but can't help but ponder:

What if Emacs had a real browser?What if this PDF or video file could be viewed efficiently without leaving Emacs?

Emacs, although infinitely extensible in text, is very limited in graphics. It shouldn't have to be this way. However, Emacs Lisp isthe integral part of the Emacs culture, it carries decades of history with itself, it is what makes Emacs special. It is irreplaceable.

The vision of the Emacs Application Framework (EAF) project is, while fully retaining the rich history, culture, and ecosystem of Emacs and Emacs Lisp, to open up completely new doors to the ecosystems of Python, Qt6, and even JavaScript. EAF extends Emacs to the world of modern graphics, but still preserving the extensibility and customizability of Emacs. It will be the key to ultimatelyLive in Emacs.

Features

EAF is very extensible. We ship a lot of applications, feel free to choose anything you find interesting to install:

BrowserPDF Viewer
Music PlayerFile Manager

... plusmany more!

EAF in EmacsConf

EmacsConf 2020:Extend Emacs with EAFEmacsConf 2021:EAF: A 2021 Update

Install

EAF supports Linux (X11 and Wayland), Windows, macOS and FreeBSD. The installation method is very simple.

1. Download EAF

git clone --depth=1 -b master https://github.com/emacs-eaf/emacs-application-framework.git~/.emacs.d/site-lisp/emacs-application-framework/

2. Install/Update EAF applications and dependencies

You can useM-x eaf-install-and-update or manually run theinstall-eaf.py script in the EAF directory:

cd emacs-application-frameworkchmod +x ./install-eaf.py./install-eaf.py

There are many useful flags available forinstall-eaf.py, check it yourself using--help.

There are four types of support for the Wayland environment:

  • XWayland: EAF can run directly under XWayland
  • Gnome3 Wayland Native: You need to execute the commandcp -r emacs-application-framework/gnome-shell/eaf-wayland@emacs-eaf.org ~/.local/share/gnome-shell/extensions and activate theeaf-wayland@emacs-eaf.org plugin ingnome-extensions
  • Sway Wayland Native: jq needs to be installed
  • Hyprland Wayland Native

Unity environment support: requiresxdotool to be installed.

3. Load EAF Core

From here on, you can add the full path to the EAF installation directory to your Emacsload-path, then add the following toinit.el:

(add-to-list'load-path"~/.emacs.d/site-lisp/emacs-application-framework/")(require'eaf)
  • Alternatively, if you useuse-package, you can use the followingsample configuration for your convenience.

    (use-package eaf:load-path"~/.emacs.d/site-lisp/emacs-application-framework":custom; See https://github.com/emacs-eaf/emacs-application-framework/wiki/Customization  (eaf-browser-continue-where-left-offt)  (eaf-browser-enable-adblockert)  (browse-url-browser-function'eaf-open-browser):config  (defalias'browse-web#'eaf-open-browser)  (eaf-bind-key scroll_up"C-n" eaf-pdf-viewer-keybinding)  (eaf-bind-key scroll_down"C-p" eaf-pdf-viewer-keybinding)  (eaf-bind-key take_photo"p" eaf-camera-keybinding)  (eaf-bind-keynil"M-q" eaf-browser-keybinding));; unbind, see more in the Wiki

4. Load EAF Apps

You can use below code to load applicationsbrowser andpdf-viewer that you installed. Please checkApplications for the full list:

(require'eaf-browser)(require'eaf-pdf-viewer)

5. Hooray!

Congratulations, you just installed EAF! You can tryM-x eaf-open-demo (that is if you havedemo installed, of course) to see if everything works properly, and enjoy the new possibilities of Emacs.

Below are launch commands of EAF Applications:

Application NameLaunch
BrowserM-x eaf-open-browser Search or Goto URL
M-x eaf-open-browser-with-history Search or Goto URL or Goto History
HTML Email RendererM-x eaf-open-mail-as-html ingnus,mu4e,notmuch HTMl Mail
PDF ViewerM-x eaf-open PDF File
Video PlayerM-x eaf-open Video File
Image ViewerM-x eaf-open Image File
Markdown PreviewerM-x eaf-open Markdown File, selectmarkdown-previewer
Org PreviewerM-x eaf-open Org File, selectorg-previewer
CameraM-x eaf-open-camera
TerminalM-x eaf-open-pyqterminal
File ManagerM-x eaf-open-in-file-manager
RSS ReaderM-x eaf-open-rss-reader
Git ClientM-x eaf-open-git
Map Route PlanningM-x eaf-open-map
File SenderM-x eaf-file-sender-qrcode oreaf-file-sender-qrcode-in-dired
File BrowserM-x eaf-file-browser-qrcode
AirshareM-x eaf-open-airshare
MarkmapM-x eaf-open Markdown or Org file, selectmarkmap
MindmapM-x eaf-create-mindmap orM-x eaf-open-mindmap
MS Office ViewerM-x eaf-open-office
JupyterM-x eaf-open-jupyter
Music PlayerM-x eaf-open-music-player
System MonitorM-x eaf-open-system-monitor
DemoM-x eaf-open-demo to verify basic functionality
Vue DemoM-x eaf-open-vue-demo to verify vue.js functionality
  • EAF Browser and PDF Viewer support Emacs built-in bookmark operation, withM-x bookmark-set (defaulted toC-x r m) andM-x bookmark-bmenu-list (defaulted toC-x r l).

Upgrade

Also, you should regularlygit pulland runinstall-eaf.py (M-x eaf-install-and-update) to update EAF, its applications, and relating dependencies.

Report bug

For any installation and configuration assistance, please read theWiki andFAQ.

If you encounter a problem with EAF, and it occurred after pulling the latest commit, please check theMandatory Procedures to Keep Your EAF Up-To-Date pagefirst.

For any other problems, please useemacs -q and load a minimal setup with only EAF to verify that the bug is reproducible. Ifemacs -q works fine, probably something is wrong with your Emacs config.

If the problem persists, please report ithere with the*eaf* buffer content. It contains many clues that can help us locate the problem faster.

If you get a segfault error, please use the following way to collect crash information:

  1. Install gdb and turn on option(setq eaf-enable-debug t)
  2. Use the commandeaf-stop-process to stop the current process
  3. Restart eaf, send issue with*eaf* buffer content when next crash

EAF in the community

A list of other community packages that use EAF to enhance their graphical experiences!

If we missed your package, please make a PR to add it to the list.

Contributor

Join Us

Do you want to make Emacs a real "operating system"?

Do you want to live in Emacs more comfortably?

Do you want to revolutionize the capabilities of Emacs?

Let's hack together!

About

EAF, an extensible framework that revolutionizes the graphical capabilities of Emacs

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks


[8]ページ先頭

©2009-2025 Movatter.jp