Skip to content

sprig/homebrew-emacs-head

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banner

Emacs Head

GNU General Public License Version 3.0 Travis CI Status

Emacs Head is an Homebrew formula based on the original Homebrew emacs one.

This formula currently supports:

  • GNU Emacs 26.3
  • GNU Emacs HEAD (currently 28.x)

Bottles for Emacs 26.3 are available for the following macOS versions:

  • Catalina
  • Mojave
  • High Sierra

if you need support for an older macOS version open an issue.

Installation

You can install this formula using:

GNU Emacs 26.3

brew tap daviderestivo/emacs-head
brew install emacs-head --with-cocoa

GNU Emacs HEAD

brew tap daviderestivo/emacs-head
brew install emacs-head --HEAD --with-cocoa

Screenshots

GNU Emacs running in terminal mode (28.x)

/images/emacs-head-terminal.png

GNU Emacs running in GUI mode (28.x)

GUI Theme: atom-one-dark-theme

Modeline Theme: smart-mode-line-atom-one-dark-theme

/images/emacs-head-cocoa.png

Compilation options

The following compilation options are available:

OptionDescription
--with-crash-debugAppend `-g3` to CFLAGS to enable crash debugging
--with-cocoaBuild a Cocoa version of GNU Emacs
--with-ctagsDon’t remove the ctags executable that GNU Emacs provides
--with-dbusBuild with dbus support
--without-gnutlsDisable gnutls support
--with-imagemagickBuild with imagemagick support
--with-janssonEnable jansson support (only HEAD)
--without-librsvgDisable librsvg support
--with-mailutilsBuild with mailutils support
--with-multicolor-fontsEnable multicolor fonts support on macOS (only for Emacs 26.3)
--without-modulesDisable dynamic modules support
--with-no-frame-refocusDisables frame re-focus (ie. closing one frame does not refocus another one)
--without-libxml2Disable libxml2 support
--with-pdumperEnable pdumper support
--with-xwidgetsEnable xwidgets support

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.

System appearance change support

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.

(add-hook 'ns-system-appearance-change-functions
          #'(lambda (appearance)
              (mapc #'disable-theme custom-enabled-themes)
              (pcase appearance
                ('light (load-theme 'tango t))
                ('dark (load-theme 'tango-dark t)))))

Note that this hook is run early in the startup process, so if you want your theme to match the system appearance when Emacs starts, you can register your function(s) in your early-init.el. The hook is NOT run in TTY Emacs sessions.

Pdumper support

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.

Xwidgets support

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`.

Available icons

OptionDescriptionImageURL
--with-modern-icon-cg433nUse a modern style icon by cg433n/icons/modern-icon-cg433n.pngLink
--with-modern-icon-sjrmanningUse a modern style icon by sjrmannings/icons/modern-icon-sjrmanning.pngLink
--with-modern-icon-sexy-v1Use a modern style icon by Emacs is Sexy/icons/modern-icon-sexy-v1.pngLink
--with-modern-icon-sexy-v2Use a modern style icon by Emacs is Sexy/icons/modern-icon-sexy-v2.pngLink
--with-modern-icon-papirusUse a modern style icon by Papirus Development Team/icons/modern-icon-papirus.pngLink
--with-modern-icon-penUse a modern style icon by Kentaro Ohkouchi/icons/modern-icon-pen.pngLink
--with-modern-icon-black-variantUse a modern style icon by BlackVariant/icons/modern-icon-black-variant.pngLink
--with-modern-icon-nuvolaUse a modern style icon by David Vignoni/icons/modern-icon-nuvola.pngLink
--with-retro-icon-gnu-headUse a retro style icon by Aurélio A. Heckert/icons/retro-icon-gnu-head.pngLink
--with-retro-icon-sink-bwUse a retro style icon by Unknown/icons/retro-icon-sink-bw.pngLink
--with-retro-icon-sinkUse a retro style icon by Erik Mugele/icons/retro-icon-sink.pngLink

Why yet another Homebrew Emacs formula?

Since the option --with-cocoa is not available in the latest Emacs homebrew-core formula (see pull request), I decided to build my own formula.

About the logo

‘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)

Collaborating

If you are interested in collaborating please open a Pull Request.

About

GNU Emacs formula for the Homebrew package manager

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%