Skip to content

A minimal i3 rice for Fedora — curated configs built on official Fedora i3 Spin packages

License

Notifications You must be signed in to change notification settings

draphy/draphyOS

Repository files navigation

draphyOS

draphyOS

A minimal i3 rice for Fedora
Curated configs built on official Fedora i3 Spin packages

Release Fedora i3 License Bash


What is draphyOS?

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.


Philosophy

"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.


Features

Desktop Environment

  • ⌨️ 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 Management

  • 🔄 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

📋 Prerequisites

draphyOS requires Fedora Linux. Install Fedora first, then run the draphyOS installer.

Recommended: Fedora i3 Spin (Best Experience)

The Fedora i3 Spin is the ideal base — minimal, lightweight, and comes with i3 pre-configured.

  1. DownloadFedora i3 Spin (ISO ~1.8GB)
  2. Create bootable USB → Use Fedora Media Writer or Ventoy
  3. Install Fedora → Boot from USB, follow the installer
  4. Run draphyOS → After first login, run the install command below

Alternative: Other Fedora Variants

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).

System Requirements

Requirement Minimum Recommended
RAM 1 GB 2 GB+
Storage 10 GB 20 GB+
CPU Any x86_64
GPU Any (Intel/AMD/NVIDIA)

🚀 Quick Start

⚠️ Make sure you have Fedora installed before proceeding.

One-Command Install

curl -fsSL https://raw.githubusercontent.com/draphy/draphyOS/latest/install.sh | bash

Or clone and run:

git clone https://github.com/draphy/draphyOS ~/.draphyOS && ~/.draphyOS/install.sh

Post-Installation

  1. Log out of your current session
  2. Select i3 from the login screen
  3. Press Super + F1 for keybindings cheatsheet

🔄 System Updates

draphyOS includes update-draphyOS, a safe, interactive system update tool.

Quick Usage

update-draphyOS              # Interactive menu
update-draphyOS -u           # Quick system update
update-draphyOS -d           # Update draphyOS configs
update-draphyOS -v           # Fedora version upgrade

Features

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

draphyOS Config Updates

When you update draphyOS configs, the updater:

  1. Backs up your current configs automatically
  2. Fetches the latest version from GitHub
  3. 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
  4. Runs migrations for version upgrades (e.g., new keybindings, config format changes)
  5. Installs new packages if required by the update

Conflict Resolution

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

⌨️ Keybindings

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.


🛠️ Design Decisions

Every tool in draphyOS was chosen with a purpose. Here's why:

Core Components

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)

Theme Choices

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

What's NOT Included

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

🆚 Why i3?

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

📦 Packages

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

📁 Configuration Files

User Configs (symlinked to ~/.draphyOS/configs/)

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

draphyOS Internal Files

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

💡 Productivity Tips

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 track
  • Super + < — Previous track
  • Super + . — 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-manager to 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 arandr to visually arrange displays
  • Drag monitors to position, set resolution
  • Save layout for later use
🔋 Power Management (powertop)
  • Run sudo powertop to analyze power usage
  • Use --auto-tune for automatic power optimization
  • Great for laptops to extend battery life
🖼️ Wallpaper (feh)

Change wallpaper:

feh --bg-fill /path/to/image.jpg

The 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_threshold

Note: 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 help

The 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 session
  • Ctrl+b % — Split vertically
  • Ctrl+b " — Split horizontally
  • Ctrl+b arrow — Navigate panes

Great for remote work — sessions persist after disconnect.


🗑️ Uninstall

~/.draphyOS/uninstall.sh

Smart Package Removal

draphyOS 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

Base System Detection

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/skel defaults 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

What Gets Removed

  • 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

🔧 Troubleshooting

i3 not starting?
  • Check ~/.xsession-errors for errors
  • Run i3 -C to validate config syntax
Polybar not showing?
  • Run ~/.config/polybar/launch.sh manually
  • Check cat /tmp/polybar.log for 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)
Screen looks wrong?
  • Press Super + Shift + r to 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:

  1. Edit ~/.config/picom/picom.conf:
    backend = "xrender";
    corner-radius = 0;
    vsync = false;
    use-damage = false;
  2. 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-draphyOS
Config 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 -d

🤝 Contributing

Contributions 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

📜 License

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.