Using Alfred as a macOS Emoji picker

Alfred is a powerful application with vast capabilities for automation. In this post we'll explore how to make it dead simple to use it as a system-wide emoji picker in macOS. Fair warning here, if you do not already use Alfred, it is not a free app if you want to install custom things like what we'll do here, but anyone who uses it will tell you that it is well worth the price to pay for the powerpack.

The Problem

Applications like Slack and even web applications like GitHub have implemented a seamless experience for inserting emoji into text. You start typing : and the emoji picker pops up. You can then start typing a name of an emoji and when you find the one you want, press return and it will insert the emoji inline in your text. It's a wonderful UX that I wish were available in every application. macOS has implemented a native one, but it is horrible. The global shortcut is clunky and hard to remember, the picker takes a VERY long time to load, and searching emoji is not great (you can't type to filter... you just scroll... FOREVER). I've tried a number of third party Mac apps that aim to do this, and while I did find a few that were very good, ultimately I landed on Alfred snippets as a solution.

The Competition

If you're interested in checking out some of the other solutions, I've tried a few and would recommend checking out the following:

There are certainly other apps that aim to do this but many of them were very basic and not customizable, or just didn't work well.

Alfred To The Rescue

I finally made the jump to Alfred sometime in 2019 in an effort to try and bake a little more automation into my everyday workflow and speed up some repetitive tasks. I came across the Alfred Emoji Pack by Joel Califa and saw a lot of promise in it, so I installed it and promptly forgot about it until recently. After tinkering around with a few settings, I was able to take all the things I loved about each of the apps above and make it into a seamless system-wide flow for picking emoji. We'll walk through it step by step here.

First thing you'll have to do is download and install the pack from the link above. Instructions are on the website so I won't go through that here. What it will do is install a bunch of snippets in Alfred, which can be used anywhere.

Auto Expansion

In order for snippets to auto-expand in any application, you need to enable this setting:

Enable auto expansion in Alfred app

That gets you part of the way there - if you know the keyword for your emoji, you can type :keyword: in any app and it will auto-expand, no extra work required.

Cool... but what if you don't know the name of the emoji EXACTLY?

You have two other options for searching through your snippets. The first is to open Alfred and type your snippet keyword (defined in that same settings page), then start typing your snippet name:

Picking an emoji using snippet search

The other option for searching through snippets is to enable a global hotkey:

Alfred snippet settings

A few things to note about these settings:

Here's what that looks like:

Selecting a snippet with the snippet hotkey search

In either of the two approaches to searching snippets, Alfred will automatically paste the snippet into the underlying application.

Aliases

That's all great, but sometimes I don't remember a keyword for an emoji and it drives me nuts trying to remember. It would be sweet if I could add an alias. Rocket allows you to add custom keywords and map that to an emoji. In Alfred, all we have to do is go into our snippets and add a new one. You'll want to follow the convention in the Emoji Pack, where the Name of the snippet is the emoji plus the keyword. This helps when searching to see which emoji you'll be picking.

Adding a custom snippet

Recap

By using the Alfred Emoji Pack and tweaking a few of our Alfred snippet settings, we get all the best functionality of some various applications. We get:

Hopefully this was helpful! I love productivity hacks and automating stuff, so if you have any other great Alfred workflows you want to share I'd love to hear them.