Emacs27 on macOS - Now (Again❓) With Emoji!‼️
I have been refreshing my emacs config as part of i-dotfiles, and had made a note to add emoji support. After googling, I remembered emacs maintainers intentionally disabled multi-color font support used in macOS for native emoji support. Then, a git commit Update multicolor font support status in Sacha Chua’s 2019-04-29 Emacs news surfaced. Using company-emoji
and the re-enabled upstream support, emojis are back in Emacs27.
Building Emacs From Source
For years I have used the emacs
cask from homebrew, which installs Emacs.app
from the .dmg
published at https://emacsformacosx.com/ (currently emacs: 26.2). Rather than roll my own yet-another build-emacs-from-source script, I decided to use daviderestivo/homebrew-emacs-head repo/homebrew tap1.
It couldn’t have been much easier:
# first, rename existing /Applications/Emacs.app -> Emacs26.app
brew tap daviderestivo/emacs-head
brew install emacs-head --HEAD --with-cocoa --with-imagemagick --with-jansson
ln -s /usr/local/opt/emacs-head/Emacs.app /Applications
This built emacs from source using its master git branch. It is the “NS”/cocoa version I prefer. (jansson
is C-lang JSON parser). The symlink-to-/Applications
snippet was straight out of the Caveats message in its Homebrew output.
The homebrew-emacs-head
recipe can also be configured to build a emacs26 version with multi-color font support patch, but I figured I would try the emacs27/HEAD code.
Configure emacs startup files
I now (as of this last week) have my .emacs.d
startup files in a public github repo. Here is the code that enables the macOS (system-type
: 'darwin
) emoji font in Emacs (gist follows)
I don’t now if this is the exact appropriate code, but it is working for me. It basically lets emacs know that it can use the Apple Color Emoji
font.
Also, to get the github-style :named: emoji suggestions, code adding company-emoji
2 as an installed package and to company-backends is used. Something like:
;;; https://github.com/dunn/company-emoji
(use-package company-emoji)
and
(use-package company
:config
;; ...
(add-to-list 'company-backends 'company-emoji)
❤️
Running Emacs27 with company-emoji
Launching the new Emacs.app
as usual, now the emoji-s in a file are visible! And if the colon-preface names a la Github web-editing are typed:
TBD :smi
you can select your completion suggestion from the company
dropdown:
which results in the selected emoji (the actual Unicode emoji, not the :colon:-named one) getting inserted into your buffer:
TBD 😄
Enjoy 🍰️