-
-
Notifications
You must be signed in to change notification settings - Fork 4
Quickshell Shell
Quickshell is the unified desktop shell for HorneroConfig, built with QML/QtQuick. It provides a cohesive, themeable, and extensible desktop experience.
Tip
Quickshell integrates with Material Design 3 theming, automatically adapting all UI elements to your wallpaper's color palette.
Quickshell provides all desktop shell functionality through modular QML components:
| Module | Description |
|---|---|
| Left Rail Bar | Vertical/horizontal rail with workspaces, clock, status icons, power |
| Launcher | App search, calculator, wallpaper browser, appearance selector |
| Dashboard | Tabbed system overview, media, performance, weather |
| Notifications | Popup notifications and notification center sidebar |
| Session Rail | Right-edge quick actions menu (logout, power, session controls) |
| Lock | PAM-authenticated lock screen |
| OSD Notch | Right-edge sliders for volume/brightness feedback |
| AI Chat | Multi-provider AI assistant sidebar |
| Background | Desktop wallpaper with optional audio visualizer |
| AreaPicker | Screenshot region selector |
| Utilities | Quick toggles panel (WiFi, Bluetooth, DND, etc.) |
Use the dots-quickshell script to manage the shell:
dots quickshell start # Start Quickshell
dots quickshell stop # Stop Quickshell
dots quickshell restart # Restart Quickshell
dots quickshell status # Check if running
dots quickshell preset list # List shell presets
dots quickshell preset apply <name> # Apply shell preset
dots quickshell config get bar.positiondots-quickshell ipc colours reload # Reload color scheme
dots-quickshell ipc bar toggle # Toggle bar visibility
dots-quickshell ipc dashboard toggle # Toggle dashboard
dots-quickshell ipc launcher toggle # Toggle launcher
dots-quickshell ipc session toggle # Toggle session/power menu
dots-quickshell ipc sidebar toggle # Toggle notification sidebarNote: drawer toggles are routed through Quickshell's drawers IPC target internally by dots-quickshell, so the commands above are the stable public interface you should keep using.
Quickshell uses Material Design 3 (M3) color palettes generated from your wallpaper:
- Wallpaper change triggers
dots-smart-colors --m3 -
generate-m3-colors.pyextracts M3 palette usingpython-materialyoucolor - Palette saved to
~/.cache/dots/smart-colors/scheme.json - Quickshell's
Coloursservice watches the file and reloads automatically
Each appearance (rice) can configure its M3 scheme via config.sh:
SCHEME_TYPE="vibrant" # tonalSpot, vibrant, expressive, neutral, monochrome, fidelity
DARK_MODE="true" # true/false
ACCENT_COLOR="" # Optional hex color override
BAR_POSITION="top" # top/bottomdots appearance list
dots appearance current
dots appearance apply machines
dots appearance set-variant tonalspot
dots appearance set-mode lightThe active shell now follows a unified drawers architecture inspired by reference/shell:
- A dedicated drawers layer (
modules/drawers/Drawers.qml) owns interaction orchestration. - Edge exclusion windows (
modules/drawers/Exclusions.qml) reserve space in Hyprland. - A global rounded desktop frame (
modules/drawers/BorderFrame.qml) provides shell chrome. - Bar behavior is split into content and wrapper:
modules/bar/BarContent.qmlmodules/bar/BarWrapper.qml
- Drawers interaction surface (
modules/drawers/Interactions.qml) handles hover/wheel behavior.
QML singletons providing system integration:
| Service | Purpose |
|---|---|
Colours |
M3 theming, transparency, wallpaper luminance |
Hypr |
Hyprland IPC (workspaces, monitors, keyboard) |
Audio |
PipeWire audio, Cava visualization, beat detection |
Players |
MPRIS media player control |
Brightness |
Screen brightness (brightnessctl, ddcutil) |
Network |
WiFi/Ethernet management (nmcli) |
SystemUsage |
CPU, GPU, memory, disk monitoring |
Weather |
Open-Meteo weather data |
Wallpapers |
Wallpaper browsing and selection |
Notifs |
Notification server (replaces Mako) |
Time |
System clock and date |
Visibilities |
Panel visibility state management |
Ai |
Multi-provider AI with function calling |
Performance-critical components built with CMake:
- ImageAnalyser โ Wallpaper luminance for dynamic transparency
- Qalculator โ Mathematical expression evaluation (libqalculate)
- AppDb โ Application frequency tracking (SQLite)
- Toaster โ Toast notification management
- Requests โ HTTP client for QML
- AudioCollector โ PipeWire audio capture
- BeatTracker โ Beat detection (aubio)
- CavaProvider โ Audio visualization (cava)
- FileSystemModel โ Filesystem browsing for QML
- CachingImageManager โ Image caching from QML items
Shell behavior is configured via ~/.config/hornero/shell.json:
{
"border": { "thickness": 2, "rounding": 24 },
"bar": {
"position": "left",
"showOnHover": false,
"sizes": { "innerWidth": 48 }
},
"appearance": {
"animations": {
"duration": 200,
"durations": { "small": 160, "normal": 220, "large": 320 }
}
}
}- Matched: wallpaper-driven M3 theming pipeline, left-rail shell feel, top control center, launcher command modes, right-edge OSD/session controls, rounded frame and edge exclusions.
-
Intentional deviations: Hornero-specific
dots-*integrations, rice selector mode in launcher, AI chat module. - In progress hardening: deeper panel unification and additional popout parity refinements.
| Keybinding | Action |
|---|---|
Super+D |
Toggle launcher |
Super+X |
Toggle session/power menu |
Super+Ctrl+B |
Toggle bar |
Super+? or Super+/
|
Keyboard shortcuts help |
~/.config/quickshell/
โโโ shell.qml # Main entry point
โโโ config/
โ โโโ Config.qml # Configuration singleton
โโโ services/ # System integration singletons
โ โโโ Colours.qml # M3 theming
โ โโโ Hypr.qml # Hyprland IPC
โ โโโ Audio.qml # Audio management
โ โโโ ...
โโโ modules/ # UI components
โ โโโ bar/ # Status bar
โ โโโ launcher/ # App launcher
โ โโโ dashboard/ # System dashboard
โ โโโ notifications/ # Notification system
โ โโโ session/ # Power menu
โ โโโ lock/ # Lock screen
โ โโโ osd/ # On-screen display
โ โโโ aichat/ # AI assistant
โ โโโ sidebar/ # Notification sidebar
โ โโโ background/ # Desktop background
โ โโโ areapicker/ # Screenshot selector
โ โโโ utilities/ # Quick toggles
โโโ utils/ # Shared utilities
โ โโโ Paths.qml
โ โโโ Icons.qml
โ โโโ SysInfo.qml
โ โโโ Strings.qml
โโโ plugin/ # C++ plugin (built by Chezmoi)
โโโ CMakeLists.txt
โโโ src/Hornero/# Check if already running
dots-quickshell status
# Check for errors
quickshell 2>&1 | head -50
# Ensure plugin is built
ls ~/.local/lib/quickshell/qml/Hornero/# Regenerate M3 palette
dots-smart-colors --m3
# Check scheme.json exists
cat ~/.cache/dots/smart-colors/scheme.json | head
# Force reload
dots-quickshell ipc colours reload# Ensure build deps are installed
yay -S --needed cmake ninja qt6-base qt6-declarative aubio cava pipewire
# Rebuild manually
cd ~/.config/quickshell/plugin
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build --prefix ~/.local/lib/quickshell- Rice System โ Theme switching (legacy naming, now exposed as "Appearances")
- Smart Colors System โ Color generation pipeline
- Dots Scripts โ CLI tools and management scripts
- Hyprland Keybindings โ Keyboard shortcuts
- Quickshell Parity Checklist โ End-to-end validation steps
- ๐ Quickshell Shell โญ
- โ Quickshell Parity Checklist
- ๐ Thunar File Manager
- ๐ Yazi File Manager
- ๐ CopyQ Clipboard Manager
- ๐ Dots Scripts Guide โญ Complete Documentation
- ๐พ Backup System
- ๐ Eject System
Quickshell-first flows:
- ๐ App Launcher - quickshell โ minimal
- ๐ Clipboard - cliphist/copyq โ minimal
- โก Power Menu - quickshell
- โ๏ธ Settings Hub - unified GUI settings
Media & Screen:
- ๐ธ Screenshots - flameshot โ grimblast โ grim
- ๐ Screen Lock - hyprlock
- ๐ Brightness - brightnessctl
System:
- โก Performance - powerprofilesctl
- โจ๏ธ Keyboard Layout - 13 layouts
- ๐ Battery Monitor - poweralertd
- ๐ File Manager - thunar โ nautilus
- ๐ Yazi - terminal file manager
- ๐ก๏ธ Security
- ๐ฅ๏ธ Hardware
- ๐ฎ NVIDIA Troubleshooting
- โก Hybrid GPU Performance
- ๐ถ Network Manager
Essential:
- ๐ Home - Start here
- ๐ Dots Scripts โญ - All tools & fallbacks
- ๐จ Rice System - Theme switching
- ๐ง Smart Colors - Adaptive theming
Recent Updates:
- โญ Dots Scripts - Quickshell-first command reference
- ๐ Hybrid GPU - NVIDIA/Intel power management
- ๐ Changelog 2025 - Latest changes