Skip to content

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
  • 💻 Alacritty terminal with Mint-Y-Dark colors
  • 🐟 Fish shell with auto-suggestions and zoxide integration
  • 🔧 Automatic hardware detection (battery, network, display, NVIDIA GPU)
  • 🔒 Lock screen with centered logo (auto-sleep after 15 min)
  • 🌙 Night light (gammastep) with IP-based location auto-detection
  • 📁 yazi terminal file manager with image preview
  • 📋 Comprehensive keybinding cheatsheet (Super+F1)

System Management

  • 🔄 System updater (update-draphyOS) — Interactive tool for system updates, security patches, and Fedora version upgrades
  • 🖼️ Wallpaper manager (set-wallpaper) — Updates desktop, lock screen, and login screen wallpaper
  • ⬆️ 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 (full reset to pre-install state)
  • 🔋 Battery health — Configurable charge limit with auto-detection for 10+ laptop vendors
  • 🔀 Version migrations — Seamless upgrades between draphyOS versions
  • 🖥️ VM mode — Optional picom optimizations for virtual machines (--vm flag)

Development Tools

  • 🐳 Docker — Container runtime with rootless setup (user added to docker group)
  • 🟢 Node.js — fnm version manager with LTS pre-installed
  • 🐘 PostgreSQL — Database server with user/database auto-created
  • 🤖 Claude Code — AI coding assistant CLI
  • 🎮 NVIDIA — Auto-detection, Secure Boot handling, hybrid graphics support (akmod-nvidia)

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

Install

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

VM Install

If installing in a virtual machine, use the --vm flag:

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

Post-Installation

  1. Log out of your current session
  2. Select i3 from the login screen
  3. Press Super + F1 for keybindings cheatsheet
  4. Docker users: Log out/in again to use Docker without sudo

What Gets Installed

The installer adds several third-party repositories:

  • RPMFusion (free + nonfree) — Multimedia codecs, NVIDIA drivers
  • Brave Browser — Privacy-focused browser
  • VS Code — Microsoft's code editor
  • Docker CE — Container runtime
  • yazi COPR — Terminal file manager

NVIDIA GPU owners will be prompted to install proprietary drivers (akmod-nvidia).


🔄 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
update-draphyOS --vm         # Enable VM mode
update-draphyOS --no-vm      # Disable VM mode

Features

Option Description
System Update Update all packages with dnf upgrade
Security Only Install only security patches
Check Updates Check for available updates without installing
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 (Alacritty)
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 (Thunar)
Super + Shift + y yazi (terminal 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 Alacritty GPU-accelerated, minimal, fast, actively maintained urxvt (declining community), 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

Every package in draphyOS was chosen for a reason. Here's the complete list with explanations:

Fedora i3 Spin — Core (Pre-installed)

These come with Fedora i3 Spin. draphyOS builds on top of them.

Package What it does Why it's here
i3 Tiling window manager The foundation — lightweight, keyboard-driven, tiling workflow
i3lock Screen locker Security — locks screen with custom draphyOS logo
i3status Default status bar Replaced by polybar, but kept for fallback
dmenu Default app launcher Replaced by rofi, but kept for fallback
dunst Notification daemon Lightweight, keyboard-friendly, highly configurable notifications
lightdm Display manager Login screen — minimal, reliable, easy to theme
alacritty Terminal emulator GPU-accelerated, fast, configurable via TOML
NetworkManager Network management WiFi/Ethernet — auto-connect, easy switching
network-manager-applet Network tray icon Quick network switching from system tray
firefox Web browser Default browser — privacy-respecting, open source
pulseaudio-utils Audio tools (pactl) Volume control from keybindings and polybar
pavucontrol Volume control GUI Per-application volume, input/output device selection
brightnessctl Brightness control Laptop screen brightness from keybindings
htop Process viewer Quick system overview, kill processes
mousepad Text editor Simple GUI editor for quick config edits
Thunar File manager Lightweight GUI file manager (GTK-based)
Fedora i3 Spin — Extended (Pre-installed)

Additional tools from i3 Spin that draphyOS uses or enhances.

Package What it does Why it's here
rofi App launcher Beautiful, themeable launcher — replaces dmenu
powertop Power analysis Identify power-hungry processes, optimize battery
arandr Display config Visual multi-monitor setup and arrangement
tmux Terminal multiplexer Split terminal, persistent sessions, remote work
lxappearance GTK theme switcher Change GTK themes, icons, fonts without editing files
Desktop Environment — draphyOS Additions

Core packages that make draphyOS look and function the way it does.

Package What it does Why it's here
polybar Status bar Highly customizable bar — replaces i3status with icons, modules
picom Compositor Window transparency, shadows, blur, rounded corners
fish Shell Modern shell — syntax highlighting, autosuggestions out-of-box
feh Image viewer Sets wallpaper on login, lightweight image viewing
flameshot Screenshots Select area, annotate, blur, save/copy — full-featured screenshots
playerctl Media control Control any media player (Spotify, Firefox, VLC) via keybindings
xss-lock Screen lock trigger Auto-locks screen after idle timeout (15 min)
blueman Bluetooth manager Easy Bluetooth pairing and device management
gammastep Blue light filter Reduces eye strain at night — auto-adjusts by time/location
xfce-polkit Auth dialogs Prompts for password when apps need root (package installs, etc.)
gnome-keyring Secret storage Stores passwords, SSH keys — auto-unlocks on login
xfce4-settings Settings manager Central place for appearance, keyboard, display settings
yad Dialog boxes Powers the calendar popup when clicking date in polybar
qt5ct Qt5 theming Makes Qt apps respect the GTK dark theme
ImageMagick Image processing Creates the logo overlay for the lock screen
xdotool X11 automation Executes keybindings from cheatsheet
xclip Clipboard Copies commands from cheatsheet to clipboard
Fonts & Theming

Visual consistency across the entire desktop.

Package What it does Why it's here
fira-code-fonts Programming font Ligatures (=> becomes arrow), excellent readability
google-noto-sans-mono-vf-fonts Fallback mono font Unicode coverage for characters Fira Code doesn't have
fontawesome-6-free-fonts Icon font All the icons in polybar (volume, wifi, battery, etc.)
fontawesome-6-brands-fonts Brand icons Logos for Spotify, Discord, etc. in polybar
mint-y-icons Icon theme Clean, modern folder/app icons — dark variant
adwaita-cursor-theme Cursor theme System default cursor — works everywhere
Terminal File Manager — yazi

Modern terminal file manager with image preview support.

Package What it does Why it's here
yazi File manager Blazing fast, vim-style navigation, image/PDF preview
ueberzugpp Image preview Displays images in terminal for yazi previews
ffmpegthumbnailer Video thumbnails Generates video thumbnails for yazi preview
poppler-utils PDF tools PDF preview in yazi (pdftotext, pdftoppm)
atool Archive helper Preview archive contents (zip, tar, etc.) in yazi
CLI Tools

Command-line utilities that improve daily workflows.

Package What it does Why it's here
git Version control Foundation for code management, draphyOS updates
btop System monitor Beautiful resource monitor — replaces htop for detailed view
zoxide Smart cd Remembers directories, jump with z instead of full path
fd-find File finder Fast, user-friendly alternative to find
ripgrep Code search Fast grep replacement — respects .gitignore
fzf Fuzzy finder Interactive search for files, history, anything
jq JSON processor Parse JSON in scripts (used for location detection)
ffmpeg Media converter Video/audio conversion, used by other tools
p7zip Archive tool Extract 7z, zip, rar, and other archive formats
neovim Text editor Modern vim — better defaults, Lua config, plugins
Media & Documents

Applications for viewing and creating content.

Package What it does Why it's here
mpv Video player Minimal, keyboard-driven, plays anything
audacious Music player Lightweight audio player with playlists
zathura PDF viewer Vim-style PDF reader — minimal, fast
zathura-pdf-poppler PDF backend Enables PDF rendering in zathura
obs-studio Screen recording Record screen, stream — industry standard
kdenlive Video editor Full-featured video editing (KDE-based)
libreoffice-writer Documents Word-compatible document editor
libreoffice-calc Spreadsheets Excel-compatible spreadsheet editor
libreoffice-impress Presentations PowerPoint-compatible slideshows
libreoffice-draw Diagrams Vector graphics, flowcharts, PDF editing
gparted Disk utility Partition disks, format drives — GUI tool
Browsers & Privacy

Multiple browser options for different needs.

Package What it does Why it's here
firefox Browser (default) Privacy-respecting, open source — pre-installed
brave-browser Browser Chromium-based, built-in ad blocker, privacy-focused
google-chrome-stable Browser For sites that require Chrome (some Google services)
torbrowser-launcher Tor Browser Anonymous browsing, access .onion sites
proton-vpn-gnome-desktop VPN client ProtonVPN — Swiss-based, no-logs VPN
Development Tools

Everything needed for software development.

Package What it does Why it's here
code VS Code Most popular code editor — extensions, debugging, Git
docker-ce Container runtime Run isolated containers for dev/deployment
docker-ce-cli Docker CLI Command-line interface for Docker
containerd.io Container daemon Low-level container runtime (Docker dependency)
docker-buildx-plugin Build tool Multi-platform Docker image builds
docker-compose-plugin Compose Define multi-container apps in YAML
postgresql-server Database Relational database — auto-configured with your user
postgresql-contrib DB extensions Additional PostgreSQL modules and utilities
fnm (via install script) Node.js manager Fast Node.js version switching per project
NVIDIA Support (Optional)

Auto-detected and installed only if NVIDIA GPU is present.

Package What it does Why it's here
akmod-nvidia NVIDIA driver Proprietary driver — auto-rebuilds on kernel updates
switcheroo-control GPU switching Enables hybrid graphics (Intel/AMD + NVIDIA) on laptops

Features:

  • Automatic GPU detection via lspci
  • Secure Boot detection with MOK enrollment guidance
  • Hybrid graphics support (switcheroo-control for laptops with dual GPUs)

📁 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
Alacritty ~/.config/alacritty/alacritty.toml Terminal
Gammastep ~/.config/gammastep/config.ini Night light
yazi ~/.config/yazi/yazi.toml File manager
btop ~/.config/btop/btop.conf System monitor
environment.d ~/.config/environment.d/defaults.conf App defaults
mimeapps ~/.config/mimeapps.list Default apps
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
Wallpaper script /usr/local/bin/set-wallpaper Manages wallpaper for desktop/lock/login
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:

  • XF86AudioNext — Next track (media key on keyboard)
  • XF86AudioPrev — Previous track (media key on keyboard)
  • XF86AudioPlay — Play/Pause (media key on keyboard)

Works across all MPRIS-compatible players. Uses your keyboard's dedicated media keys.

📸 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 (gammastep)

Automatically adjusts screen warmth based on time of day:

  • Location is auto-detected via IP geolocation during install
  • Reduces blue light at night for better sleep
  • No geoclue2 dependency — coordinates stored directly in config

Config: ~/.config/gammastep/config.ini

🖥️ 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

TLP vs power-profiles-daemon: The installer automatically handles conflicts between TLP and power-profiles-daemon. If you have TLP installed, power-profiles-daemon is disabled to avoid conflicts.

🖼️ Wallpaper

draphyOS includes a wallpaper management command that updates desktop, lock screen, and login screen:

set-wallpaper /path/to/image.png    # Set new wallpaper
set-wallpaper --current             # Show current wallpaper paths
set-wallpaper --reset               # Reset to default draphyOS wallpaper

What it does:

  • Copies image to ~/.config/wallpaper.png (desktop/lock)
  • Copies to /usr/share/backgrounds/draphyOS/ (login screen)
  • Clears lock screen cache (regenerates on next lock)
  • Applies immediately to desktop

Supported formats: PNG, JPG, JPEG, BMP, WEBP

Manual method (feh only):

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

Note: This only changes the desktop, not lock/login screens.

🔐 Password Storage (gnome-keyring)

Automatically stores:

  • Browser passwords (Firefox, Chrome)
  • SSH keys (unlocked on login)
  • Application secrets

No setup needed — works automatically with PAM.

📂 Default Applications

draphyOS sets sensible defaults for opening files. Edit ~/.config/mimeapps.list to customize:

File Type Default App
Documents (.doc, .docx, .odt) LibreOffice Writer
Spreadsheets (.xls, .xlsx, .ods, .csv) LibreOffice Calc
Presentations (.ppt, .pptx, .odp) LibreOffice Impress
Diagrams (.odg) LibreOffice Draw
PDF, EPUB Zathura
Images feh
Video mpv
Audio Audacious
Code/Text VS Code
Directories Thunar
🔋 Battery Charge Limit

During installation, you can set a charge limit to extend battery lifespan. The installer automatically detects your laptop brand and uses the appropriate interface.

Supported Laptops:

Brand Interface Limit Type Notes
ThinkPad (2012+) natacpi 60-100% Native kernel support
ThinkPad (pre-2012) tp_smapi 60-100% Requires tp_smapi module
ASUS asus-nb-wmi 40/60/80/100 Only these 4 values work
Dell dell-wmi 55-100% Requires kernel 6.12+
Lenovo IdeaPad ideapad_acpi ~60% toggle Conservation mode on/off
Huawei MateBook huawei-wmi 1-100% Supports start/stop thresholds
LG Gram lg_laptop 80% toggle Battery care on/off
Samsung samsung_laptop ~80% toggle Battery life extender on/off
MSI msi_ec Variable Hardware enforces start=stop-10
Framework Standard 1-100% Stop threshold only
System76 Standard Variable Open EC firmware only

To check/change the limit later:

# Check current limit (standard interface)
cat /sys/class/power_supply/BAT0/charge_control_end_threshold

# Set to 80% (standard interface)
echo 80 | sudo tee /sys/class/power_supply/BAT0/charge_control_end_threshold

# Lenovo IdeaPad conservation mode
cat /sys/bus/platform/drivers/ideapad_acpi/VPC*/conservation_mode
echo 1 | sudo tee /sys/bus/platform/drivers/ideapad_acpi/VPC*/conservation_mode

# Diagnostic info (install TLP first)
sudo tlp-stat -b

Note: VMs, desktops, and some older laptops don't support charge limits. The installer auto-detects support.

🐳 Docker

Docker is pre-configured with your user added to the docker group:

  • Log out and back in after install to use Docker without sudo
  • cgroups v2 delegation enabled for rootless resource limits
  • Verify: docker run hello-world
# Common commands
docker ps                    # List running containers
docker images                # List images
docker compose up -d         # Start compose project
🐘 PostgreSQL

PostgreSQL is initialized with your user as superuser:

  • Database and user auto-created matching your username
  • Connect immediately: psql
# Common commands
psql                         # Connect to your database
psql -l                      # List databases
createdb myapp               # Create new database
🟢 Node.js (fnm)

Node.js is managed via fnm (Fast Node Manager):

  • LTS version pre-installed
  • Automatic version switching per project
  • System Node.js conflict detection (warns if nodejs package is installed)
# Common commands
fnm list                     # List installed versions
fnm install 20               # Install Node.js 20
fnm use 20                   # Switch to Node.js 20
fnm default 20               # Set default version

Add a .node-version or .nvmrc file to project directories for automatic switching.

Note: If you have system-installed Node.js (dnf install nodejs), fnm will still work but you may see version conflicts. The installer warns about this.

📁 yazi (Terminal File Manager)

yazi is a blazing fast terminal file manager with image preview:

  • Launch: Super + Shift + y or type yazi
  • Preview images, PDFs, code with syntax highlighting
  • Vim-style navigation
# Keybindings in yazi
h/j/k/l     # Navigate (vim-style)
Enter       # Open file/directory
q           # Quit
y           # Copy (yank)
p           # Paste
d           # Cut
Space       # Select file
🔄 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 -c        # Check for updates without installing
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 --resume  # Cleanup after Fedora version upgrade
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

Automatic:

  • draphyOS config symlinks (all 25 config files)
  • System update script (/usr/local/bin/update-draphyOS)
  • Battery charge limit service and udev rules
  • cgroup delegation config (Docker rootless)
  • LightDM customization (restored from backup)
  • GNOME/GTK dark mode settings (reset to defaults)
  • Third-party repositories (Brave, Chrome, VS Code, Docker, yazi COPR)
  • draphyOS state files (checksums, package state, etc.)

Interactive prompts:

  • fnm and all Node.js versions
  • Claude Code CLI
  • Docker group membership and service
  • PostgreSQL service
  • switcheroo-control (GPU switching)
  • NVIDIA drivers (with dracut regeneration)
  • Orphaned dependency packages (dnf autoremove)
  • Shell revert to bash
  • Backup restoration

🔧 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-$(id -u).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?
  • Check ~/.config/alacritty/alacritty.toml for color settings
  • Restart Alacritty to apply changes
Running in a VM? Display not refreshing?

Picom's glx backend doesn't work well in virtual machines. Use VM mode:

Option 1: Use the --vm flag during install:

~/.draphyOS/install.sh --vm

Option 2: Enable VM mode after installation:

update-draphyOS --vm

Option 3: Manual fix:

  1. Edit ~/.config/picom/picom.conf:
    backend = "xrender";
    corner-radius = 0;
    vsync = false;
    use-damage = false;
  2. Restart picom: pkill picom && picom -b

To disable VM mode and restore GLX backend:

update-draphyOS --no-vm

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
NVIDIA driver not loading with Secure Boot?

NVIDIA's proprietary drivers need to be signed for Secure Boot. The installer detects this and provides guidance:

  1. After install, reboot and watch for MOK (Machine Owner Key) enrollment prompt
  2. Select "Enroll MOK" → "Continue" → Enter the password shown during install
  3. Reboot again — NVIDIA driver should now load

To check if Secure Boot is blocking the driver:

mokutil --sb-state                    # Check Secure Boot status
lsmod | grep nvidia                   # Check if driver loaded
journalctl -b | grep -i nvidia        # Check for errors
Hybrid graphics (laptop with dual GPU)?

For laptops with Intel/AMD integrated + NVIDIA discrete GPU, switcheroo-control is auto-enabled:

# Check GPU switching status
switcherooctl list

# Run app on discrete GPU
switcherooctl launch <app>

# Or use environment variable
DRI_PRIME=1 <app>

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

Packages

 
 
 

Contributors

Languages