Top Related Projects
Quick Overview
The adi1090x/rofi
repository is a collection of themes and configuration files for the popular application launcher and window switcher, Rofi. Rofi is a popular open-source tool that provides a customizable and efficient way to launch applications, switch between windows, and perform other system-related tasks.
Pros
- Extensive Customization: The repository offers a wide range of pre-designed themes and configurations, allowing users to easily customize the appearance and behavior of Rofi to suit their preferences.
- Active Development: The project is actively maintained, with regular updates and improvements to the available themes and configurations.
- Community Support: The project has a large and engaged community, providing a wealth of resources, documentation, and support for users.
- Cross-platform Compatibility: Rofi is compatible with various desktop environments and window managers, making it a versatile tool for users across different Linux distributions.
Cons
- Learning Curve: Customizing Rofi can be a bit complex for users who are new to the tool, as it requires understanding the configuration file structure and syntax.
- Limited Documentation: While the project has a large community, the documentation for some of the more advanced features and customization options may be limited.
- Dependency on Rofi: The repository is entirely focused on Rofi, and users who prefer alternative application launchers or window switchers may not find it as useful.
- Potential Compatibility Issues: As the repository provides custom themes and configurations, there may be occasional compatibility issues with newer versions of Rofi or changes in the underlying desktop environment.
Getting Started
To get started with the adi1090x/rofi
repository, follow these steps:
- Install Rofi on your system, if you haven't already done so. Rofi is available in the package repositories of most Linux distributions.
- Clone the
adi1090x/rofi
repository to your local machine:git clone https://github.com/adi1090x/rofi.git
- Navigate to the cloned repository:
cd rofi
- Explore the available themes and configurations in the
themes/
directory. - To use a specific theme, copy the corresponding configuration file to your Rofi configuration directory (typically
~/.config/rofi/
). - Restart Rofi or log out and log back in to see the changes.
Alternatively, you can use the included setup.sh
script to automatically install the themes and configurations:
./setup.sh
This script will copy the necessary files to your Rofi configuration directory and update the configuration to use the selected theme.
Competitor Comparisons
Rofi: A window switcher, application launcher and dmenu replacement
Pros of rofi
- Core project with active development and maintenance
- Highly customizable and extensible
- Comprehensive documentation and man pages
Cons of rofi
- Requires more manual configuration
- Less out-of-the-box theming options
- Steeper learning curve for beginners
Code Comparison
rofi (davatorium/rofi):
static int rofi_view_error_dialog ( const char *msg, int markup )
{
GString *emesg = g_string_new ( msg );
if ( !markup ) {
g_string_replace ( emesg, "&", "&", 0 );
g_string_replace ( emesg, "<", "<", 0 );
}
RofiViewState *state = rofi_view_create ( emesg->str, "Error", NULL, MENU_ERROR_DIALOG );
g_string_free ( emesg, TRUE );
return rofi_view_error_dialog_result ( state );
}
rofi (adi1090x/rofi):
#!/usr/bin/env bash
## Author : Aditya Shakya
## Mail : adi1090x@gmail.com
## Github : @adi1090x
## Twitter : @adi1090x
# Available Styles
# >> Created and tested on : rofi 1.6.0-1
#
# style_1 style_2 style_3 style_4 style_5 style_6
# style_7 style_8 style_9 style_10 style_11 style_12
The adi1090x/rofi repository focuses on providing pre-configured themes and scripts for rofi, while davatorium/rofi is the core project with more extensive customization options and development activity.
ElKowars wacky widgets
Pros of eww
- Written in Rust, offering better performance and memory safety
- Highly customizable with a declarative configuration language (Yuck)
- Supports creating complex widgets and layouts beyond just application launchers
Cons of eww
- Steeper learning curve due to its unique configuration language
- Less out-of-the-box themes and configurations compared to rofi
- Requires more setup and configuration for basic functionality
Code Comparison
eww configuration example:
(defwindow example
:monitor 0
:geometry (geometry :x "0%"
:y "0%"
:width "100%"
:height "30px")
:stacking "fg"
(bar))
rofi configuration example:
rofi -show drun -theme themes/appfolder.rasi
eww focuses on creating custom widgets with a declarative language, while rofi primarily serves as an application launcher with simpler configuration options. eww offers more flexibility for creating complex UI elements, but rofi provides a more straightforward approach for basic application launching and window switching tasks.
A fast and easy-to-use status bar
Pros of polybar
- More comprehensive and feature-rich status bar solution
- Highly customizable with extensive configuration options
- Active development and large community support
Cons of polybar
- Steeper learning curve due to complexity
- Requires more system resources compared to lightweight alternatives
Code comparison
Polybar configuration example:
[bar/mybar]
modules-left = i3
modules-center = date
modules-right = pulseaudio battery
Rofi configuration example:
configuration {
modi: "run,drun,window";
width: 50;
lines: 15;
columns: 2;
}
Summary
Polybar is a powerful and versatile status bar for Linux systems, offering extensive customization options and a wide range of features. It's well-suited for users who want a highly configurable and feature-rich status bar solution. However, it may require more time to set up and configure compared to simpler alternatives like Rofi.
Rofi, on the other hand, is primarily an application launcher and window switcher, which can be extended to include additional functionality. It's generally easier to set up and use out of the box, making it a good choice for users who prefer a simpler, more lightweight solution.
While both projects serve different primary purposes, they can be used together in a Linux desktop environment to create a comprehensive and customized user experience.
Awesome WM complements
Pros of Lain
- Lain provides a wide range of widgets and utilities for the Awesome window manager, enhancing its functionality and customization options.
- The project has a large and active community, with regular updates and a well-documented wiki.
- Lain integrates seamlessly with the Awesome window manager, providing a cohesive and streamlined user experience.
Cons of Lain
- Lain may have a steeper learning curve compared to Rofi, as it requires a deeper understanding of the Awesome window manager and its configuration.
- The project's focus on Awesome may limit its appeal to users of other window managers or desktop environments.
- Lain's extensive feature set may be overkill for users who only require basic functionality.
Code Comparison
Rofi:
configuration {
modi: "window,run,ssh";
width: 50;
lines: 15;
font: "Noto Sans 10";
bw: 1;
bc: "#005577";
bg: "#222222";
fg: "#eeeeee";
hlfg: "#eeeeee";
hlbg: "#005577";
}
Lain:
local awful = require("awful")
local beautiful = require("beautiful")
local wibox = require("wibox")
local lain = {}
lain.widgets = {}
lain.widgets.calendar = {
attach_to = { "clock" },
font = "Noto Sans Mono 10",
position = "bottom_right",
radius = 4,
spacing = 10,
icon = beautiful.widget_calendar_icon
}
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
A huge collection of Rofi based custom Applets, Launchers & Powermenus.
Launchers
Type 1 | Type 2 | Type 3 | Type 4 |
---|---|---|---|
Type 5 | Type 6 | Type 7 |
---|---|---|
Applets
Type 1 | Type 2 | Type 3 |
---|---|---|
Type 4 | Type 5 |
---|---|
Powermenus
Type 1 | Type 2 | Type 3 |
---|---|---|
Type 4 | Type 5 | Type 6 |
---|---|---|
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
- On Arch / Arch-based :
- 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.
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 ð
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
andtype-7
are hard-coded (based on image colors) and can be changed by editing the respectivestyle-X.rasi
file.
Previews
Type 1
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Style 6 | Style 7 | Style 8 | Style 9 | Style 10 |
---|---|---|---|---|
Style 11 | Style 12 | Style 13 | Style 14 | Style 15 |
---|---|---|---|---|
Type 2
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Style 6 | Style 7 | Style 8 | Style 9 | Style 10 |
---|---|---|---|---|
Style 11 | Style 12 | Style 13 | Style 14 | Style 15 |
---|---|---|---|---|
Type 3
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Style 6 | Style 7 | Style 8 | Style 9 | Style 10 |
---|---|---|---|---|
Type 4
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Style 6 | Style 7 | Style 8 | Style 9 | Style 10 |
---|---|---|---|---|
Type 5
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Type 6
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Style 6 | Style 7 | Style 8 | Style 9 | Style 10 |
---|---|---|---|---|
Type 7
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Style 6 | Style 7 | Style 8 | Style 9 | Style 10 |
---|---|---|---|---|
Color Schemes
Adapta | Arc | Black | Catppuccin | Cyberpunk |
---|---|---|---|---|
Dracula | Everforest | Gruvbox | Lovelace | Navy |
---|---|---|---|---|
Nord | Onedark | Paper | Solarized | Yousai |
---|---|---|---|---|
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
andtype-5
are hard-coded (based on image colors) and can be changed by editing the respectivestyle-X.rasi
file.
Previews
Apps as root
Type 1 | Type 2 | Type 3 | Type 4 | Type 5 |
---|---|---|---|---|
Apps
Type 1 | Type 2 | Type 3 | Type 4 | Type 5 |
---|---|---|---|---|
Battery
Type 1 | Type 2 | Type 3 | Type 4 | Type 5 |
---|---|---|---|---|
Brightness
Type 1 | Type 2 | Type 3 | Type 4 | Type 5 |
---|---|---|---|---|
MPD
Type 1 | Type 2 | Type 3 | Type 4 | Type 5 |
---|---|---|---|---|
Powermenu
Type 1 | Type 2 | Type 3 | Type 4 | Type 5 |
---|---|---|---|---|
Quicklinks
Type 1 | Type 2 | Type 3 | Type 4 | Type 5 |
---|---|---|---|---|
Screenshot
Type 1 | Type 2 | Type 3 | Type 4 | Type 5 |
---|---|---|---|---|
Volume
Type 1 | Type 2 | Type 3 | Type 4 | Type 5 |
---|---|---|---|---|
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
andtype-6
are hard-coded (based on image colors) and can be changed by editing the respectivestyle-X.rasi
file.
Previews
Type 1
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Type 2
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Style 6 | Style 7 | Style 8 | Style 9 | Style 10 |
---|---|---|---|---|
Type 3
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Type 4
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Type 5
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
Type 6
Style 1 | Style 2 | Style 3 | Style 4 | Style 5 |
---|---|---|---|---|
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.
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
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 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>
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
andpadding
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.
Top Related Projects
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot