Dux Modular Shell is a modular desktop shell for Wayland compositors that uses Quickshell and Go to provide a bar, launcher, control center, notifications and lock screen in place of scattered tools like waybar.
- v2.1.2
- Published at
- 5d ago
- 9,013
- Stars
- 8,075
- Download
- Synced at
- 3d ago
Latest release
v2.1.2Nov 8, 2026, 03:45 PMREADME
Project Overview
When you want a complete desktop on Wayland, Dux Modular Shell offers one assembled answer: a single shell supplies the top bar, launcher, control center, notification center, lock screen and desktop widgets. The interface is rendered with Quickshell QML while system integration lives in the dms daemon written in Go, folding work that usually needs waybar, swaylock, swayidle, mako, fuzzel and polkit into one repository. It is a monorepo: quickshell/ holds the UI, core/ the Go backend and CLI, and distro/ the packaging files.
| Item | Value |
|---|---|
| Platform | Wayland (niri, Hyprland, Sway and others) |
| Stack | Quickshell / Qt 6 QML + Go 1.27.3 |
| Current version | v2.1.2 |
| License | MIT |
One shell replaces a whole row of separate components, and its themes and plugin set move with you.
Key Features
- Dynamic theming: pulls colors from the wallpaper through matugen and dank16, rewriting GTK, Qt, terminal and VS Code / VSCodium themes
- System monitoring: the
dmsdaemon samples CPU, RAM, GPU load and temperatures, with a searchable process list - Launcher: Spotlight-style search across apps, files, emoji, open windows, a calculator and commands
- Control center: network, Bluetooth, audio devices, display settings and night mode in one panel
- Notification center: groups by application with rich text and keyboard navigation
- Media and clipboard: MPRIS transport controls, calendar, weather and clipboard history with image previews
- Session management: lock screen and idle detection with separate AC and battery auto-lock and suspend rules
- Plugin system:
~/.config/dms/plugins.lock.jsonrecords managed plugins with exact Git commits so the same set can be reproduced elsewhere
Interface and Components
- TopBar: multi-monitor status bar with workspace switching
- DBar: customizable widget bar with plugin support
- Dock: application dock with window management
- DDash: dashboard aggregating metrics and quick toggles
- DIsland: dynamic-island style notification area at the top of the screen
- OSD and notifications: overlays for volume and brightness plus app notification popups
- Desktop layer: desktop widget layer, desktop context menu, blurred or video wallpaper layers
Command Line and IPC
dms run: start the shelldms ipc call: invoke capabilities per object, such asdms ipc call spotlight toggleordms ipc call audio setvolume 50dms brightness list: enumerate controllable displaysdms plugins search/lock/restore: browse the registry, refresh the lockfile, restore from itdms doctor: verify the runtime environment
Target Audience
- Wayland users on niri or Hyprland
- Linux desktop users who want one consistent look
- People needing multi-monitor bars and workspace switching
- Developers writing desktop components in QML
Quick Start
- Confirm you are in a Wayland session on niri, Hyprland, Sway, MangoWC, labwc, Scroll or Miracle WM
- Install from your distribution:
dux-shellon Arch,dux-shell-gitfrom the AUR, with Fedora, Debian, Ubuntu, openSUSE and Gentoo packaging underdistro/ - Run
dms runonce and check that the bar and launcher appear - Pick a wallpaper in settings; colors and terminal or editor themes regenerate from it
- Browse extensions with
dms plugins search, then rundms plugins lockto pin versions - On NixOS, import
homeModules.dank-material-shellfrom the flake
System Requirements
| Item | Requirement |
|---|---|
| Session | Wayland; X11 is not supported |
| Compositor | Full support on niri, Hyprland, Sway, MangoWC, labwc, Scroll and Miracle WM |
| Runtime | Quickshell and Qt 6; Go 1.27.3 when building from source |
| Distributions | Arch, Fedora, Debian, Ubuntu, openSUSE, Gentoo, FreeBSD, NixOS |
| IPC | UI and the dms daemon negotiate an API version, currently requiring apiVersion >= 38 |
Notes
- Wayland only: workspaces, layer-shell surfaces and screenshots rely on Wayland protocols, so X11 has no path
- Compositor sets the ceiling: only the seven listed compositors get full workspace switching, overview and monitor management; others lose features
- Wide takeover: the bar, lock screen and idle management are handled here, so existing waybar and swaylock configs stop applying
- The lockfile pins versions:
~/.config/dms/plugins.lock.jsonfixes exact commits, so restored plugins do not follow upstream untildms plugins lockruns again