Rofi Configuration Files
Table of Contents
A dmenu replacement, it can act as a window switcher, or an application launcher. Very scriptable, I've use it to create a window switcher, greenclip clipboard, and as an application chooser.
- rofi-menu
A simple application menu, dmenu works fine, but I really love the emacs navigation keys (
C-n
,C-p
,C-b
, andC-f
).
- rofi-window Useful since I'm almost always only use a window manager.
- rofi-greenclip Easily access my latest clipboard.
config.rasi
The main configuration, the only dependency needed here is the JetBrain Mono font, provided by the ttf-jetbrains-mono-nerd package in archlinux.
configuration { modi: "window,drun,run,ssh,combi,emoji"; show-icons: true; font: "JetBrainsMonoNL Nerd Font Mono 10"; line-margin: 10; display-ssh: ""; display-run: ""; display-drun: ""; display-window: ""; display-combi: ""; show-icons: true; } @theme "nord" listview { lines: 6; columns: 2; } window { width: 30%; }
Themes
nord
/* -*-css-*- */ /** * Nordic rofi theme * Adapted by undiabler <undiabler@gmail.com> * * Nord Color palette imported from https://www.nordtheme.com/ * */ * { nord0: #2e3440; nord1: #3b4252; nord2: #434c5e; nord3: #4c566a; nord4: #d8dee9; nord5: #e5e9f0; nord6: #eceff4; nord7: #8fbcbb; nord8: #88c0d0; nord9: #81a1c1; nord10: #5e81ac; nord11: #bf616a; nord12: #d08770; nord13: #ebcb8b; nord14: #a3be8c; nord15: #b48ead; foreground: @nord9; backlight: #ccffeedd; background-color: transparent; highlight: underline bold #eceff4; transparent: rgba(46,52,64,0); } window { location: center; anchor: center; transparency: "screenshot"; padding: 10px; border: 0px; border-radius: 6px; background-color: @transparent; spacing: 0; children: [mainbox]; orientation: horizontal; } mainbox { spacing: 0; children: [ inputbar, message, listview ]; } message { color: @nord0; padding: 5; border-color: @foreground; border: 0px 2px 2px 2px; background-color: @nord7; } inputbar { color: @nord6; padding: 11px; background-color: #3b4252; border: 1px; border-radius: 6px 6px 0px 0px; border-color: @nord10; } entry, prompt, case-indicator { text-font: inherit; text-color:inherit; } prompt { margin: 0px 1em 0em 0em ; } listview { padding: 8px; border-radius: 0px 0px 6px 6px; border-color: @nord10; border: 0px 1px 1px 1px; background-color: rgba(46,52,64,0.9); dynamic: false; } element { padding: 3px; vertical-align: 0.5; border-radius: 4px; background-color: transparent; color: @foreground; text-color: rgb(216, 222, 233); } element selected.normal { background-color: @nord7; text-color: #2e3440; } element-text, element-icon { background-color: inherit; text-color: inherit; } button { padding: 6px; color: @foreground; horizontal-align: 0.5; border: 2px 0px 2px 2px; border-radius: 4px 0px 0px 4px; border-color: @foreground; } button selected normal { border: 2px 0px 2px 2px; border-color: @foreground; }
Scripts
rofi-logout
This script can be used in various window manager.
THEME=${1:-logout} question=$(echo " lock| logout| reboot| shutdown" | rofi -sep "|" \ -dmenu -i -p 'System: ' "" \ -hide-scrollbar \ -eh 1 \ -color-enabled true \ -theme "$THEME") case $question in *lock) # use lowercase only case "${XDG_CURRENT_DESKTOP,,}" in hyprland) hyprctl dispatch exit ;; *) if [ "$(pgrep -x lightdm)" ] && [ "$(command -v light-locker)" ]; then light-locker-command -l fi ;; esac ;; *logout) case "${XDG_CURRENT_DESKTOP,,}" in hyprland) hyprctl dispatch exit ;; openbox) openbox --exit ;; i3) i3-msg exit ;; qtile) qtile cmd-obj -o cmd -f shutdown ;; esac ;; *reboot) if [[ $(command -v systemctl) ]]; then systemctl reboot else shutdown -r now fi ;; *shutdown) if [[ $(command -v systemctl) ]]; then systemctl poweroff else poweroff fi ;; *) exit 0 # do nothing on wrong response ;; esac