██████╗ ███╗ ███╗███████╗ ██╔══██╗████╗ ████║██╔════╝ ██║ ██║██╔████╔██║███████╗ ██║ ██║██║╚██╔╝██║╚════██║ ██████╔╝██║ ╚═╝ ██║███████║ ╚═════╝ ╚═╝ ╚═╝╚══════╝
DankMaterialShell (dms) is a Wayland desktop shell built with Quickshell and Go. It serves a purpose similar to GNOME Shell or KDE Plasma, providing a unified interface for launching applications, managing windows, managing hardware interfaces, notifications, and much more.
There's really too much to list, but those are some of the highlights!
DankMaterialShell uses a client-server architecture where a Go backend (dms) manages system integrations and spawns the Quickshell-based UI as a child process. Communication happens over Unix socket using REQ/REP and PUB/SUB patterns.
Key Points:
DankMaterialShell includes a browser picker modal that appears when URLs are activated within the shell.
You can open URLs directly from the terminal using the dms open command:
dms open https://danklinux.com
When a URL is opened, DankMaterialShell displays a modal dialog with a list of installed web browsers, allowing you to select your preferred browser or set a default for future URL openings.
To set DankMaterialShell as your default web browser handler:
xdg-settings set default-web-browser dms-open.desktop
You can configure file type associations using xdg-mime commands. For example, to set DankMaterialShell as the default handler for specific MIME types:
# Set as default for HTTP/HTTPS URLs
xdg-mime default dms-open.desktop x-scheme-handler/http
xdg-mime default dms-open.desktop x-scheme-handler/https
The desktop entry file (dms-open.desktop) follows the freedesktop.org Desktop Entry Specification and allows DankMaterialShell to be launched from application menus and integrated with desktop environments.
Continue with Installation to get DankMaterialShell running on your system.
DankMaterialShell is open source and welcomes contributions ranging from core code changes to new widgets and plugins to documentation improvements.