A minimal i3 rice for Fedora
Curated configs built on official Fedora i3 Spin packages
draphyOS is an i3 rice (desktop configuration) — not an operating system, spin, or remix. It's a collection of carefully tuned dotfiles and configs that transform a fresh Fedora i3 installation into a polished, productive desktop environment.
"Choosing a main OS is like marriage to me."
When I commit to a setup, I commit fully. Here's what I look for:
| Priority | Why It Matters |
|---|---|
| Lightweight | Every MB counts. No wasted resources on things I don't use. |
| Performance | Instant response. No lag. No waiting. |
| Hardware Support | It should just work — WiFi, Bluetooth, GPU, everything. |
| Privacy | No telemetry. No tracking. My machine, my data. |
| Community | When things break, someone's been there before. |
| Customizable | I decide how my desktop looks and works. |
| Stability | Updates shouldn't break my workflow. |
| No Bloat | I hate pre-installed software I'll never use. Clean slate only. |
This is why Fedora i3 Spin + draphyOS exists:
- Fedora = stability, security, up-to-date packages, strong community
- i3 Spin = minimal base, no bloat, just what you need
- draphyOS = polished configs that respect these values
I'm a minimalist at heart. No fancy animations. No smooth transitions that waste CPU cycles. No bloated features I'll never use. Just raw performance and function over form. Less is more — every tool earns its place, or it's gone.
If you love that vibe — welcome home.
- ⌨️ Pre-configured i3 window manager with vim-style keybindings
- 📊 Clean polybar status bar (replaces i3status)
- 🚀 Beautiful rofi app launcher with dark theme
- 💻 urxvt terminal with Mint-Y-Dark colors
- 🐟 Fish shell with auto-suggestions
- 🔧 Automatic hardware detection (battery, network, display)
- 🔒 Lock screen with blur effect
- 🌙 Night light (redshift) for eye comfort
- 📋 Comprehensive keybinding cheatsheet (
Super+F1)
- 🔄 System updater (
update-draphyOS) — Interactive tool for system updates, security patches, and Fedora version upgrades - ⬆️ Config updates — Update draphyOS configs from GitHub with intelligent three-way merge (preserves your customizations)
- 📦 Smart uninstall — Tracks packages installed by draphyOS for clean removal
- 🔋 Battery health — Optional 80% charge limit for laptop battery longevity
- 🔀 Version migrations — Seamless upgrades between draphyOS versions
draphyOS requires Fedora Linux. Install Fedora first, then run the draphyOS installer.
The Fedora i3 Spin is the ideal base — minimal, lightweight, and comes with i3 pre-configured.
- Download → Fedora i3 Spin (ISO ~1.8GB)
- Create bootable USB → Use Fedora Media Writer or Ventoy
- Install Fedora → Boot from USB, follow the installer
- Run draphyOS → After first login, run the install command below
draphyOS also works on other Fedora editions. The installer will set up i3 alongside your existing desktop:
| Variant | Download | Notes |
|---|---|---|
| Fedora XFCE Spin | Download | ⭐ Recommended fallback — lightweight, stable |
| Fedora Workstation | Download | GNOME desktop, most popular |
| Fedora KDE Spin | Download | KDE Plasma desktop |
| Fedora Server | Download | Minimal, headless (add GUI manually) |
💡 Tip: If you're new to tiling window managers, Fedora XFCE Spin is a great choice. XFCE provides a familiar traditional desktop as a fallback if i3 feels overwhelming. You can switch between i3 and XFCE at the login screen (click the gear icon).
| Requirement | Minimum | Recommended |
|---|---|---|
| RAM | 1 GB | 2 GB+ |
| Storage | 10 GB | 20 GB+ |
| CPU | Any x86_64 | — |
| GPU | Any (Intel/AMD/NVIDIA) | — |
⚠️ Make sure you have Fedora installed before proceeding.
curl -fsSL https://raw.githubusercontent.com/draphy/draphyOS/latest/install.sh | bashOr clone and run:
git clone https://github.com/draphy/draphyOS ~/.draphyOS && ~/.draphyOS/install.sh- Log out of your current session
- Select i3 from the login screen
- Press
Super + F1for keybindings cheatsheet
draphyOS includes update-draphyOS, a safe, interactive system update tool.
update-draphyOS # Interactive menu
update-draphyOS -u # Quick system update
update-draphyOS -d # Update draphyOS configs
update-draphyOS -v # Fedora version upgrade| Option | Description |
|---|---|
| System Update | Update all packages with dnf upgrade |
| Security Only | Install only security patches |
| Full Maintenance | Update + clean cache + remove orphans |
| Fedora Upgrade | Upgrade to next Fedora version (e.g., F41 → F42) |
| draphyOS Update | Pull latest configs from GitHub |
When you update draphyOS configs, the updater:
- Backs up your current configs automatically
- Fetches the latest version from GitHub
- Preserves your changes using three-way merge:
- If you haven't modified a config → updates automatically
- If only upstream changed → updates automatically
- If both changed → attempts auto-merge, asks you on conflicts
- Runs migrations for version upgrades (e.g., new keybindings, config format changes)
- Installs new packages if required by the update
When a config conflict is detected, you choose:
- Keep mine — Ignore upstream changes
- Use new — Replace with upstream version
- Backup & use new — Save your version as
.backup-TIMESTAMP, use new
| Key | Action |
|---|---|
Super + Return |
Terminal (urxvt) |
Super + d |
App Launcher (rofi) |
Super + Shift + q |
Close Window |
Super + F1 |
Cheatsheet |
Super + h/j/k/l |
Navigate (vim-style) |
Super + Shift + h/j/k/l |
Move window |
Super + 1-0 |
Switch Workspace |
Super + Shift + 1-0 |
Move to Workspace |
Super + Shift + x |
Lock Screen |
Super + Shift + f |
File Manager |
Super + Shift + b |
Browser (Firefox) |
Super + Shift + v |
Text Editor |
Print |
Screenshot (select area) |
Super + r |
Resize mode |
Press Super + F1 for the complete cheatsheet.
Every tool in draphyOS was chosen with a purpose. Here's why:
| Component | Choice | Why? | Alternatives Considered |
|---|---|---|---|
| Window Manager | i3 | Stable, mature, excellent docs, official Fedora spin | Sway (Wayland issues), bspwm (less docs) |
| Status Bar | Polybar | Highly customizable, beautiful, active development | i3status (too basic), i3blocks (harder to configure) |
| App Launcher | Rofi | Themeable, fast, supports multiple modes | dmenu (too minimal), ulauncher (heavier) |
| Compositor | Picom | Lightweight, blur/shadows/transparency | Compton (deprecated), none (screen tearing) |
| Terminal | urxvt | Fedora i3 official, minimal, fast, Xresources config | Alacritty (GPU-heavy), st (needs compilation) |
| Shell | Fish | Lightweight, best out-of-box experience | Bash (no features), Zsh (needs plugins) |
| Notifications | Dunst | Lightweight, highly configurable, keyboard-friendly | notify-osd (less features), mako (Wayland-only) |
| Element | Choice | Why? |
|---|---|---|
| GTK Theme | Adwaita-dark | Official GNOME dark theme, best app compatibility |
| Icons | Mint-Y-Dark | Clean, modern, good coverage, dark variant |
| Cursor | Adwaita | System default, works everywhere |
| Font | Fira Code | Programming ligatures, excellent readability |
| Colors | Mint-Y-Dark palette | Consistent green accent (#9ab87c), easy on eyes |
| Omitted | Reason |
|---|---|
| Fancy animations | Waste CPU cycles. Windows appear instantly — done. |
| Smooth transitions | Eye candy that eats resources. Not here. |
| Conky | Polybar handles system info; conky is redundant |
| Oh-my-zsh/Starship | Fish doesn't need plugins to be good |
| Consideration | i3 (X11) | Sway/Hyprland (Wayland) |
|---|---|---|
| NVIDIA Support | Excellent | Problematic — requires --unsupported-gpu, screen tearing, crashes |
| Stability | Battle-tested, mature | Newer, occasional bugs |
| Compatibility | Works with all apps | Some X11 apps need XWayland |
| Fedora Official | Fedora i3 Spin exists | No official spin |
| Screen Sharing | Works everywhere | Needs pipewire setup |
| Gaming | Proven compatibility | Mixed results |
Why not GNOME/KDE?
- draphyOS is for users who want minimal resource usage and keyboard-driven workflow
- Full DEs use 600MB-2GB RAM idle; i3 uses ~10-50MB (full draphyOS setup ~300MB)
- Tiling WMs maximize screen real estate and reduce mouse dependency
Fedora i3 Spin — Core
| Package | Description |
|---|---|
i3 |
Tiling window manager |
i3lock |
Screen locker |
i3status |
Status bar (replaced by polybar) |
dmenu |
Application launcher (replaced by rofi) |
dunst |
Notification daemon |
lightdm |
Display manager (login screen) |
rxvt-unicode |
Terminal emulator |
NetworkManager |
Network management |
network-manager-applet |
Network tray icon |
firefox |
Web browser |
pulseaudio-utils |
Audio control |
pavucontrol |
Volume control GUI |
brightnessctl |
Brightness control |
htop |
Process viewer |
mousepad |
Text editor |
Thunar |
File manager |
Fedora i3 Spin — Extended
| Package | Description |
|---|---|
rofi |
Application launcher |
powertop |
Power management |
arandr |
Display configuration |
tmux |
Terminal multiplexer |
lxappearance |
GTK theme switcher |
draphyOS Additions
| Package | Description |
|---|---|
polybar |
Status bar (replaces i3status) |
picom |
Compositor (transparency, shadows) |
fish |
Modern shell with auto-suggestions |
feh |
Wallpaper setter, image viewer |
flameshot |
Screenshot tool |
playerctl |
Media player control |
xss-lock |
Automatic screen locker |
blueman |
Bluetooth manager |
redshift |
Night light / blue light filter |
geoclue2 |
Location services (for redshift) |
xfce-polkit |
Authentication dialogs |
gnome-keyring |
Password/secret storage |
xfce4-settings |
Settings manager |
yad |
Calendar popup (click date in bar) |
qt5ct |
Qt5 theme configuration |
ImageMagick |
Image processing (lock screen blur) |
xdotool |
X11 automation (cheatsheet execute) |
xclip |
Clipboard (cheatsheet copy) |
fira-code-fonts |
Programming font with ligatures |
google-noto-sans-mono-vf-fonts |
Fallback mono font |
fontawesome-6-free-fonts |
Icon font (polybar icons) |
fontawesome-6-brands-fonts |
Icon font (brand logos) |
mint-y-icons |
Icon theme |
adwaita-cursor-theme |
Cursor theme |
| Config | Location | Description |
|---|---|---|
| i3 | ~/.config/i3/config |
Window manager |
| Polybar | ~/.config/polybar/config.ini |
Status bar |
| Rofi | ~/.config/rofi/config.rasi |
App launcher |
| Dunst | ~/.config/dunst/dunstrc |
Notifications |
| Picom | ~/.config/picom/picom.conf |
Compositor |
| Fish | ~/.config/fish/config.fish |
Shell |
| urxvt | ~/.Xresources |
Terminal |
| Redshift | ~/.config/redshift/redshift.conf |
Night light |
| GTK | ~/.config/gtk-3.0/settings.ini |
Theme settings |
| File | Location | Description |
|---|---|---|
| Install marker | ~/.draphyOS-installed |
Tracks installation state, version, base system |
| Package state | ~/.draphyOS-packages-before |
Snapshot of packages before install (for clean uninstall) |
| Config checksums | ~/.draphyOS-config-checksums |
MD5 checksums for three-way merge during updates |
| Update script | /usr/local/bin/update-draphyOS |
System-wide update command |
| VERSION | ~/.draphyOS/VERSION |
Current draphyOS version number |
| PACKAGES | ~/.draphyOS/PACKAGES |
Package manifest with version requirements |
draphyOS includes several tools to boost your productivity. Here's how to use them:
🎵 Media Controls (playerctl)
Control any media player (Spotify, Firefox, VLC) with keyboard:
Super + >— Next trackSuper + <— Previous trackSuper + .— Play/Pause
Works across all MPRIS-compatible players.
📸 Screenshots (flameshot)
Print— Select area and capture- After capture: annotate, blur, add arrows, copy/save
Flameshot opens with editing tools. Draw, highlight, then save or copy to clipboard.
📋 Cheatsheet (Super+F1)
Interactive cheatsheet with rofi:
- i3 keybindings: Press Enter to execute the selected keybinding
- Other cheatsheets (vim, git, etc.): Press Enter to copy command to clipboard
Add your own cheatsheets: create ~/.config/i3/scripts/cheatsheets/myapp.txt
📅 Calendar Popup
Click the date in polybar to open a calendar popup (yad).
🔵 Bluetooth (blueman)
- Click the Bluetooth icon in system tray
- Or run
blueman-managerto pair/manage devices
🌙 Night Light (redshift)
Automatically adjusts screen warmth based on time of day:
- Uses your location (via geoclue2) to calculate sunrise/sunset
- Reduces blue light at night for better sleep
Config: ~/.config/redshift/redshift.conf
🖥️ Multi-Monitor Setup (arandr)
- Run
arandrto visually arrange displays - Drag monitors to position, set resolution
- Save layout for later use
🔋 Power Management (powertop)
- Run
sudo powertopto analyze power usage - Use
--auto-tunefor automatic power optimization - Great for laptops to extend battery life
🖼️ Wallpaper (feh)
Change wallpaper:
feh --bg-fill /path/to/image.jpgThe wallpaper is set automatically on login via ~/.xprofile.
🔐 Password Storage (gnome-keyring)
Automatically stores:
- Browser passwords (Firefox, Chrome)
- SSH keys (unlocked on login)
- Application secrets
No setup needed — works automatically with PAM.
🔋 Battery Charge Limit
During installation, you can set an 80% charge limit to extend battery lifespan:
- Reduces battery wear from constant 100% charging
- Best for laptops that are often plugged in
- Uses a systemd service to persist across reboots
To change the limit later:
# Check current limit
cat /sys/class/power_supply/BAT0/charge_control_end_threshold
# Set to 80%
echo 80 | sudo tee /sys/class/power_supply/BAT0/charge_control_end_threshold
# Set back to 100%
echo 100 | sudo tee /sys/class/power_supply/BAT0/charge_control_end_thresholdNote: Not all laptops support charge limits. The installer only offers this if your hardware supports it.
🔄 System Updates
Use update-draphyOS for all system maintenance:
update-draphyOS # Interactive menu with all options
update-draphyOS -u # Quick update (equivalent to dnf upgrade)
update-draphyOS -s # Security updates only
update-draphyOS -f # Full maintenance (update + clean + autoremove)
update-draphyOS -d # Update draphyOS configs from GitHub
update-draphyOS -v # Upgrade to next Fedora version
update-draphyOS -h # Show helpThe tool handles:
- Package updates with proper metadata refresh
- Security-only updates when you need stability
- Orphaned package cleanup
- Fedora version upgrades (F41 → F42)
- Reboot prompts when kernel updates require it
- draphyOS config updates with conflict resolution
⌨️ Terminal Multiplexer (tmux)
Split terminal into panes/windows:
tmux— Start new sessionCtrl+b %— Split verticallyCtrl+b "— Split horizontallyCtrl+b arrow— Navigate panes
Great for remote work — sessions persist after disconnect.
~/.draphyOS/uninstall.shdraphyOS tracks which packages it installed. On uninstall:
- If package state was saved (installations after v1): Precisely removes only packages added by draphyOS, restoring your system to its exact pre-install state
- Legacy installations: Falls back to predefined package lists
The uninstaller is smart about your base system:
Fedora i3 Spin:
- Keeps core i3 packages (your system needs them!)
- Only removes draphyOS additions (polybar, picom, fish, etc.)
- Strongly recommends restoring your original configs
- Falls back to
/etc/skeldefaults if no backup exists
Other Fedora variants (XFCE, Workstation, etc.):
- Option to remove only draphyOS additions
- Option to fully remove all i3 packages
- Restore backup or skip
- draphyOS config symlinks
- System update script (
/usr/local/bin/update-draphyOS) - Battery charge limit service (if configured)
- LightDM customization (restored from backup)
- Optionally: shell reverted to bash
- Optionally: backup configs restored
i3 not starting?
- Check
~/.xsession-errorsfor errors - Run
i3 -Cto validate config syntax
Polybar not showing?
- Run
~/.config/polybar/launch.shmanually - Check
cat /tmp/polybar.logfor errors
Network module not showing?
draphyOS has separate WiFi and Ethernet modules that auto-hide when disconnected.
- Interfaces are auto-detected on each login via
~/.xprofile - If not working, check your interface names:
ip link show - Edit
~/.config/polybar/config.ini:- WiFi:
[module/network-wifi]→interface = wlan0(or your interface) - Ethernet:
[module/network-eth]→interface = eth0(or your interface)
- WiFi:
Screen looks wrong?
- Press
Super + Shift + rto restart i3 - Check picom:
pgrep picom || picom &
Terminal colors wrong?
- Run
xrdb -merge ~/.Xresources
Running in a VM? Display not refreshing?
Note: The installer auto-detects VM environments (VirtualBox, VMware, QEMU/KVM, Hyper-V) and applies these fixes automatically.
If not auto-detected or you need to apply manually, picom's glx backend doesn't work well in virtual machines. Fix:
- Edit
~/.config/picom/picom.conf:backend = "xrender"; corner-radius = 0; vsync = false; use-damage = false;
- Restart picom:
pkill picom && picom -b
Note: Rounded corners and blur aren't supported with
xrender, but opacity and shadows still work.
update-draphyOS command not found?
The update script is installed to /usr/local/bin/update-draphyOS during installation. If it's missing:
# Reinstall the update script
sudo cp ~/.draphyOS/update.sh /usr/local/bin/update-draphyOS
sudo chmod +x /usr/local/bin/update-draphyOSConfig update shows conflicts for unchanged files?
This can happen if you installed draphyOS before version tracking was added. The updater will create the checksum file on first update, so future updates will work correctly.
To reset checksums manually:
rm ~/.draphyOS-config-checksums
update-draphyOS -dContributions are welcome! Whether it's fixing a typo, improving configs, or adding new features — all help is appreciated.
See CONTRIBUTING.md for guidelines on:
- Branch naming and commit format
- Running ShellCheck locally
- PR requirements and CI checks
MIT License — Feel free to use and modify.
Credits: Theme inspired by Mint-Y-Dark · Icons by Mint-Y · Font: Fira Code · Base: Fedora i3 Spin
draphyOS is an independent project and is not affiliated with, endorsed by, or sponsored by Fedora Project, Red Hat, Inc., or Linux Mint.
