Skip to content

bgibson72/yahr-quickshell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

263 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

YahrShell - Yet Another Hyprland Rice 🍚

Complete Arch Linux desktop environment featuring Hyprland + Quickshell with unified theme system and comprehensive automated installation.

yahr_home.png

✨ Features

  • 🎨 11 Beautiful Themes - Instant switching across all applications
  • πŸ–₯️ Quickshell Desktop - Modern QML-based desktop environment
  • ⚑ Unified Theme System - Synced themes for Hyprland, GTK, Kitty, Firefox, VSCodium, Discord, and more
  • 🎯 GPU-Aware Installation - Auto-detects and installs appropriate drivers (NVIDIA/AMD/Intel/Hybrid)
  • πŸš€ Fully Automated Installer - One command from minimal Arch to complete desktop
  • 🎭 Icon Theme Integration - Papirus icons with dynamic folder colors matching your theme
  • πŸ“¦ Complete Graphics Stack - Wayland, Mesa, Vulkan, Qt5/Qt6 support
  • πŸ”§ Two Installation Modes - Full (all features) or Minimal (core only)
  • βš™οΈ YOLO Mode - Completely unattended installation option

πŸ“‹ Prerequisites

All you need is a minimal Arch Linux installation!

The installer handles everything else:

  • βœ… GPU driver detection and installation (NVIDIA/AMD/Intel/Hybrid)
  • βœ… AUR helper installation (yay/paru)
  • βœ… Complete graphics stack (Wayland, Mesa, Vulkan, Qt)
  • βœ… All dependencies and recommended packages
  • βœ… Quickshell, Hyprland, and all desktop components
  • βœ… Theme system and configurations

Minimum Requirements

  • Fresh or existing Arch Linux installation
  • Internet connection
  • git installed (sudo pacman -S git)

That's it! The installer does the rest.

πŸš€ Quick Installation

# Clone the repository
git clone https://github.com/bgibson72/yahr-quickshell.git
cd yahr-quickshell

# Run the installer
./install.sh

Installation Modes

Normal Mode (Recommended for first-time users)

  • Interactive prompts for optional components
  • Choose AUR helper (yay/paru)
  • Select NVIDIA driver type (proprietary/nouveau)
  • Optional: Neovim, Vesktop, VSCodium, Thunar, Firefox, SDDM

YOLO Mode (Unattended)

  • Fully automated, zero prompts
  • Auto-installs yay as AUR helper
  • Auto-selects proprietary NVIDIA drivers
  • Skips all optional components (including SDDM)
  • Perfect for scripted/VM installations
  • No sudoers files created (only core system modifications)

Installation Types

  • Full Install: All core components + optional applications (recommended)
  • Minimal Install: Core desktop only (Quickshell, Hyprland, Kitty, Mako)

🎯 What Gets Installed

Core Components (Always Installed)

  • Quickshell - Desktop environment framework
  • Hyprland - Wayland compositor with complete configuration
  • GPU Drivers - Auto-detected for your hardware
    • NVIDIA: nvidia-dkms, nvidia-utils (with proper env vars)
    • AMD: vulkan-radeon, mesa-vdpau, amdgpu
    • Intel: vulkan-intel, libva-intel-driver, intel-media-driver
    • Hybrid: All detected GPUs + envycontrol for switching
  • Graphics Stack
    • Mesa, Wayland, XWayland
    • Qt5/Qt6 Wayland support
    • Vulkan, libinput, seatd, polkit
  • Kitty - Terminal emulator with theme sync
  • Mako - Notification daemon
  • Wofi - Application launcher and clipboard history GUI
  • Cliphist - Clipboard history manager (requires wofi for GUI)
  • Wallpapers - Collection organized by theme
  • Papirus Icons - With dynamic folder colors
  • Fonts - Maple Mono Nerd Font family, Nerd Fonts Symbols
  • Starship - Shell prompt with configuration

Recommended Packages (Auto-Installed)

  • Audio: PipeWire, WirePlumber, pavucontrol
  • Bluetooth: Blueman
  • Network: NetworkManager
  • Utilities: Thunar, Firefox, brightnessctl
  • Screenshots: hyprshot, grim, slurp
  • Clipboard: cliphist for clipboard history management
  • Tools: nwg-look (GTK theme manager)
  • System Info: fastfetch with themed logos
  • Fonts: Noto Color Emoji for colored icons

Optional Components (Full Install - User Choice)

  • Neovim - Editor with AstroVim configuration and 10 synced colorschemes
  • Vesktop - Discord client with Vencord theme support
  • VSCodium - VS Code alternative with theme integration
  • Thunar - File manager with thumbnail support and custom plugins
  • Firefox - Browser with userChrome.css theming
  • SDDM - Display manager (login screen) with theme
    • Note: Installing SDDM creates a sudoers rule (/etc/sudoers.d/sddm-sync-yahr) to allow passwordless theme synchronization. This only grants permission for the sync script to update SDDM theme files. You can skip SDDM installation if you prefer not to have this file created.
  • Pacseek - Modern TUI package manager with CLI launcher support

🎨 Included Themes

Switch themes instantly with Super + T. All themes include matching wallpapers and synchronized colors across all applications.

Catppuccin (Mocha) - Default Theme

catppuccin.png

Material (Palenight)

material.png

Dracula

dracula.png

Eldritch

eldritch.png

Everforest

everforest.png

Gruvbox

gruv_box.png

Kanagawa

kanagawa.png

NightFox

night_fox.png

Nord

nord.png

RosΓ© Pine

rose_pine.png

TokyoNight

tokyo_night.png

Custom Widgets

App Launcher - Super + A - Fuzzy search application launcher

app_launcher.png

Calendar - Super + C - Google Calendar integration with recurring events

Full-featured calendar with Google Calendar iCal URL support. Displays events, recurring events (daily, weekly, monthly, yearly), all-day events, and timezone-aware events. Click any day to view its events. Event indicators show which days have scheduled events. Auto-refreshes every 15 minutes.

calendar.png

Power Menu - Super + Escape - System controls

power_menu.png

Screenshot Tool - Super + PrtScrn - Multi-mode screenshots

screenshot_tool.png

Settings - Super + Shift + S - Quickshell configuration panel

Configure weather, clock format, screenshots, system tray visibility, theme selection, bar transparency, and bar position (top/bottom).

settings.png

Theme Switcher - Super + T - Visual theme selector

theme_switcher.png

Wallpaper Picker - Super + Shift + W - Browse and select wallpapers

wallpaper_picker.png

SDDM Login Screen - Themed display manager with automatic theme sync

Custom SDDM theme that automatically syncs colors and wallpaper with your selected theme. Test without logging out using: sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/yahr-theme

sddm_preview.png

System Integration

  • Workspace management with visual indicators
  • System tray with audio, network, and updates
  • Notification system with urgency-based styling
  • GTK theme synchronization
  • Configurable bar position - Toggle between top and bottom placement
  • SDDM theme synchronization - Login screen automatically syncs with system theme
  • Firefox theme synchronization - Automatic Firefox UI theming via userChrome.css
  • Neovim theme synchronization - AstroVim colorschemes sync with system theme
  • Fastfetch themed display - System info with matching logo and colors
  • CLI app launcher support - Terminal apps launch correctly from app launcher
  • Included GTK themes and icons - Multiple theme-matched GTK themes and icon packs included in quickshell/gtk-themes/ and quickshell/gtk-icons/

Hyprland Configuration

The Hyprland configuration is modularized for easier maintenance and customization. Instead of one monolithic config file, settings are organized into separate files:

  • monitors.conf - Display configuration and monitor settings
  • programs.conf - Default application definitions
  • autostart.conf - Programs to launch at startup
  • variables.conf - Environment variables
  • look-and-feel.conf - Appearance, animations, layouts, and window decorations
  • input.conf - Keyboard, mouse, touchpad, and gesture settings
  • keybinds.conf - All keyboard shortcuts and bindings
  • rules.conf - Window and workspace rules

The main hyprland.conf file sources all these modules, keeping it clean and organized. Edit individual files in hypr/ to customize specific aspects of your setup without navigating through a large config file.

Security & Permissions

Sudoers Configuration

The installer may create sudoers files for specific features (only with your permission during interactive installation):

SDDM Theme Sync (/etc/sudoers.d/sddm-sync-yahr)

  • Created only if you choose to install SDDM
  • Allows passwordless theme synchronization to SDDM login screen
  • Grants limited permissions:
    • Copy wallpapers to /usr/share/sddm/themes/yahr-theme/
    • Update /usr/share/sddm/themes/yahr-theme/theme.conf
  • Restricted to users in the wheel group
  • You can manually remove this file if you prefer entering a password for SDDM theme updates

Papirus Folder Colors (/etc/sudoers.d/papirus-folders)

  • Installed automatically with Papirus icons
  • Allows passwordless folder color changes
  • Single command: /usr/bin/papirus-folders

Both files follow security best practices with minimal, specific permissions. You can review or remove them at any time from /etc/sudoers.d/.

Development & Customization

Bidirectional Sync Scripts

For developers and power users who want to modify configs:

Working with Live Configs:

# Make changes directly in ~/.config/
# When ready to commit, sync changes back to repo:
./sync-from-live.sh

# Then commit and push:
git add -A
git commit -m "Your changes"
git push

Testing Repo Changes:

# Made changes in the repo? Test them in live config:
./sync-to-live.sh

# Restart affected applications (e.g., quickshell --replace &)

Key Features & Recent Improvements

Latest Updates (v1.3)

  • Google Calendar Integration - Full iCal URL support with recurring events (RRULE)
    • Supports DAILY, WEEKLY, MONTHLY, and YEARLY recurring patterns
    • Handles BYDAY, UNTIL, INTERVAL, and COUNT parameters
    • UTC and timezone-aware event parsing
    • All-day event support
    • Click any day to view its events
    • Event indicators on calendar days
    • Auto-refresh every 15 minutes (configurable)
    • Parses 1000+ events efficiently with caching

Previous Updates (v1.2)

  • Bar Position Toggle - Choose top or bottom bar placement in Settings
  • Neovim Theme Sync - AstroVim colorschemes now sync with system theme
  • Enhanced Installer - Improved package detection, theme initialization, and optional component prompts
  • Thunar Thumbnails - Full thumbnail support with tumbler and media plugins
  • Colored Weather Icons - Emoji support via fontconfig configuration
  • CLI App Launcher Support - Terminal-based apps (like Pacseek) now launch correctly
  • Fastfetch Integration - Themed logo display with kitty graphics protocol

Update Counter (v1.1)

  • Checks both official repos AND AUR packages
  • Handles pacman lock files properly
  • Uses paru/yay for AUR updates
  • Updates every hour with wake-from-sleep detection

Theme Synchronization

  • Neovim - 10 colorscheme mappings (Catppuccin, Everforest, Kanagawa, Dracula, Eldritch, Gruvbox, Nightfox, Nord, RosePine, TokyoNight)
  • Firefox - Auto-detect profile and generate userChrome.css from theme colors
  • VS Code/VSCodium - Separate theme sync with workbench color customizations
  • Kitty - Dynamic terminal theme switching
  • GTK - Synchronized via gsettings and settings.ini
  • Papirus Icons - Folder colors automatically match active theme
  • Starship - Color-only updates preserving custom glyphs
  • Hyprlock - Lock screen colors match active theme
  • Fastfetch - Logo updates to match theme

Contributing

Contributions, issues, and feature requests are welcome!

Credits & Inspiration

Core Technologies

GTK Themes & Icons

Inspired By


Made with ❀️ for the Arch + Hyprland community

About

my Arch Hyprland dotfiles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published