Qball's Weblog

Rofi 0.15.12 - Greg is Luci

Tags Rofi 

Release 0.15.12

The 0.15.12 release of rofi focusses on improving overall user experience. These improvements mostly focussed on three things, first we (tried to) fix the problems with complex keyboard layouts, second we tried to make theming of rofi easier. Also we added several speedups. Below I will highlight these bigger changes in more details

Now that rofi reached an acceptable maturity level, we will start using more common version numbering. Right now rofi uses 0.year.month for version numbers. Starting with next version the widely used major.minor.bugfix scheme will be used. This means, that next rofi version will either be

Keyboard Layouts

Rofi used to have problems with keyboard layouts that used modifier keys to switch between different layers. These problems should now be a thing of the past.

Note the syntax for binding keys has slightly changed. The Mod1, Mod2, etc. keywords are no longer available. There was no good way to detect how these keys where mapped and if they could be used as modifiers. E.g. if the right alt (say Mod3) is configured to switch between layouts, it cannot work as modifier key to make a Mod3-p keybinding. Rofi will now check if the current layout has the SuperR,SuperL,AltGr,HyperL,HyperR keys available. If they are available they can be used for keybindings, if not, the user gets a warning. development Rofi Keyboard Warning


DMenu reading from stdin

Rofi used to have a custom fgets implementation that supported custom separators. The has been repaced by the getdelim feature of POSIX ‘08, this gave a speedup of 6x (from 648 ms for 202000 lines down to 108ms).

Multi-Core power

Still disabled by default, rofi can now spawn multiple threads for filtering rows. Depending on the underlying hardware we saw a 1.5x speedup running on a dual core ARM and up to a 3.5x speedup on a quadcore (8 threads) i7 CPU. It uses Glib’s GThreadPool and will therefore spawn threads as needed and clean them up again afterwards.

To enable this option pass the -threads 0 option, this will autodetect the number number of hw-threads. Pass -threads 4 to force it to use 4 threads. Setting the number to 1, disables it.


Rofi color themes can be specified in a lot of detail, including the use of transparency to get desired results. However color syntax proved to be difficult and testing it can be a hassle. To solve this we added a web frontend for writing themes (with live preview) and a themes repository.

To make things even easier, you can now take screenshots of rofi from within rofi with a simple keybinding.

Rofi Internal Screenshot

Theme repository

This has been requested several times and rofi’s website actually has a theming page. This however got outdated quickly and neither the themes or the screenshots are correct anymore. The newly added rofi-themes git repository allows you to add themes easily: Fork the repository and export your current color theme with rofi -dump-xresources-theme. Place it in the theme directory of the repository and run the update script. This will automatically generate screenshots and update the page. Update your fork and send a pull request. This way your theme will appear on official themes page, once it’s merged.

The repository can be found here

Rofi Theme Site


The second tool is a website allowing you to easily create themes and preview all changes life, the themenator Big thanks to SardemFF7 who got tired of me complaining, took the very rough prototype and turned it into something beautiful.

Hopefully people will make beautiful themes and submit them to the theme repository.

Rofi Themenator

Full ChangeLog

New features:


Bug fixes:

comments powered by Disqus