Emacs Head is an Homebrew formula based on the original Homebrew Emacs one.
This formula currently supports:
- GNU Emacs 26.3
- GNU Emacs 27.1 (or HEAD)
- GNU Emacs HEAD (currently 28.0.50)
Bottles for GNU Emacs 26.3 and 27.1 are available for the following macOS versions:
- Big Sur
- Catalina
- Mojave
- High Sierra
GNU Emacs 26.3 bottles have been built with the following options:
--with-cocoa
--with-no-frame-refocus
--with-imagemagick (6)
--with-multicolor-fonts
GNU Emacs 27.1 bottles have been built with the following options:
--with-cocoa
--with-no-frame-refocus
--with-imagemagick (7)
--with-pdumper
--with-xwidgets
if you need support for an older macOS version please open an Issue.
You can install this formula using:
brew tap daviderestivo/emacs-head
brew install emacs-head@26
brew tap daviderestivo/emacs-head
brew install emacs-head
If you wish to install the HEAD version of GNU Emacs 27 please do:
brew tap daviderestivo/emacs-head
brew install --HEAD emacs-head --with-cocoa
brew tap daviderestivo/emacs-head
brew install emacs-head@28 --with-cocoa
GUI Theme: atom-one-dark-theme
Modeline Theme: smart-mode-line-atom-one-dark-theme
The following compilation options are available:
Option | Description |
---|---|
--with-crash-debug | Append `-g3` to CFLAGS to enable crash debugging |
--with-cocoa | Build a Cocoa version of GNU Emacs |
--with-ctags | Don’t remove the ctags executable that GNU Emacs provides |
--with-dbus | Build with dbus support |
--without-gnutls | Disable gnutls support |
--with-imagemagick | Build with imagemagick support |
--without-librsvg | Disable librsvg support |
--with-mailutils | Build with mailutils support |
--with-multicolor-fonts | Enable multicolor fonts support on macOS (only for emacs-head) |
--without-modules | Disable dynamic modules support |
--with-no-frame-refocus | Disables frame re-focus (ie. closing one frame does not refocus another one) |
--without-libxml2 | Disable libxml2 support |
--with-pdumper | Enable pdumper support (only for emacs-head@27 and emacs-head@28) |
--with-xwidgets | Enable xwidgets support (only for emacs-head@27 and emacs-head@28) |
For the terminal version only of GNU Emacs please omit --with-cocoa
.
By default:
- gnutls
- librsvg
- libxml2
- dynamic modules
are enabled. If you want to disable them please use the above --without-*
options.
This patch is enabled by default and can’t be disabled. It adds a
hook, ns-system-appearance-change-functions
, that is called once the
system appearance is changed. Functions added to this hook will be
called with one argument, a symbol that is either light or dark. This
mainly allows loading a different theme to better match the system
appearance.
(defun my/apply-theme (appearance)
"Load theme, taking current system APPEARANCE into consideration."
(mapc #'disable-theme custom-enabled-themes)
(pcase appearance
('light (load-theme 'tango t))
('dark (load-theme 'tango-dark t))))
(add-hook 'ns-system-appearance-change-functions #'my/apply-theme)
Note that this hook is also run once when Emacs is initialized, so simply adding the above to your init.el will allow matching the system appearance upon startup. You can also determine what the current system appearance is by inspecting the value of the ns-system-appearance variable.
The hook is NOT run in TTY Emacs sessions.
The portable dumper is available in HEAD. To enable this feature
please use --HEAD --with-pdumper
.
For a pdumper configuration example, you could take inspiration from Galactic Emacs: pdumper-init.el and pdumper-config.el configuration files.
This formula support via a (patch) native macOS X Cocoa Xwidgets
support via embedding a native webkit window. To enable this feature
please use --HEAD --with-xwidgets
.
Option | Description | Image | URL |
---|---|---|---|
--with-modern-icon-sjrmanning | Use a modern style icon by Sjrmannings | Link | |
--with-modern-icon-asingh4242 | Use a modern style icon by Asingh4242 | Link | |
--with-modern-icon-paper-icons | Use a modern style icon by Sam Hewitt | Link | |
--with-modern-icon-azhilin | Use a modern style icon by Andrew Zhilin | Link | |
--with-modern-icon-mzaplotnik | Use a modern style icon by Matjaz Zaplotnik | Link | |
--with-modern-icon-bananxan | Use a modern style icon by BananXan | Link | |
--with-modern-icon-vscode | Use a modern style icon by Valentin Degenne | Link | |
--with-modern-icon-sexy-v1 | Use a modern style icon by Emacs is Sexy | Link | |
--with-modern-icon-sexy-v2 | Use a modern style icon by Emacs is Sexy | Link | |
--with-modern-icon-cg433n | Use a modern style icon by Cg433n | Link | |
--with-modern-icon-purple | Use a modern style icon by Nicolas Petton | Link | |
--with-modern-icon-yellow | Use a modern style icon by Unknown | Link | |
--with-modern-icon-orange | Use a modern style icon by Omar Jair Purata Funes | Link | |
--with-modern-icon-papirus | Use a modern style icon by Papirus Development Team | Link | |
--with-modern-icon-pen | Use a modern style icon by Kentaro Ohkouchi | Link | |
--with-modern-icon-pen-3d | Use a modern style icon by Unknown | Link | |
--with-modern-icon-pen-lds56 | Use a modern style icon by lds56 | Link | |
--with-modern-icon-pen-black | Use a modern style icon by Cayetano Santos | Link | |
--with-modern-icon-black-variant | Use a modern style icon by BlackVariant (Patrick) | Link | |
--with-modern-icon-purple-flat | Use a modern style icon by Jeremiah Foster | Link | |
--with-modern-icon-spacemacs | Use a modern style icon by Nasser Alshammari | Link | |
--with-modern-icon-alecive-flatwoken | Use a modern style icon by Alessandro Roncone | Link | |
--with-modern-icon-bokehlicia-captiva | Use a modern style icon by Bokehlicia | Link | |
--with-modern-icon-nuvola | Use a modern style icon by David Vignoni | Link | |
--with-modern-icon-black-gnu-head | Use a modern style icon by Aha-Soft | Link | |
--with-modern-icon-black-dragon | Use a modern style icon by Osike | Link | |
--with-modern-icon-emacs-icon1 | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-icon2 | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-icon3 | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-icon4 | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-icon5 | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-icon6 | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-icon7 | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-icon8 | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-icon9 | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-card-blue-deep | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-card-british-racing-green | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-card-carmine | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-emacs-card-green | Use a modern style icon by Jasonm23 | Link | |
--with-modern-icon-doom | Use a modern style icon by Jay Zawrotny | Link | |
--with-modern-icon-doom3 | Use a modern style icon by Jay Zawrotny | Link | |
--with-retro-icon-emacs-logo | Use a retro style icon by Luis Fernandes | Link | |
--with-retro-icon-gnu-head | Use a retro style icon by Aurélio A. Heckert | Link | |
--with-retro-icon-gnu-meditate-levitate | Use a retro style icon by Nevrax Design Team | Link | |
--with-retro-icon-sink-bw | Use a retro style icon by Unknown | Link | |
--with-retro-icon-sink | Use a retro style icon by Erik Mugele | Link |
Since the option --with-cocoa
is not available in the latest GNU Emacs
homebrew-core formula (see pull request), I decided to build my own
formula.
‘Kitchen Sink’ OS Announced
Coding has begun on a new operating system code named ‘Kitchen Sink’. The new OS will be based entirely on GNU Emacs. One programmer explained, “Since many hackers spend a vast amount of their time in Emacs, why not just make it the operating system?” When asked about the name, he responded, “Well, it has been often said that Emacs has everything except a kitchen sink. Now it will.” — James Baughn (http://humorix.org/10016)
If you are interested in collaborating please open a Pull Request.