DankMaterialShell (dms)
DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop - all in one cohesive package with a gorgeous interface.
Components
DankMaterialShell combines two main components:
- QML/UI Layer (this repo) - All the visual components, widgets, and shell interface built with Quickshell
- Go Backend - System integration, IPC, process management, and core services
See it in Action
Quick Install
curl -fsSL https://install.danklinux.com | sh
That's it. One command installs dms and all dependencies on Arch, Fedora, Debian, Ubuntu, openSUSE, or Gentoo.
What You Get
Dynamic Theming Wallpaper-based color schemes that automatically theme GTK, Qt, terminals, editors (like vscode, vscodium), and more with matugen and dank16.
System Monitoring Real-time CPU, RAM, GPU metrics and temps with dgop. Full process list with search and management.
Powerful Launcher Spotlight-style search for apps, files (via dsearch), emojis, running windows, calculator, commands - extensible with plugins.
Control Center Network, Bluetooth, audio devices, display settings, night mode - all in one clean interface.
Smart Notifications Notification center with grouping, rich text support, and keyboard navigation.
Media Integration MPRIS player controls, calendar sync, weather widgets, clipboard history with image previews.
Complete Session Management Lock screen, idle detection, auto-lock/suspend with separate AC/battery settings, greeter support.
Plugin System Endless customization with the plugin registry.
TL;DR - One shell replaces waybar, swaylock, swayidle, mako, fuzzel, polkit and everything else you normally piece together to create a linux desktop.
Supported Compositors
DankMaterialShell works best with niri, Hyprland, sway, and dwl/MangoWC - with full workspace switching, overview integration, and monitor management.
Other Wayland compositors work too, just with a reduced feature set.
Compositor configuration guide →
Keybinds & IPC
Control everything from the command line or keybinds:
dms ipc call spotlight toggle
dms ipc call audio setvolume 50
dms ipc call wallpaper set /path/to/image.jpg
dms ipc call theme toggle
Full keybind and IPC documentation →
Theming
DankMaterialShell automatically generates color schemes from your wallpaper or theme and applies them to GTK, Qt, terminals, and more.
DMS is not opinionated or forcing these themes - they are created as optional themes you can enable. You can refer to the documentation if you want to use them:
Application theming: GTK, Qt, Firefox, terminals, vscode+vscodium →
Custom themes: Create your own color schemes →
Plugins
Extend dms with the plugin system. Browse community plugins at plugins.danklinux.com.
Documentation
Website: danklinux.com
Docs: danklinux.com/docs
Support: Ko-fi
Contributing
Contributions welcome! Bug fixes, new widgets, theme improvements, or docs - it all helps.
Contributing Code:
- Fork the repository
- Set up the development environment
- Make your changes
- Open a pull request
Contributing Documentation:
- Fork the DankLinux-Docs repository
- Update files in the
docs/folder - Open a pull request
Development Setup
Requirements:
python3- Translation management
Git Hooks:
Enable the pre-commit hook to check translation sync status:
git config core.hooksPath .githooks
Translation Workflow
Set POEditor credentials:
export POEDITOR_API_TOKEN="your_api_token"
export POEDITOR_PROJECT_ID="your_project_id"
Sync translations before committing:
python3 scripts/i18nsync.py sync
This script:
- Extracts strings from QML files
- Uploads changed English terms to POEditor
- Downloads updated translations from POEditor
- Stages all changes for commit
The pre-commit hook will block commits if translations are out of sync and remind you to run the sync script.
Without POEditor credentials, the hook is skipped and commits proceed normally.
Check the issues or join the community.
Credits
- quickshell the core of what makes a shell like this possible.
- niri for the awesome scrolling compositor.
- Ly-sec for awesome wallpaper effects among other things from Noctalia
- soramanew who built caelestia which served as inspiration and guidance for many dank widgets.
- end-4 for dots-hyprland which also served as inspiration and guidance for many dank widgets.