109

Macintosh users have several choices of pre-built Emacs. I am aware of the following versions:

Some questions I had in mind:

  1. Do these versions differ in any signifcant ways?
  2. Can one obtain the functionality of the others by simply modifying the initialization file?
  3. Do these changes make their way back upstream?

I am aware that Aquamacs is considered "unorthodox" as it has very Mac-like keybindings, but I am also interested in understanding the differences between the non-Aquamacs versions.

2
  • Data point: I just tried a bunch of these emacsen and have settled on Yamamoto Mitsuharu's fork. I've been using Aquamacs for years but it's been crashing frequently (something to do with frames/tabs) and I couldn't take it anymore. It seems Aquamacs used to do alot of things that nobody else did, but that's not the case anymore. The Yamamoto fork appears the superior choice for Mac right now. Jan 15, 2018 at 23:09
  • I usually use Aquamacs, decided to brew this time. One minor nit: to get the # key, set Australian input type! Aug 6, 2018 at 13:23

5 Answers 5

138

Emacs for Mac OS X

Emacs for Mac OS X provides OS X binaries of GNU Emacs proper. It's roughly the same you'd get by compiling a GNU Emacs release tarball with ./configure --with-ns. The site provides builds of stable releases and pretests, as well as nightly snapshots. All of these builds are self-contained, which lets you safely try pretests and snapshots.

Note though, that these binaries lack support for some libraries, notably GNU TLS and ImageMagick. If you'd like to use these—the former is particularly important if you'd like to read your mail in Emacs—you need to get GNU Emacs from Homebrew.

Emacs for OS X Modified

According to the website Emacs for OS X Modified is simply a standard build of GNU Emacs, based on the above, with some additional packages, and the necessary configuration to enable all of these packages.

With the notable exception of ESS, all of these packages are available through Emacs' package archives for installation in any Emacs. For instance, you can install AUCTeX in GNU Emacs proper by simply typing M-x package-install RET auctex, and enabling it.

The choice of packages suggests that it's mostly targeted at statistician and researches, which would work through their data with R and ESS, and then publish a paper with Org or AUCTeX and LaTeX.

For other users, this distribution is probably of little value, since you'd need to install additional packages anyway, and might as well use GNU Emacs proper right away.

This is the only distribution which you can create yourself in GNU Emacs proper by installing additional Emacs packages and adjusting your init.el accordingly. The other distributions are patched and forked variants of GNU Emacs.

Emacs Mac Port

Emacs Mac Port is a patch set for GNU Emacs proper for better OS X integration. Note that GNU Emacs itself has native OS X support as well, but lacks the OS X specific additions, which this patch set provides. Notably:

  • Core Text for text rendering, which improves text appearance and Unicode support. This was merged into GNU Emacs proper, and is part of Emacs 24.4.
  • Smooth scrolling. GNU Emacs proper scrolls line-wise, which is very laggy and jumpy with trackpads. Emacs Mac Port uses pixel-based scrolling like other native OS X applications, which feels much smoother and is much more precise. It only affects trackpad scrolling, though, so if you don't use the mouse, you won't need it.
  • Gestures. You can pinch to increase/decrease the text size. Again, if you don't use the mouse, you won't notice it, and it's arguably just a fancy feature.
  • Support for Apple Events. You can send and receive Apple Events from Emacs Lisp.
  • Dictionary service. Three-finger tapping will search the word under cursor in Apple's Dictionary application, like in other OS X applications.
  • Services integration. You can open a selected file in Finder from the context menu in the running Emacs.
  • Native SVG display using Webkit, rather than librsvg. Webkit has better SVG support to my knowledge, but who views SVGs in Emacs?

You'll notice that most of these features are merely concerned with integration into OS X, and are not essential to using Emacs. Other than that, Emacs Mac Port is pretty much like a standard GNU Emacs.

Some of its features make their way back into GNU Emacs, but other will never be merged, since they are exclusive to OS X, and not available in the free alternative GNUStep, which goes against the politics of the FSF to not support proprietary operating systems over their free alternatives. Also, if I remember correctly, the author of this patchset has shown little interest to bring the features back upstream, probably for the former reason.

Aquamacs

Aquamacs is a heavily patched fork of GNU Emacs. Unlike all of the above, it's not based on GNU Emacs, but has an independent source tree. It's regularly synched with Emacs upstream, though, and closely follows Emacs releases. It inevitably lags behind GNU Emacs trunk, however.

It is heavily modified to look and feel like a native OS X application. Notably it supports and encourages standard OS X key bindings, e.g Cmd+S to save. Standard Emacs bindings are mostly still available though.

Since its a fork, heavily modified and with entirely different aims and principles, none of its features will be merged with GNU Emacs: Most of these modifications go directly against the “spirit”, ideas and philosophy of GNU Emacs.

TL;DR (or: What should I pick)

  • If you are a statistician or researcher and don't want to setup Emacs yourself: Emacs for OS X modified
  • If you want a native OS X application more than everything else: Aquamacs
  • If you want Emacs, but with as good OS X support as can be: Emacs Mac Port
  • If you just want Emacs without any complications: Emacs for Mac OS X

My personal advice

I never tried Emacs for OS X Modified or Aquamacs, but I see little use in the former (I am no statistician, and can install AUCTeX by myself). I'd also recommend against the latter: It's a fork, and while it gives you best OS X integration, it inevitably lags behind, and receives less support from the Emacs community overall. Many packages don't support Aquamacs, so if there are issues, there's a good chance for you to be left alone as an Aquamacs user.

I did try Emacs Mac Port, and while smooth scrolling, gestures and Apple Events are nice, I found that these little benefits are not worth the hassle of keeping a patched version of GNU Emacs. YMMV, obviously, and if you care for good OS X support, and if these features appeal to you, you should definitely try it.

Nowadays, I use just GNU Emacs snapshot builds. These have reasonably good OS X support, and are by far the easiest to install, and best supported by the community.

I used to get them from Emacs for Mac OS X, but now I use Homebrew, because it supports more libraries, notably GNU TLS for encrypted network connections.

All in all: Use brew install emacs --HEAD --use-git-head --with-cocoa --with-gnutls --with-rsvg --with-imagemagick :).

13
  • 8
    Well - using the mac port is not that difficult either. From github.com/railwaycat/emacs-mac-port : brew tap railwaycat/emacsmacport and then brew install emacs-mac
    – Rainer
    Sep 26, 2014 at 19:02
  • 3
    The "Mac port" definitely was not the first Emacs with native OSX GUI support. Instead it was born right around the time Emacs moved from the old "Carbon Emacs" code to the newer "Emacs.app" code (this move was done partly because Carbon was presumably being deprecated by Apple, partly because noone wanted to maintain that code, and partly because the "Emacs.app" code came with the possibility to support GNUstep. To this day, the GNUstep support is basically unusable (tho it's occasionally used to track and fix bugs on the OSX code while using a GNU/Linux system)).
    – Stefan
    Oct 29, 2014 at 3:42
  • 6
    Excellent write-up. Some of the OSX users may be interested in knowing that Aquamacs has built-in support for the native OSX spellchecker, which includes the list of saved words that the user has previously added to the dictionary. In my mind, that is the one key feature of Aquamacs that cannot be duplicated in other Emacs versions without modifying the source code before building. However, I prefer aspell and shy away from using the mouse -- so the OSX spellchecker (while very nifty indeed) is not a reason for me to switch to Aquamacs.
    – lawlist
    Oct 29, 2014 at 4:11
  • 1
    Disclaimer: I use Linux, and I'm not sure about OSX, but I do write email in Emacs and do not need TLS; I (or rather mu4e) call msmtp for sending and mbsync for retrieval of my emails.
    – mbork
    Oct 29, 2014 at 11:00
  • 1
    Small nit: Compiling from source requires ./configure --with-ns, not --enable-ns. Nov 21, 2014 at 21:05
26

A few factual corrections about Aquamacs. While it maintains its own source tree, it is very regularly merged with Emacs, and pretty much immediately so with every Emacs release. Aquamacs 3.1 came out the day Emacs 24.4 was released (and it incorporated all of Emacs 24.4 features and a subset of its bugs). Aquamacs has >10k regular users, is actively supported.

The Emacs Mac Port originated much later than the Cocoa and Nextstep port in Emacs; it is considered experimental and the original author advises against redistribution outside of his patch set. As such, support will be much more limited than for any of the other solutions. It is an interesting line of development, however, that will eventually provide much value to the community if adopted by developers. Users should consider themselves "beta testers", though, and contribute back what they can with good bug reports and patches.

The value of Aquamacs lies in its "ready to roll" philosophy: LaTeX, EmacsSpeaksStatistics, and Mac integration work out of the box. No complex configuration needed.

3
  • Emacs releases only infrequently, so if Aquamacs merges only after releases, that is infrequent. I have updated my answer to remove that part, though. Also, while Aquamacs itself is actively maintained and supported, community support is rather sparse. Few 3rd party packages explicitly support Aquamacs. In fact, many packages explicitly support only GNU Emacs, and not any forks or derivates, including XEmacs or Aquamacs.
    – user227
    Oct 29, 2014 at 11:07
  • Do you have a source for the advise of the Mac port authors to not redistribute parts outside of their patch set?
    – user227
    Oct 29, 2014 at 11:10
  • @lunaryorn: I believe this was true at the time, but no longer so. In my edit, I removed that comment.
    – davidswelt
    Sep 20, 2016 at 20:46
11

I have tried all of the above options (even the tap recommended by Reiner in a comment above) by none have worked well for me (trackpad scrolling problems, hangings, etc.). I am quite happy, however, with Yamamoto Mitsuharu's fork, as mantained by railway's github page. It is up-to-date with respect to the official GNU version. Simply download the .dmg image here: https://github.com/railwaycat/emacs-mac-port/wiki/Downloads

1
  • 9
    When you have some free time, please expand upon your answer and set forth the differences between this particular build and the vanilla build. That way, your answer becomes more than just a comment and the reader would not be required to leave this answer and view pages like: github.com/railwaycat/emacs-mac-port/blob/master/README-mac
    – lawlist
    Nov 28, 2014 at 14:21
0

I was using the Aquamacs version until recently. The main reason I was preferring the Auquamacs version while I was using it on the Mac was that I was able to use Dragon Dictate with emacs with the default settings. When I was configuring my setup I had trouble with the dictation on the regular emacs version. Other than that and the default keybindings there was not much difference that I interacted with. My settings would load in the same way. With the keybindings It is handy to have the clipboard copy, cut, paste, and undo using the cmd-c, cmd-v, cmd-x, cmd-z, S-cmd-z just out of habit on mac and that I was able to automatically do it with one hand on the mac keyboard, but you can set those in the regular emacs to anything you like, auquamacs is not needed for many of those mac settings.

However, last time I checked the emacs in Auquamacs had not been updated for a year and it seemed to be behind. I was also receiving some expired certificate warnings. I wasn't sure if it was still being maintained. It doesn't look like it has been updated on the website. I was able to install the regular Emacs for Mac version with homebrew and update my init file to the settings for mac that allowed for the dictation to work.

But I have been using linuxmint recently and I think I am going to stick with that. My system is a lot quieter, quicker, and smoother with Linux and it is easy to customize the appearance of the desktop. There were a few minor changes I made to the emacs init file on Linux version, but it is pretty much the same. I haven't been able to find a good solution for the dictation on Linux though. I don't know that my machine can handle running another operating system in a virtual machine just for the dictation software. The dictation software is a resource hog as well, but that is another issue. It would be nice if Dragon released a version of Dictate on Linux.

0

I have been using Aquamacs for a long time, but I just got an M2 Mac. Aquamacs doesn't have a AArch64 port yet. So, since I would prefer not to install Rosetta, I looked at the options above and given the choices, Emacs Mac Port seemed like the best bet.

It seems that I've become too infected with the Mac way, so found it jarring enough that I think I'm going to install Rosetta and Aquamacs. Things I noticed:

  1. pinch and scrolling are very unresponsive... you can get them, but rarely on the first try
  2. selecting text and then typing or pasting/yanking does not replace the text
  3. cmd-z doesn't do undo, cmd-+ doesn't change text size, etc. ... obviously I could rebind them, but given the other aspects, it's easier to use Rosetta and Aquamacs (which works well, by the way - I have another M1 that I forgot was running with Rosetta, since it's so seamless).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.