Skip to content

blahgeek/emacs-appimage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emacs AppImage

AppImage is a single-file executable format for linux. This repo builds Emacs as AppImages for x86-64 linux systems.

Highlights

  • Supports native-comp, native json, tree sitter
  • Self-contained, no extra dependencies
  • Automatically built on Github Actions
  • Provides both latest release and daily master builds

Download

  • Release & pre-release: latest version 30.0.93
    • release
  • Daily master build
    • daily-master
  • NEW! Weekly mps build: the experimental MPS GC feature from feature/igc branch. This version does not supports pgtk yet.
    • daily-mps

Version string meanings

  • x11: built with X11 GUI support
  • pgtk: built with PGTK GUI support, for wayland desktop
  • nox: built without GUI support

How-to

  1. Download *.AppImage
  2. chmod +x Emacs.AppImage
  3. ./Emacs.AppImage

The appimage executable accepts the same arguments as emacs itself.

Furthermore, if you want to run any other binaries shipped with emacs (e.g. emacsclient, etags), add --emacs-appimage-run-as BINARY_NAME as the first arguments, aka: ./Emacs.AppImage --emacs-appimage-run-as emacsclient xxx yyy.

Prerequisite

  • A not-too-old linux system (at least ~ ubuntu 18.04, which is the system it's built on)
  • FUSE 2.x, which should be pre-installed in most distributions.
    • Recent distributions (e.g. ubuntu 22.04+) may have FUSE 3.x installed instead, you need to also install the 2.x version.
    • For more help, see here

Tested in:

  • Ubuntu 20.04
  • Fedora 39

Troubleshooting

Spacemacs reports error like "Lisp directory /tmp/.mount_emacsxxxxx/share/emacs/29.4/etc/: no such directory"

On each execution, Emacs.AppImage mounts itself in a unique temporary directory (/tmp/.mount_emacsxxxxx) and sets environment variables like EMACSDATA so that emacs can find data files correctly. Apparently, Spacemacs would cache environment variables in .spacemacs.env, which would break Emacs.AppImage. To fix this, delete related entires in .spacemacs.env and restart.