🚀 Getting Started •
⚡ Quick Start •
📚 Contents •
🌐 Communities •
🤝 Contribute •
📜 Code of Conduct
Welcome to the ultimate resource for Linux desktop customization - commonly known as "ricing" 🍚✨
This curated collection helps you discover tools, themes, and techniques to transform your Linux desktop into a personalized productivity powerhouse. Whether you're a beginner taking your first steps or a veteran ricer seeking inspiration, you'll find:
Feature
Description
🔍 Discovery
Popular tools + hidden gems across all customization categories
🧭 Guidance
Beginner-friendly explanations, difficulty ratings, and pro tips
🔗 Compatibility
Clear X11/Wayland tags and version notes
🎯 Curated
Quality over quantity - only tested, maintained resources
🔄 Living Document
Regularly updated with community contributions
💡 Fun Fact : "Ricing" originated from car culture ("rice rocket") and was adopted by the Linux community to humorously describe the pursuit of aesthetic perfection in desktop setups. [[3]]
👋 New to Linux Ricing? Start Here!
Ricing = extensively customizing your Linux desktop environment for aesthetics, workflow efficiency, or both. Think of it as digital interior design + productivity optimization.
Recommended Learning Path
graph LR
A[Choose a WM/DE] --> B[Pick a Color Scheme]
B --> C[Set Up Terminal + Shell]
C --> D[Add Bar + Widgets]
D --> E[Theme Apps + Icons]
E --> F[Polish: Fonts, Cursors, Wallpapers]
F --> G[Share on r/unixporn! 🎉]
Loading
Backup your config : cp -r ~/.config ~/.config.backup
Install a package manager : pacman, apt, dnf, or nix
Start small : Theme your terminal before rewriting your entire WM config
Use dotfiles : Track configs with Git for easy backup & sharing [[25]]
Join communities : r/unixporn, Discord servers for help & inspiration [[34-39]]
⚠️ Warning : Ricing is addictive. You may lose hours tweaking configs instead of working. Proceed with caution. 😉
🔧 30-Minute Rice Setup (Beginner-Friendly)
# 1. Install essential tools
sudo pacman -S kitty zsh starship neofetch feh picom polybar
# 2. Clone a starter config (example: simple polybar setup)
git clone https://github.com/adi1090x/polybar-themes ~ /.config/polybar
# 3. Set up your shell
sh -c " $( curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) "
echo ' starship init zsh | source' >> ~ /.zshrc
# 4. Pick a color scheme
git clone https://github.com/catppuccin/kitty ~ /.config/kitty/themes/catppuccin
# 5. Set wallpaper & launch
feh --bg-scale ~ /wallpapers/your-choice.jpg
exec polybar main &
# Similar flow with apt:
sudo apt install kitty zsh starship neofetch feh compton polybar
# ... follow same steps above
Use stow or chezmoi to manage dotfiles cleanly [[24]]
Test changes in a VM or spare user account first
Keep a "known-good" config backup for emergencies
📚 WM Fundamentals
Term
Definition
Best For
Window Manager (WM)
Controls window placement, decoration, and behavior
Minimalists, keyboard-centric users
Desktop Environment (DE)
Full suite: WM + file manager + panel + apps + settings
Beginners, users wanting out-of-box experience
Stacking WM
Windows overlap freely (like Windows/macOS)
Traditional workflow, mouse-heavy use
Tiling WM
Windows auto-arrange without overlap
Keyboard workflow, multi-tasking efficiency
Dynamic WM
Switch between tiling/stacking modes
Flexibility seekers
X11
Legacy display server (mature, compatible)
Nvidia users, legacy app support
Wayland
Modern display protocol (secure, smooth)
New hardware, future-proofing
💡 Pro Tip : Use loginctl show-session $XDG_SESSION_ID -p Type to check if you're on X11 or Wayland.
Stacking WMs 🖱️ Mouse-Friendly
Project
Protocol
Difficulty
Description
GNOME
X11 + Wayland
⭐
Modern, polished DE with extensions ecosystem
KDE Plasma
X11 + Wayland
⭐⭐
Highly customizable, feature-rich DE
XFCE
X11
⭐
Lightweight, stable, traditional desktop
Openbox
X11
⭐⭐⭐
Minimalist WM, highly configurable via XML
Tiling WMs ⌨️ Keyboard-Centric
Project
Protocol
Difficulty
Highlights
bspwm
X11
⭐⭐⭐
Binary tree layout, scriptable via shell
i3
X11
⭐⭐
Simple config, great docs, beginner-friendly tiling
sway
Wayland
⭐⭐
i3-compatible, native Wayland support
herbstluftwm
X11
⭐⭐⭐⭐
Manual tiling, runtime scripting
leftwm
X11
⭐⭐⭐
Rust-based, themable, dynamic workspaces
Dynamic WMs 🔄 Best of Both Worlds
Project
Protocol
Difficulty
Why Choose It
Hyprland
Wayland
⭐⭐⭐
Animated, GPU-accelerated, vibrant community [[8-16]]
awesome
X11
⭐⭐⭐⭐
Lua-scriptable, widget-ready, highly extensible
QTile
X11 + Wayland
⭐⭐⭐
Python-configurable, built-in bar/widgets
XMonad
X11
⭐⭐⭐⭐⭐
Haskell-based, rock-solid, infinitely customizable
dwm
X11
⭐⭐⭐⭐⭐
Source-patch workflow, minimal, ultra-fast
niri
Wayland
⭐⭐⭐
Scrollable tiling, PaperWM-inspired, smooth animations
🔑 Quick Reference: WM Keyboard Shortcuts
Common Keybindings Cheat Sheet
Action
i3/Sway
Hyprland
Awesome
bspwm
Open Terminal
Mod+Enter
Mod+Return
Mod+Return
Mod+Shift+Enter
Close Window
Mod+Shift+Q
Mod+Shift+Q
Mod+Shift+C
Mod+Shift+C
Split Layout
Mod+V/H
Mod+V/H
Mod+Space
bspc node -s @south/north
Toggle Float
Mod+Shift+Space
Mod+Alt+F
Mod+Ctrl+Space
bspc node -t floating
Workspace 1
Mod+1
Mod+1
Mod+1
bspc desktop -f 1
Move Window
Mod+Shift+1
Mod+Shift+1
Mod+Shift+1
bspc node -d 1
Resize Mode
Mod+R
Mod+R
Mod+Ctrl+R
bspc node -z left/right 10/0
💡 Customize these in your WM's config file (usually ~/.config/<wm>/config).
🎨 Color Theory for Ricers
A cohesive color scheme ties your entire desktop together. Key considerations:
Contrast : Ensure readability (WCAG AA minimum for text)
Consistency : Use the same palette across terminal, WM, browser, etc.
Mood : Dark themes reduce eye strain; light themes boost daytime productivity
Accent Colors : Use sparingly for highlights, buttons, and notifications
🎯 Pro Tip : Use Coolors or Huemint to generate accessible palettes.
Theme
Vibe
Best For
Link
Catppuccin
🧁 Soft pastels
All-day comfort, modern aesthetic
🔗
Gruvbox
🍂 Retro warm
Terminal lovers, vintage feel
🔗
Nord
❄️ Arctic blue
Professional, calm focus
🔗
Everforest
🌲 Natural green
Nature-inspired, easy on eyes
🔗
Tokyo Night
🌃 Neon urban
Modern, vibrant, high contrast
🔗
Dracula
🧛 Dark playful
Fun, high-contrast, widely supported
🔗
Rose Pine
🌹 Elegant minimal
Sophisticated, soft contrast
🔗
Tool
Purpose
Protocol
Notes
pywal
Auto-generate themes from wallpapers
X11 + Wayland
Integrates with 50+ apps
wpgtk
Theme/wallpaper manager with GUI
X11 + Wayland
Template system for bulk theming
Paletty
Browser-based palette generator
Web
Export to Kitty, Alacritty, Ghostty, etc.
Tool
Protocol
Features
hyprpaper
Wayland
Fast, IPC-controlled, multi-monitor
swaybg
Wayland
Simple, reliable, wlroots-compatible
mpvpaper
Wayland
Animated/video wallpapers via mpv
awww
Wayland
Animated wallpapers with runtime control
feh
X11
Lightweight, scriptable, slideshow mode
💡 Pro Tip : Use pywal + wal-restore to auto-apply color schemes when wallpaper changes.
🔤 Font Fundamentals
Type
Use Case
Examples
Sans-Serif
UI text, headings, general readability
Roboto, Inter, Google Sans
Monospace
Terminals, code editors, aligned output
JetBrains Mono, Fira Code, Iosevka
Nerd Fonts
Icons in terminal/status bars
Any font + Nerd Fonts patcher
Ligatures : Combined glyphs (e.g., =>, !=) that improve code readability. Enable in your terminal/editor if supported.
Font
Ligatures
Best For
Link
Google Sans
✅
Modern UI, clean headings
🔗
Inter
❌
UI text, excellent readability
🔗
Roboto
❌
Android-style, versatile
🔗
Monospace Fonts (Coding/Terminal)
🔧 Setup Tip : Install via getnf or patch your own with font-patcher .
# Example: Install JetBrainsMono Nerd Font
getnf install JetBrainsMono
# Then set in terminal config:
# font_family = "JetBrainsMono Nerd Font"
Tool
Protocol
Language
Highlights
Waybar
Wayland
C++/JSON
Highly modular, CSS-styled, active development
Polybar
X11
C++/INI
Mature, scriptable, huge community
Eww
X11 + Wayland
Rust/YAML
Widget-focused, reactive UI, animations
AGS
X11 + Wayland
JS/TS
GNOME Shell-like, extensible, modern
Quickshell
X11 + Wayland
QML/Qt
QtQuick-based, smooth animations
💡 Pro Tip : Use exec-once = waybar in your WM config to auto-start your bar.
Icon Theme
Style
Best For
Link
Papirus
Pixel-perfect, extensive
General use, GTK apps
🔗
Tela
Flat, vibrant
Modern desktops
🔗
Colloid
Playful, colorful
Fun, expressive setups
🔗
Candy Icons
Gradient, glossy
Eye-catching aesthetics
🔗
🔧 Apply Icons : gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle' (GTK) or edit ~/.config/qt5ct/qt5ct.conf (Qt).
Tool
Protocol
Highlights
Link
Rofi
X11 + Wayland fork
Scriptable, themed, multi-mode
🔗
wofi
Wayland
Simple, wlroots-native, CSS-styled
🔗
tofi
Wayland
Minimal, fast, config-light
🔗
Anyrun
Wayland
Modular plugins, modern UI
🔗
Ulauncher
X11 + Wayland
Extensions, web search, workflows
🔗
Daemon
Protocol
Features
Link
Dunst
X11 + Wayland
Lightweight, scriptable, themable
🔗
Mako
Wayland
Simple, wlroots-native, config-light
🔗
SwayNC
Wayland
Control center, widgets, GTK UI
🔗
💡 Pro Tip : Use dunstify or notify-send to test notifications during config.
Widget
Purpose
Protocol
Link
Conky
System monitor, desktop widgets
X11
🔗
GLava
OpenGL audio visualizer
X11 + Wayland
🔗
Kando
Cross-platform pie menu
X11 + Wayland
🔗
Eww Widgets
Custom reactive widgets
X11 + Wayland
🔗
Logout Menus
Tool
Protocol
Description
Link
wlogout
Wayland
Simple, themed, icon-based menu
🔗
rofi-power-menu
X11 + Wayland
Rofi-based, highly customizable
🔗
Tool
Protocol
Features
Link
hyprlock
Wayland
GPU-accelerated, animated, Hyprland-native
🔗
swaylock
Wayland
Simple, secure, wlroots-compatible
🔗
i3lock
X11
Minimal, scriptable, widely supported
🔗
swaylock-effects
Wayland
swaylock + blur, pixelate, fade effects
🔗
Terminal
Protocol
Highlights
Link
kitty
X11 + Wayland
GPU-rendered, tabs, ligatures, scriptable
🔗
alacritty
X11 + Wayland
Fastest, minimal config, cross-platform
🔗
ghostty
X11 + Wayland
Modern, GPU-accelerated, macOS-native feel
🔗
wezterm
X11 + Wayland
Multiplexer built-in, Lua config, tabs/panes
🔗
foot
Wayland
Lightweight, wlroots-native, fast startup
🔗
Prompt
Shell
Features
Link
Starship
Any
Blazing fast, cross-shell, auto-config
🔗
Powerlevel10k
zsh
Instant prompt, rich icons, wizard setup
🔗
oh-my-posh
Any
Cross-platform, JSON themes, Nerd Font icons
🔗
Tool
Highlights
Best For
Link
tmux
Mature, scriptable, huge plugin ecosystem
Remote work, persistent sessions
🔗
zellij
Rust-based, layouts, pane sync
Modern workflows, beginners
🔗
byobu
tmux/screen wrapper, Ubuntu-friendly
Sysadmins, quick setup
🔗
Tool
Language
Highlights
Link
yazi
Rust
Blazing fast, async, preview, vim-like
🔗
ranger
Python
Vim-like, extensible, preview support
🔗
superfile
Go
Modern UI, tabs, preview, themable
🔗
nnn
C
Tiny, fast, plugin system, low memory
🔗
Editor
Type
Highlights
Link
Neovim
Modal
Extensible, LSP-ready, Lua config
🔗
Helix
Modal
Built-in LSP, multiple selections, Rust
🔗
micro
Modeless
Intuitive, mouse support, plugin system
🔗
Tool
Features
Link
btop
Beautiful UI, mouse support, themes
🔗
htop
Interactive, tree view, search
🔗
bottom
Cross-platform, customizable widgets
🔗
Tool
Highlights
Link
eza
Modern ls, icons, git status, tree view
🔗
lsd
Icons, colors, tree mode, git integration
🔗
Tool
Language
Highlights
Link
fastfetch
C
Blazing fast, modular, 50+ modules
🔗
neofetch
Bash
Classic, widely themed, simple
🔗
macchina
Rust
Fast, minimal, themable, extensible
🔗
Browser
Engine
Privacy Focus
Ricing Potential
Link
Firefox
Gecko
🔒🔒🔒
⭐⭐⭐⭐⭐ (userChrome.css)
🔗
Floorp
Gecko
🔒🔒🔒
⭐⭐⭐⭐⭐ (Firefox-based + extras)
🔗
Thorium
Chromium
🔒🔒
⭐⭐⭐⭐ (Chromium + patches)
🔗
Brave
Chromium
🔒🔒🔒
⭐⭐⭐ (limited CSS theming)
🔗
App
Desktop
Highlights
Link
Yazi
Terminal-first
Blazing fast, async, preview
🔗
Double Commander
Cross-platform
Dual-pane, plugin system
🔗
Nautilus
GNOME
Clean, extensions, search
🔗
Dolphin
KDE
Powerful, split view, plugins
🔗
Category
App
Highlights
Link
Music
Amberol
Minimal, GTK4, adaptive UI
🔗
Music
Feishin
Modern, self-hosted, Jellyfin/Navidrome
🔗
Video
mpv
Minimal, scriptable, high-quality
🔗
Images
imv
Fast, tiling-WM friendly, keyboard-driven
🔗
App
Type
Highlights
Link
Obsidian
Notes
Markdown, graph view, plugins
🔗
AppFlowy
Workspace
Open-source Notion alternative
🔗
qnote
Notes
Minimal, Markdown, PDF export, Tauri
🔗
App
Type
Highlights
Link
Krita
Painting
Professional, brush engines, animation
🔗
GIMP
Photo Editing
Powerful, plugin ecosystem, scriptable
🔗
Inkscape
Vector
SVG-native, extensions, cross-platform
🔗
App
Type
Highlights
Link
Kdenlive
Video Editing
Multi-track, effects, proxy editing
🔗
OBS Studio
Streaming/Recording
Plugins, scenes, cross-platform
🔗
Ardour
DAW
Professional audio, mixing, routing
🔗
App
Type
Highlights
Link
Blender
3D Suite
Modeling, animation, rendering, VFX
🔗
FreeCAD
Parametric CAD
Engineering, BIM, Python scripting
🔗
Launcher
Platform
Highlights
Link
Steam
Multi
Proton, Big Picture, cloud saves
🔗
Heroic
Epic/GOG
Native Linux, Wine/Proton support
🔗
Lutris
Multi
Unified library, installer scripts
🔗
🎮 Pro Tip : Join r/linux_gaming for ProtonDB tips, Wine configs, and performance tweaks.
Startpage
Features
Link
nightTab
Customizable, color accents, widgets
🔗
Excalith
Terminal-inspired, search, bookmarks
🔗
Bento Next
Vue 3, Tailwind, widgets
🔗
Mod
Highlights
Link
Vencord
Lightweight, plugin system, active dev
🔗
BetterDiscord
Mature, huge theme/plugin library
🔗
DM
Protocol
Highlights
Link
SDDM
X11 + Wayland
QML-themable, KDE-native
🔗
Ly
TUI
Console-based, minimal, fast
🔗
GDM
X11 + Wayland
GNOME-integrated, secure
🔗
📦 Dotfiles & Config Management ✨ NEW
🔧 Why Manage Dotfiles?
Dotfiles (~/.config, ~/.bashrc, etc.) are your personalized system configs. Managing them with Git enables:
✅ Backup & restore across machines
✅ Version history & rollback
✅ Easy sharing & collaboration
✅ Automated deployment
Popular Dotfiles Repositories
Tool
Language
Highlights
Link
chezmoi
Go
Secure, templating, multi-machine
🔗
GNU Stow
Perl
Simple symlink manager
🔗
yadm
Bash
Git-based, encrypted files support
🔗
dotter
Rust
Templating, conditions, profiles
🔗
💡 Pro Tip : Use git init --bare $HOME/.cfg + alias for a clean dotfiles repo without cluttering ~. [[24]]
🌐 Communities & Resources ✨ NEW
Platform
Members
Focus
Link
r/unixporn Discord
10k+
Real-time help, showcases
🔗
Arch Linux Discord
43k+
Arch-specific support
🔗
Linux.Chat
2.7k+
General Linux discussion
🔗
Hyprland Discord
15k+
Hyprland development & configs
🔗
🌟 Pro Tip : When asking for help, include: WM version, distro, config snippets, and neofetch/fastfetch output.
❓ Common Issues & Fixes
# GTK apps: Reload settings
gsettings reset-recursively org.gnome.desktop.interface
# Qt apps: Ensure qt5ct/qt6ct is configured
export QT_QPA_PLATFORMTHEME=qt5ct
# Check theme paths:
ls ~ /.themes ~ /.local/share/themes /usr/share/themes
⌨️ Keyboard Not Working in WM?
# Check input devices:
hyprctl devices # Hyprland
xinput list # X11
# Reload config:
hyprctl reload # Hyprland
i3-msg reload # i3
🖥️ Wayland App Not Launching on X11 (or vice versa)?
Use Xwayland for X11 apps on Wayland (usually auto-enabled)
Check app flags: --ozone-platform-hint=auto for Electron apps
Verify WAYLAND_DISPLAY / DISPLAY env vars
# Profile shell startup:
time zsh -i -c exit
# Disable unused Oh My Zsh plugins
# Use starship --print-config to optimize prompt
# Check PipeWire/Pulse:
pactl info
wpctl status
# Restart audio:
systemctl --user restart pipewire pipewire-pulse
📥 Installation & Configuration
🐧 Package Manager Quick Reference
Distro
Command
Example
Arch/Manjaro
pacman -S
sudo pacman -S kitty zsh
Debian/Ubuntu
apt install
sudo apt install kitty zsh
Fedora
dnf install
sudo dnf install kitty zsh
NixOS
nix-env -iA
nix-env -iA nixos.kitty
Flatpak
flatpak install
flatpak install flathub org.kde.krita
~ /.config/ # XDG config directory (most apps)
~ /.local/share/ # XDG data directory
~ /.cache/ # XDG cache directory
/etc/ # System-wide configs (requires sudo)
💡 Pro Tip : Use xdg-ninja to find unwanted files cluttering your $HOME. [[24]]
We welcome all helpful contributions! 🙌
Fork the repo
Create a branch : git checkout -b feature/awesome-tool
Add your resource following the template:
- [ Tool Name] ( https://link ) <sup >Protocol</sup > - Brief, compelling description.
Test links and ensure markdown validity
Submit a PR with a clear description
✅ Only include actively maintained projects (last commit <2 years)
✅ Add protocol tags: X11 , Wayland , or X11 + Wayland
✅ Include difficulty rating if notable: ⭐ (easy) to ⭐⭐⭐⭐⭐ (expert)
❌ No self-promotion without significant value-add
❌ No duplicate entries (check existing categories first)
📖 Full guidelines: CONTRIBUTING.md
This list exists because of contributors like you.
Found a broken link? Missing an awesome tool?
Open an Issue or Submit a PR !
Made with ❤️ by the Linux Ricing Community
🟡 filesdot community!11