adi1090x/rofi: A Theme and Menu Collection for Rofi on Linux
A huge collection of Rofi based custom Applets, Launchers & Powermenus.
At a glance
- What is it?
- The repository packages launchers, applets and powermenus built on top of Rofi 1.7.4, installed by a single setup script. It is a styling and menu layer, not a replacement for Rofi itself, and its configs assume you run a window manager rather than a full desktop.
- Who is it for?
- Adopt it if you already run Rofi 1.7.4 on a tiling window manager and want ready-made launcher, applet and powermenu themes without writing Rasi files yourself. Skip it if your Rofi version differs, if you want a single minimal theme you fully control, or if you expect an actively developed upstream: the last push was on 2026-05-31.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 121 days ago.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What adi1090x/rofi actually adds on top of Rofi
Rofi itself is a window switcher, application launcher and dmenu replacement. The README describes it as starting as a clone of simpleswitcher and later gaining an application launcher and ssh-launcher. That program is the dependency. This repository supplies the configuration layer around it: launchers in seven types, applets in five, and powermenus in six, each with numbered styles and preview images under previews/. Nothing here is a binary or a fork. If Rofi is not installed, the collection has nothing to run on.
The audience is narrow and specific. The topics list names i3wm, bspwm, awesomewm, qtile, openbox and xmonad, which tells you the intended setting is a tiling or lightweight window manager where a keyboard-driven menu is the normal way to start programs and shut the machine down. On a desktop environment that already ships its own launcher and session menu, the powermenus duplicate existing functions. The value is highest for someone assembling a window manager session from parts and not wanting to write Rasi theme files from scratch.
How the themes, colors and shared files fit together
The layout is what the README calls an ecosystem: everything is connected with each other in some way, and it warns that you should know what you are doing before modifying anything yourself. That warning is accurate, because the files are layered rather than self-contained.
Each type directory holds a launcher.sh entry script, a shared/ directory, and style files. The script selects which style to use, and the shared directory holds the color import. Changing the style means editing one line in launcher.sh. Changing colors means editing the import line in shared/colors.rasi, which points at a scheme under ~/.config/rofi/colors/, for example onedark.rasi. The README notes one exception: colors in type-5, type-6 and type-7 are hard-coded based on the source image colors, so those must be edited in the respective style-X.rasi file instead. That is a real inconsistency in the design. Three of the seven launcher types do not follow the same color pipeline as the other four, so a global color change will not reach them.
The applets are scripts that present a Rofi menu, and the powermenus are the same idea applied to session actions. The README does not document the internal call graph of those scripts, so the practical way to understand a given applet is to open its script and read the rofi invocation inside it.
Installing adi1090x/rofi and changing your first theme
The README pins everything to Rofi 1.7.4 and says to make sure you have the same stable version installed first. Install Rofi through your distribution: `sudo pacman -S rofi` on Arch, `sudo apt-get install rofi` on Debian or Ubuntu, `sudo dnf install rofi` on Fedora.
sudo pacman -S rofiClone the repository shallow, since only the current tree matters, then make the setup script executable and run it.
git clone --depth=1 https://github.com/adi1090x/rofi.gitcd rofi
chmod +x setup.sh
./setup.shThe script prints its progress as it goes. According to the README output, it installs fonts, updates the font cache, creates a backup of your existing rofi configs, installs the rofi configs, and ends with a success line. That backup step matters: the script writes into your rofi configuration directory, and it takes a copy of what was there before. Read setup.sh before running it if you have hand-written configs you care about.
After installation, pick a launcher type and switch its style by editing the theme variable in its launcher.sh.
theme='style-1'To change the color scheme for the types that support it, edit the import in the shared colors file.
@import "~/.config/rofi/colors/onedark.rasi"Remember that type-5, type-6 and type-7 ignore this file. For those, open the corresponding style-X.rasi and edit the colors there.
The version pin and the hard-coded colors are the sharp edges
The README states plainly that everything was created on rofi version 1.7.4 and asks you to have the same stable version. That is a constraint, not a suggestion. Rofi theme syntax and option names have changed across releases, and a collection this size, with seven launcher types and dozens of styles, is unlikely to be validated against every version a distribution ships. If your distribution packages something newer or older than 1.7.4, expect to debug individual styles rather than assume the whole set works.
The second sharp edge is the hard-coded color handling in three launcher types. The README documents it, but it is easy to miss, and it means the mental model of one colors file controlling everything is wrong for a large part of the collection.
The third is the backup behavior. The setup script copies your existing rofi configs before installing. The README does not document a rollback command or an uninstall path, so restoring your previous setup means locating that backup yourself and copying it back. Treat the install as a one-way operation unless you have verified the backup location on your own system.
Finally, this is a configuration collection, not an application. If Rofi breaks after a system update, the failure is in Rofi, and this repository cannot fix it.
Rofi vs dmenu, and why the choice matters here
The README addresses the comparison directly: Rofi can act as a drop-in dmenu replacement, and like dmenu it presents a textual list of options where one or more can be selected, whether that is running an application, selecting a window, or options supplied by an external script. The difference in approach is that dmenu is a single-purpose input menu, while Rofi carries its own theme system and additional modes such as the application launcher and ssh-launcher.
That distinction is exactly why this collection exists. The launchers, applets and powermenus are Rofi configurations and scripts, and they depend on Rofi's theming and mode features. None of it transfers to dmenu, which has no equivalent Rasi theme layer. If you are committed to dmenu, this repository is not a lighter alternative; it is inapplicable.
The same logic applies to other Rofi theme collections. The difference is scope rather than mechanism: this one ships a large set of types and styles plus a setup script that installs fonts and backs up configs, whereas a single hand-written theme is one file you maintain yourself. The trade-off is breadth against control. A hundred styles you did not write are a hundred styles you must read before you can safely change them, and the README's own warning about the ecosystem being interconnected points at that cost.
Maintenance status and licence
The repository is not archived, and the last push was on 2026-05-31. There are no retrieved releases, so updates arrive as commits to the master branch rather than as tagged versions. That means there is no version number to pin against and no changelog to read before pulling. If you clone and later pull, you are taking whatever landed on master, and the README's version pin to Rofi 1.7.4 does not move with it.
The licence is GPL-3.0, as stated in the repository metadata and shown in the README badge. For a collection of shell scripts and theme files that you install locally, the practical effect is that redistribution or modified redistribution carries the obligations of that licence. This is not legal advice; if you plan to ship these configs inside a distribution or a product, read the LICENSE file at the repository root and get your own opinion.
Upgrade cost is low in absolute terms and high in attention. Pulling new commits is one command, but because the install script overwrites configuration paths and the themes reference each other, an upgrade is not a drop-in file swap. You re-run setup.sh and re-check your style and color edits against whatever changed. Anyone who has customized a style file should keep those edits somewhere outside the installed config tree.
Editorial conclusion
Adopt it if you already run Rofi 1.7.4 on a tiling window manager and want ready-made launcher, applet and powermenu themes without writing Rasi files yourself. Skip it if your Rofi version differs, if you want a single minimal theme you fully control, or if you expect an actively developed upstream: the last push was on 2026-05-31. Before installing, check `rofi -version`, read setup.sh to see exactly which paths it overwrites, and confirm you have a copy of `~/.config/rofi` outside the backup the script makes.
Frequently asked questions
What is rofi?
According to the README, Rofi is a window switcher, application launcher and dmenu replacement. It started as a clone of simpleswitcher and was extended with features such as an application launcher and ssh-launcher.
Where can I find the rofi configuration file?
This collection installs its configs under ~/.config/rofi. The launcher style is set in ~/.config/rofi/launchers/type-X/launcher.sh and the color import lives in ~/.config/rofi/launchers/type-X/shared/colors.rasi.
What is rofi in Linux?
It is a keyboard-driven menu program that presents a textual list of options, where one or more can be selected, whether that means running an application, selecting a window, or choosing options provided by an external script.
What are the key differences between rofi and dmenu?
The README says Rofi can act as a drop-in dmenu replacement and, like dmenu, shows a textual list of selectable options. Rofi goes further by adding extra features such as an application launcher and ssh-launcher.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/adi1090x-rofi)