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 (and other dmenu-derivatives like wofi) to present exactly the picker you always wanted. Insert the selected emoji directly, or copy it to the clipboard. And you can use it to pick any weird character someone got into Unicode, too.
enterto insert the emoji directly \ Hit
alt+cto copy it to the clipboard \
alt+pcan be used to select a specific input method \
alt+1inserts the most recently used character (
alt+2for the second most recently one etc.) \
alt+uinserts the Unicode codepoint,
alt+icopies it to the clipboard
rofi -modi "emoji:<path to rofimoji.py>" -show emoji
enterto exexute your default action; \
Alt+Shift+1for copying to the clipboard
Alt+Shift+3for the "clipboard" insertion method
alt+1inserts the most recently used character (
alt+2for the second most recently one etc.)
rofimoji types the characters using either
wtype (see Display server support). You can enforce this behavior with
--action type (
For some applications (f.e. Firefox), this does not work. 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.
rofimoji uses both and also restores both.
To choose to spam your clipboards, you can either use the keybinding
alt+p or start it as
rofimoji --action clipboard (
If you want to use typing, you can hit
alt+t, even though it was started with
--action clipboard. Note that you can change the keybindings.
--action copy (or
-a copy) you can also tell
rofimoji to only copy the selected characters to your clipboard.
rofimoji supports both X11 and Wayland by using either
xdotool on X11 or
wofi (or some adapted
wtype on Wayland. It chooses automatically the right one for the currently running session.
If you want to manually overwrite this, have a look at the
--typer options below.
Please note that
wofi does not support custom keyboard shortcuts or recent files at the moment.
rofimoji will show the last ten recently used characters separately; you can insert them with
alt+2 and so on. It will use the default insertion Method.
If you don't want this, you can set
The characters are saved in
You can configure
rofimoji either with cli arguments or with a config file called
$XDG_CONFIG_HOME/rofimoji.rc. For the file, use the long option names without double dashes.
|long option||short option||possible values||description|
|Chose what |
|Define which file(s) to load characters from. You can define your own files, or use any of the default ones.|
If set to
If no file is set, the default emoji list is used.
|Define the skin tone of supporting emojis. |
|1-10||Show at most this many recently picked characters. The number will be capped at 10.|
|-||By default, |
|any string||Define the prompt text for |
|Define arguments that |
Please note that you need to specify it as
|Show the selection dialog with this application.|
|Access the clipboard with this application.|
|Type the characters using this application.|
|Choose different keybindings than the default values (|
action = copy files = [emojis, hebrew] skin-tone = moderate
You can define additional character files and load them with
-f (see options). In each line, one 'character' can be defined, followed by a single space character (
If you think your file is useful to others, please open a PR to include it in a future version of
rofimojias a rofi "mode"
rofi in version 1.6.0 or later.)
Running as rofi mode has several drawbacks that cannot be changed:
rofiis the main process,
rofimojicannot directly type to any window. Only copying the character works, so set the
Alt+Shift+1(on a Qwerty keyboard) etc.
The configuration still works as described. You can have several modes in a
combi for different character sets, for example, or set a default action and skin tone.
A kind soul has packaged it as rofimoji. To, install, use
sudo pacman -Syu rofimoji.
rofimoji is on PyPI. You can install it with
pip install --user rofimoji (or
sudo pip install rofimoji).
Download the wheel file of the latest release and install it with
sudo pip install $filename (or you can use
pip install --user $filename to only install it for the local user).
Afterwards, there should be a
rofimoji on your
This also installs the python dependency
What else do you need:
rofi(in version 1.6.0 or higher if you want to use the mode) or
xdotoolfor X11 or
xclipwork on X11;
For Ubuntu focal:
sudo aptitude install fonts-emojione python3 rofi xdotool xsel \
sudo pacman -Syu emoji-font python rofi xdotool xsel
If you really, really need to update the characters and cannot wait for the official update:
pip install -r requirements.txtin the
python main.py: This downloads several large lists from unicode.org, so please don't do it too often!
rofimojiagain from source.