How often did you want to insert one of those Unicode emoji only to learn that there is no nice picker for Linux? Fear no more, this script uses the power of rofi to present exactly the picker you always wanted. Inserts the selected emoji directly, or copies it to the clipboard.
enterto insert the emoji directly \ Hit
alt+cto copy it to the clipboard \
alt+pcan be used to select a specific input method
For some applications,
xdotool cannot type emojis (f.e. Firefox). To work around this,
rofimoji can copy the emojis to your clipboard and insert them from there with
shift+insert. Afterwards, it will restore the previous contents.
Unfortunately, it depends on the receiving application whether
shift+insert uses the clipboard or the primary selection. Therefore,
rofimoji uses both and also restores both 😐.
xdotool type. To choose to spam your clipboards, you can either use the keybinding
alt+p or start it as
rofimoji --use-clipboard (
-c). If you want to use typing, you can hit
alt+t, even though it was started with
You can choose a skin tone with the
-s) parameter. The available values are
black, as well as
ask to be shown the prompt (this is also the default).
If you have any arguments for rofi, you can make
rofimoji pass them through like this:
rofimoji --rofi-args="-columns 3".
A kind soul has packaged it as rofimoji. To, install, use
sudo pacman -Syu rofimoji.
rofimoji.py and move it somewhere on your path, for example
What else do you need:
For Ubuntu zesty:
sudo aptitude install fonts-emojione python3 rofi xdotool xsel \
sudo pacman -Syu emoji-font python rofi xdotool xsel
This is only needed if a new Unicode version came out and you can’t wait for the official update!
pip install -r requirements-dev.txt
extract_emojis.py- this downloads the complete list from https://unicode.org/emoji/charts-12.0/full-emoji-list.html, so don’t do it too often!
emojis.pyshould have been created. Open it and copy the contents
rofimoji.pyand replace the emoji list with the contents of
Because now you only have to download one file, and it works Additionally, we need no separate I/O just to load the emojis. This is good, right?