2026-03-10 10:45:36 -04:00
2022-09-06 15:27:25 +05:30
2022-08-19 19:51:36 +05:30
2026-03-07 01:32:14 -05:00
2026-03-10 10:45:36 -04:00
2026-03-10 10:45:36 -04:00
2026-03-07 01:32:14 -05:00
2022-08-13 16:49:37 +05:30
2026-03-07 01:32:14 -05:00
2022-08-13 17:04:44 +05:30

undefined undefined undefined

A huge collection of Rofi based custom Applets, Launchers & Powermenus.

Launchers
Type 1 Type 2 Type 3 Type 4
img img img img
Type 5 Type 6 Type 7
img img img
Applets
Type 1 Type 2 Type 3
img img img
Type 4 Type 5
img img
Powermenus
Type 1 Type 2 Type 3
img img img
Type 4 Type 5 Type 6
img img img

What is Rofi?

Rofi is A window switcher, Application launcher and dmenu replacement. Rofi started as a clone of simpleswitcher and It has been extended with extra features, like an application launcher and ssh-launcher, and can act as a drop-in dmenu replacement, making it a very versatile tool. Rofi, like dmenu, will provide the user with a textual list of options where one or more can be selected. This can either be running an application, selecting a window, or options provided by an external script.

Installation

Everything here is created on rofi version : 1.7.4

  • First, Make sure you have the same (stable) version of rofi installed.
    • On Arch / Arch-based : sudo pacman -S rofi
    • On Debian / Ubuntu : sudo apt-get install rofi
    • On Fedora : sudo dnf install rofi
  • Then, Clone this repository -
$ git clone --depth=1 https://github.com/adi1090x/rofi.git
  • Change to cloned directory and make setup.sh executable -
$ cd rofi
$ chmod +x setup.sh
  • Run setup.sh to install the configs -
$ ./setup.sh

[*] Installing fonts...
[*] Updating font cache...

[*] Creating a backup of your rofi configs...
[*] Installing rofi configs...
[*] Successfully Installed.
  • That's it, These themes are now installed on your system.

Note

: These themes are like an ecosystem, everything here is connected with each other in some way. So... before modifying anything by your own, make sure you know what you doing.

NixOS / Home Manager

This repository ships a Home Manager module that replaces setup.sh entirely. All theme files are installed declaratively, two commands (rofi-launcher and rofi-powermenu by default) are generated and added to your PATH, and every user-facing setting — color scheme, launcher style, power-menu actions, applet apps, quick links, and rofi's own config — is exposed as a typed Nix option.

Flake setup

Add the flake as an input in your system or home-manager flake:

inputs = {
  rofi-themes.url = "github:adi1090x/rofi";
  # optional: keep rofi-themes on the same nixpkgs as the rest of your config
  rofi-themes.inputs.nixpkgs.follows = "nixpkgs";
};

Then import the module and enable it for a user:

# inside home-manager.users.<name> = { ... }; or a standalone HM config
imports = [ inputs.rofi-themes.homeManagerModules.default ];

programs.rofi-adi1090x.enable = true;

That's the minimum. Rofi, both generated command scripts, all theme files, and the bundled fonts are installed automatically.


Full example

programs.rofi-adi1090x = {
  enable = true;

  # ── color scheme ────────────────────────────────────────────────────────
  # One of: adapta arc black catppuccin cyberpunk dracula everforest
  #         gruvbox lovelace navy nord onedark paper solarized tokyonight yousai
  colorScheme = "catppuccin";

  # ── launcher ────────────────────────────────────────────────────────────
  launcher = {
    commandName = "app-launcher";   # command added to PATH
    type        = 4;                # layout family 17
    style       = 7;                # style variant  115
    show        = "drun";           # rofi -show mode: drun | run | window | filebrowser
  };

  # ── power menu ──────────────────────────────────────────────────────────
  powermenu = {
    commandName = "power-menu";     # command added to PATH
    type        = 2;                # layout family 16
    style       = 3;                # style variant  15
    # set any action to null to remove it from the menu
    lock        = "swaylock -f";
    suspend     = "systemctl suspend";
    hibernate   = null;             # hidden — not shown in the menu
    logout      = "loginctl kill-session \"$XDG_SESSION_ID\"";
    reboot      = "systemctl reboot";
    shutdown    = "systemctl poweroff";
  };

  # ── applets ─────────────────────────────────────────────────────────────
  applets = {
    type  = 2;                      # layout family 15
    style = 1;                      # style variant  13

    # commands launched by the Apps applet
    apps = {
      terminal    = "kitty";
      fileManager = "nautilus";
      textEditor  = "code";
      browser     = "firefox";
      music       = "spotify";
      settings    = "gnome-control-center";
    };

    # entries shown in the Quick Links applet (max 6)
    quickLinks = [
      { name = "GitHub";       url = "https://github.com/";               icon = ""; }
      { name = "YouTube";      url = "https://www.youtube.com/";          icon = ""; }
      { name = "NixOS";        url = "https://nixos.org/";                icon = ""; }
      { name = "Hacker News";  url = "https://news.ycombinator.com/";     icon = ""; }
    ];
  };

  # ── rofi global config ──────────────────────────────────────────────────
  rofiConfig = {
    modi        = "drun,run,window,filebrowser";
    font        = "JetBrains Mono Nerd Font 12";
    iconTheme   = "Papirus";
    showIcons   = true;
    terminal    = "kitty";
    # verbatim lines injected into configuration { } in config.rasi
    extraConfig = ''
      display-drun: "Apps";
      drun-display-format: "{name}";
      disable-history: false;
    '';
  };

  # ── fonts & dependencies ────────────────────────────────────────────────
  installFonts     = true;   # install bundled Nerd Fonts (default: true)
  withOptionalDeps = true;   # install acpi, light, mpd, maim, xclip, etc.
  extraPackages    = [ pkgs.alacritty ];
};

Option reference

Top-level

Option Type Default Description
enable bool false Master switch
colorScheme enum "onedark" Color scheme for all applets — see Color Schemes below
installFonts bool true Install bundled TTF fonts into ~/.local/share/fonts/rofi-adi1090x
withOptionalDeps bool false Install applet runtime deps: acpi, light, mpd, mpc-cli, maim, xrandr, dunst, xclip, alsa-utils, pavucontrol, polkit
extraPackages list [] Any additional packages to add alongside rofi

launcher.*

Option Type Default Description
commandName string "rofi-launcher" Name of the generated executable placed on PATH
type 17 1 Launcher layout family — see Launchers
style 115 1 Style variant within the chosen type
show string "drun" Rofi mode passed to -show: drun, run, window, filebrowser

powermenu.*

Option Type Default Description
commandName string "rofi-powermenu" Name of the generated executable placed on PATH
type 16 1 Power menu layout family — see Powermenus
style 15 1 Style variant within the chosen type
lock string or null null Screen-lock command; null hides the entry from the menu
suspend string or null "systemctl suspend" Suspend command; null hides the entry
hibernate string or null null Hibernate command; null hides the entry
logout string or null loginctl kill-session … Logout command; null hides the entry
reboot string or null "systemctl reboot" Reboot command; null hides the entry
shutdown string or null "systemctl poweroff" Power-off command; null hides the entry

All power menu actions show a confirmation dialog before executing.

applets.*

Option Type Default Description
type 15 1 Layout family for all applet scripts — see Applets
style 13 1 Style variant within the chosen type
apps.terminal string "alacritty" Terminal emulator (Apps applet)
apps.fileManager string "thunar" File manager (Apps applet)
apps.textEditor string "geany" Text editor (Apps applet)
apps.browser string "firefox" Web browser (Apps applet)
apps.music string "alacritty -e ncmpcpp" Music player command (Apps applet)
apps.settings string "xfce4-settings-manager" System settings app (Apps applet)
quickLinks list of {name, url, icon} 6 web links Entries for the Quick Links applet (max 6 are used)

Each quickLinks entry takes:

Field Type Required Description
name string Label displayed in the rofi menu
url string URL opened with xdg-open when selected
icon string Optional Nerd-Font icon character prepended to the label

rofiConfig.*

Option Type Default Description
modi string "drun,run,filebrowser,window" Comma-separated list of enabled rofi modes
terminal string "rofi-sensible-terminal" Terminal used by rofi for run-in-terminal
font string "Mono 12" Font string passed to rofi
iconTheme string "Papirus" Icon theme name
showIcons bool true Show application icons next to entries
extraConfig lines "" Verbatim lines injected into configuration { } in config.rasi

What the module manages

Path How it is created
~/.config/rofi/config.rasi Generated from rofiConfig.* options
~/.config/rofi/applets/shared/theme.bash Generated from applets.type / applets.style
~/.config/rofi/applets/shared/colors.rasi Generated from colorScheme
~/.config/rofi/applets/bin/apps.sh Generated from applets.apps.*
~/.config/rofi/applets/bin/quicklinks.sh Generated from applets.quickLinks
~/.config/rofi/applets/bin/*.sh (all others) Symlinked read-only from the Nix store
~/.config/rofi/{colors,launchers,powermenu,scripts,images} Symlinked read-only from the Nix store
~/.local/share/fonts/rofi-adi1090x/ Symlinked (when installFonts = true)

Generated files are updated automatically on home-manager switch. Because the theme directories are read-only Nix store symlinks, editing .rasi files directly is not supported — use the options above, or add xdg.configFile overrides in your home config for one-off changes.


Special thanks to all the Sponsors. Maintenance of this project is made possible by you guys. If you'd like to sponsor this project and have your avatar appear below, click here 💖

User avatar: David ToskaUser avatar: David Vargas


Launchers

Change Style : Edit ~/.config/rofi/launchers/type-X/launcher.sh script and edit the following line to use the style you like.

theme='style-1'

Change Colors : Edit ~/.config/rofi/launchers/type-X/shared/colors.rasi file and edit the following line to use the color-scheme you like.

@import "~/.config/rofi/colors/onedark.rasi"

Colors in type-5, type-6 and type-7 are hard-coded (based on image colors) and can be changed by editing the respective style-X.rasi file.

Previews

Type 1
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Style 6 Style 7 Style 8 Style 9 Style 10
img img img img img
Style 11 Style 12 Style 13 Style 14 Style 15
img img img img img
Type 2
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Style 6 Style 7 Style 8 Style 9 Style 10
img img img img img
Style 11 Style 12 Style 13 Style 14 Style 15
img img img img img
Type 3
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Style 6 Style 7 Style 8 Style 9 Style 10
img img img img img
Type 4
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Style 6 Style 7 Style 8 Style 9 Style 10
img img img img img
Type 5
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Type 6
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Style 6 Style 7 Style 8 Style 9 Style 10
img img img img img
Type 7
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Style 6 Style 7 Style 8 Style 9 Style 10
img img img img img

Color Schemes
Adapta Arc Black Catppuccin Cyberpunk
img img img img img
Dracula Everforest Gruvbox Lovelace Navy
img img img img img
Nord Onedark Paper Solarized Yousai
img img img img img

Applets

Applets Description Required Applications
Apps As Root Open Applications as root pkexec : alacritty, thunar, geany, ranger, vim
Apps Favorite or most used Applications alacritty, thunar, geany, firefox, ncmpcpp, xfce4-settings-manager
Battery Display battery percentage & charging status with dynamic icons pkexec, acpi, powertop xfce4-power-manager-settings
Brightness Display and adjust screen brightness light, xfce4-power-manager-settings
MPD Control the song play through mpd mpd, mpc
Powermenu A classic power menu, with Uptime systemd, betterlockscreen
Quicklinks Bookmarks for most used websites firefox or chromium or any other browser
Screenshot Take screenshots using maim maim, xrandr, dunst, xclip
Volume Display and control volume with dynamic icons and mute status amixer and pavucontrol

To use your programs with these applets, Edit the scripts in ~/.config/rofi/applets/bin directory.

Change Theme : Edit ~/.config/rofi/applets/shared/theme.bash script and edit the following line to use the type and style you like.

type="$HOME/.config/rofi/applets/type-1"
style='style-1.rasi'

Change Colors : Edit ~/.config/rofi/applets/shared/colors.rasi file and edit the following line to use the color-scheme you like.

@import "~/.config/rofi/colors/onedark.rasi"

Colors in type-4 and type-5 are hard-coded (based on image colors) and can be changed by editing the respective style-X.rasi file.

Previews

Apps as root
Type 1 Type 2 Type 3 Type 4 Type 5
img img img img img
Apps
Type 1 Type 2 Type 3 Type 4 Type 5
img img img img img
Battery
Type 1 Type 2 Type 3 Type 4 Type 5
img img img img img
Brightness
Type 1 Type 2 Type 3 Type 4 Type 5
img img img img img
MPD
Type 1 Type 2 Type 3 Type 4 Type 5
img img img img img
Powermenu
Type 1 Type 2 Type 3 Type 4 Type 5
img img img img img
Quicklinks
Type 1 Type 2 Type 3 Type 4 Type 5
img img img img img
Screenshot
Type 1 Type 2 Type 3 Type 4 Type 5
img img img img img
Volume
Type 1 Type 2 Type 3 Type 4 Type 5
img img img img img

Powermenus

Change Style : Edit ~/.config/rofi/powermenu/type-X/powermenu.sh script and edit the following line to use the style you like.

theme='style-1'

Change Colors : Edit ~/.config/rofi/powermenu/type-X/shared/colors.rasi file and edit the following line to use the color-scheme you like.

@import "~/.config/rofi/colors/onedark.rasi"

Colors in type-5 and type-6 are hard-coded (based on image colors) and can be changed by editing the respective style-X.rasi file.

Previews

Type 1
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Type 2
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Style 6 Style 7 Style 8 Style 9 Style 10
img img img img img
Type 3
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Type 4
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Type 5
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img
Type 6
Style 1 Style 2 Style 3 Style 4 Style 5
img img img img img

Tips

Simple way to execute scripts

There's a $HOME/.config/rofi/scripts directory, which contains links to each script. you can execute these links to open any type of Launcher, Applet or Powermenu.

You can add $HOME/.config/rofi/scripts directory to your $PATH variable so that entering t7_launcher in the terminal (or executing this command) will summon the type-7 launcher. you can do it by -

  • In bash
# Add directory to the $PATH variable
echo "PATH=$PATH:~/.config/rofi/scripts" >> ~/.profile
  • In zsh (oh-my-zsh)
# Edit .zshrc and add this line
export PATH=$HOME/.config/rofi/scripts:$PATH

Warning: After changing the shell files, Logout and Login back again to update the $PATH environment variable.

Nix users: The Home Manager module adds the configured launcher.commandName and powermenu.commandName executables directly to your PATH — no manual $PATH editing needed.

Usage

with polybar

You can use these launchers, powermenus or applets with polybar by simply adding a module like that:

;; Application Launcher Module
[module/launcher]
type = custom/text

content = 
content-background = black
content-foreground = green

click-left = ~/.config/rofi/launchers/type-1/launcher.sh
click-right = launcher_t1

;; Power Menu Module
[module/powermenu]
type = custom/text

content = 
content-background = black
content-foreground = red

click-left = ~/.config/rofi/powermenu/type-1/powermenu.sh
click-right = powermenu_t1

If you are using the Home Manager module, use the command names configured in launcher.commandName and powermenu.commandName (defaults: rofi-launcher and rofi-powermenu):

[module/launcher]
type = custom/text
content = 
content-background = black
content-foreground = green
click-left = rofi-launcher

[module/powermenu]
type = custom/text
content = 
content-background = black
content-foreground = red
click-left = rofi-powermenu

with i3wm

You can also use them with the keybindings on your window manager, For example:

set $mod Mod4

bindsym $mod+p exec --no-startup-id ~/.config/rofi/launchers/type-2/launcher.sh
bindsym $mod+x exec --no-startup-id powermenu_t2

With the Home Manager module:

set $mod Mod4

bindsym $mod+p exec --no-startup-id rofi-launcher
bindsym $mod+x exec --no-startup-id rofi-powermenu

with Openbox

Same thing can be done with openbox by adding these lines to rc.xml file:

  <keyboard>
    <keybind key="W-p">
      <action name="Execute">
        <command>launcher_t3</command>
      </action>
    </keybind>
    <keybind key="W-x">
      <action name="Execute">
        <command>~/.config/rofi/powermenu/type-3/powermenu.sh</command>
      </action>
    </keybind>
  </keyboard>

With the Home Manager module:

  <keyboard>
    <keybind key="W-p">
      <action name="Execute">
        <command>rofi-launcher</command>
      </action>
    </keybind>
    <keybind key="W-x">
      <action name="Execute">
        <command>rofi-powermenu</command>
      </action>
    </keybind>
  </keyboard>

FYI

  • For previous versions, check the respective branch, 1.7.0 is the most recent branch.
  • These themes are created on a display with 1920x1080 resolution. Everything should work fine on your display as well, except fullscreen themes. So Adjust the margin and padding by yourself.
  • The purpose of this repository is to provide you a complete (almost) reference. So by using the files as reference, You can theme rofi by yourself.
Languages
Shell 100%