Modular Wayland desktop dotfiles centered on Quickshell with Hyprland and Niri, managed via GNU Stow.
20251016_154132.mp4
- Symlink into $HOME with Stow:
- Core:
stow -t ~ home config quickshell hypr niri fish nvim kitty mpv - Optional:
stow -t ~ swaylock swaync swayosd waybar swayidle ghostty alacritty nushell
- Core:
- Remove:
stow -D -t ~ <package> - Test Quickshell:
quickshell(check logs for=== MainService System Info ===). - Sessions: Hyprland and Niri autostart Quickshell.
- Core: quickshell, hypr, niri, fish, kitty
- Shells: fish (primary), nushell, bash
- Terminals: kitty (primary), ghostty, alacritty
- UI: Quickshell handles shell, notifications, OSD, lockscreen
- Backups: swaync, swayosd, swaylock-effects, waybar (for fallback)
- Idle/Lock: hypridle/hyprlock (Hyprland), swayidle/swaylock-effects (Niri)
- Media: mpv
- Required: quickshell, hyprland or niri, fish, kitty, xdg-terminal-exec, pacman-contrib, gpu-screen-recorder, jq, nmcli, xrandr, libnotify
- Optional: hypridle, hyprlock, swayidle, swaylock-effects, swayosd, swaync, waybar, hyprshot, satty, ghostty, alacritty, nvim, mpv, zen-browser
Adjust package names for your distro.
- Battery monitoring & indicator
- Audio (input/output control)
- Media player controls (MPRIS)
- System info monitoring (CPU, Memory, Disk)
- Monitor management (hotplug, layout, resolution, HDR, VRR)
- Keyboard layout switching & indicator
- Display brightness control
- Keyboard backlight control
- Workspace management (Hyprland/Niri support)
- Active window tracking & display
- Multi-monitor support
- Notification system (FreeDesktop spec)
- System tray (StatusNotifier protocol)
- App launcher
- [/] Clipboard management
- IPC command system
- Lock screen (WlSessionLock)
- Idle management & inhibit
- Privacy indicators (mic/camera/screenshare)
- Network manager (WiFi/Ethernet)
- Bluetooth manager
- Wallpaper management (per-monitor, animated transitions)
- Screen recording (gpu-screen-recorder)
- OSD (on-screen display) system
- Power menu
- Package updates (Arch/pacman)
- Time & date display
- Weather information
- Power menu button
- Update checker (Arch)
- Idle inhibitor toggle
- Keyboard layout indicator
- Battery indicator (laptop)
- App launcher button
- Wallpaper picker button
- Workspace indicators (Normal & Special)
- Active window title
- Privacy indicators
- Volume control with panel
- Screen recorder controls
- Network indicator with panel
- Bluetooth indicator with panel
- System tray
- Date & time with calendar
- Weather panel (in date/time display)
- Media player widget (MPRIS controls)
- System info widget (CPU, Memory, Disk)
- Notification popup (actions, images, inline reply, grouping)
- Notification center (DND, history)
- OSD overlay (volume, brightness, etc.)
- Audio panel (devices, streams)
- Network panel (WiFi networks, connections)
- Bluetooth panel (devices, pairing)
- Lock screen (per-monitor wallpapers)
- App launcher (grid view, search)
- Wallpaper picker (per-monitor, transitions)
- [/] Theme (responsive scaling, colors)
- IconButton component
- Tooltip system
- Panel framework
- Input components
- Toggle components
- Waybar, swaync, swayosd, hyprlock, swaylock are all deprecated; Quickshell provides UI.
- Default terminal via
xdg-terminal-execis easier for me to swap in all the system.
Grateful for Linux/Hyprland/Niri/Quickshell projects and rest of community, learned alot from various existing shells, including: