System-wide character-picker: emoji and unicode shell extensions for rofi
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mathieu Laparie 3bd4a7f73c Clarify recommended configuration. 3 years ago Clarify recommended configuration. 3 years ago
config.example Fix error in config. 3 years ago
emojis.txt emoji.txt 12.0 update, readme wording improvement. 3 years ago
rofiemoji-rofiunicode2.png emoji.txt 12.0 update, readme wording improvement. 3 years ago Fix path error in and 3 years ago


Inspired by fdw/rofimoji and forked from its script version nkoehring/rofiemoji, rofiemoji-rofiunicode is a character-picker that combines two scripts to search and copy emojis or unicode characters directly from davatorium/rofi.

It comes with an example configuration file and theme that should make it ready to use without user configuration, even for those who never used rofi before. When using the recommended procedure, unicode and emoji lists show up as separate tabs when rofi is invoked:



The two underlying scripts, and, will try to download the lists of emoji and unicode characters if they are missing, but this should already been taken care of when cloning this repository. The list of emojis is fetched from while the unicode list was created by /u/fe80c0ffee.


  • rofi from davatorium/rofi but probably available in your package manager as well.
  • xsel to copy the selection to the clipboard. You should find it in your package manager.
  • An emoji capable font, e.g., Noto Emoji or Noto Color Emoji.


  1. Clone this repository into ~/.config:
cd ~/.config # Using this path is important for next steps
git clone
  1. (Optional) Apply the recommended configuration:
mv $HOME/.config/rofi/config $HOME/.config/rofi/config.back
cp $HOME/.config/rofiemoji-rofiunicode/config.example $HOME/.config/rofi/config
mkdir -p $HOME/.local/share/rofi/themes
cp $HOME/.config/rofiemoji-rofiunicode/sidetab-adapta.rasi $HOME/.local/share/rofi/themes/
  1. If step 2 was completed, add a custom keybinding using your window-manager settings for the following command:
rofi -show windowcd -theme-str '#window{width: 30%;}' # See the rofi documentation for details
  1. If step 2 was skipped, use a command containing at least the following arguments:
rofi -show unicode -modi 'unicode:~/.config/rofiemoji-rofiunicode/,emoji:~/.config/rofiemoji-rofiunicode/' -theme-str '#window{width: 30%;}'


  1. Invoke rofi using the keybinding you set and navigate through tabs using Ctrl+Tab (default).

  2. Type a keyword in the emoji or unicode tabs and press Return to copy the highlighted character to the clipboard and close rofi.

Users who already configured rofi to their own taste before may prefer to skip installation step 2 to keep their custom changes.

However, for users new to rofi, applying the recommended configuration (installation step 2) should facilitate the setup by configuring everything as in the screenshots. This will move/rename the supplied config.example file and the sidetab-adapta.rasi theme (originally taken from the davatorium/rofi-themes collection) into the adequate folders.

Make sure you review config.example to check if custom changes will work on your machine. While most of them should be system-agnostic, some settings are tailored to my own use and may not work on all systems.

For instance, the supplied config.example file makes rofi work with gnome-terminal, but default rofi values might work better when using other terminals. In the latter case, it is best to edit config.example before installation step 2 (or ~/.config/rofi/config after step 2) to update it according to your specific system requirements, or simply to disable each of the following lines by prepending them with !:


rofi.terminal: gnome-terminal
rofi.ssh-command: {terminal} -- {ssh-client} {host} {terminal} -- bash -c "{cmd}; bash"


! rofi.terminal: gnome-terminal
! rofi.ssh-command: {terminal} -- {ssh-client} {host}
! {terminal} -- bash -c "{cmd}; bash"

Alternative emoji- and unicode-picker

kabouik/rofimoji is an alternative based on the original fdw/rofimoji instead of the nkoehring/rofiemoji script version, but still with the addition of unicode characters. It allows multiple selection of emojis or unicode characters, as well as direct input without prior clipboard step, but the customization possibilities are more limited and there is no visual unification with your main rofi instance.