1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-06-12 22:23:29 -04:00
Guilherme Pagano 3e4d2b4d46 feat(control-center): add DiskUsage widget config overlay with showMountPath toggle and standardized tile sizing (#2507)
* feat(control-center): add widget config overlay with showMountPath toggle for DiskUsage

Introduces WidgetConfigOverlay and DiskUsageWidgetConfigMenu components, allowing
users to toggle mount path visibility per DiskUsage widget in edit mode

* refactor(control-center): use Theme.iconSizeLarge and Theme.fontSizeLarge for small tiles

Standardize SmallDiskUsageButton and SmallBatteryButton sizing with Theme.iconSizeLarge
and Theme.fontSizeLarge, and unify font weight to Font.Bold on both tile widgets.

* fix(control-center): adjust SmallDiskUsageButton font size based on showMountPath

* refactor(control-center): simplify DiskUsage config menu i18n strings

Remove the redundant "Disk Usage Widget" title and the toggle description
to reduce translatable strings
2026-06-01 11:35:14 -04:00
2026-05-26 09:06:26 -04:00
2025-11-12 20:34:58 -05:00

DankMaterialShell

DankMaterialShell

A modern desktop shell for Wayland

Built with Quickshell and Go

Documentation GitHub stars GitHub License GitHub release Arch version AUR version (git) Ko-Fi donate

DankMaterialShell is a complete desktop shell for niri, Hyprland, MangoWC, Sway, labwc, Scroll, Miracle WM, and other Wayland compositors. It replaces waybar, swaylock, swayidle, mako, fuzzel, polkit, and everything else you'd normally stitch together to make a desktop.

Repository Structure

This is a monorepo containing both the shell interface and the core backend services:

DankMaterialShell/
├── quickshell/         # QML-based shell interface
│   ├── Modules/        # UI components (panels, widgets, overlays)
│   ├── Services/       # System integration (audio, network, bluetooth)
│   ├── Widgets/        # Reusable UI controls
│   └── Common/         # Shared resources and themes
├── core/               # Go backend and CLI
│   ├── cmd/            # dms CLI and dankinstall binaries
│   ├── internal/       # System integration, IPC, distro support
│   └── pkg/            # Shared packages
├── distro/             # Distribution packaging
│   ├── fedora/         # Fedora RPM specs
│   ├── debian/         # Debian packaging
│   └── nix/            # NixOS/home-manager modules
└── flake.nix           # Nix flake for declarative installation

See it in Action

More Screenshots
Desktop Dashboard Launcher Control Center

Installation

curl -fsSL https://install.danklinux.com | sh

One command installs DMS and all dependencies on Arch, Fedora, Debian, Ubuntu, openSUSE, or Gentoo.

Manual installation guide

Features

Dynamic Theming Wallpaper-based color schemes that automatically theme GTK, Qt, terminals, editors (vscode, vscodium), and more using matugen and dank16.

System Monitoring Real-time CPU, RAM, GPU metrics and temperatures with dgop. Process list with search and management.

Powerful Launcher Spotlight-style search for applications, files (dsearch), emojis, running windows, calculator, and commands. Extensible with plugins.

Control Center Unified interface for network, Bluetooth, audio devices, display settings, and night mode.

Smart Notifications Notification center with grouping, rich text support, and keyboard navigation.

Media Integration MPRIS player controls, calendar sync, weather widgets, and clipboard history with image previews.

Session Management Lock screen, idle detection, auto-lock/suspend with separate AC/battery settings, and greeter support.

Plugin System Extend functionality with the plugin registry.

Supported Compositors

Works best with niri, Hyprland, Sway, MangoWC, labwc, Scroll, and Miracle WM with full workspace switching, overview integration, and monitor management. Other Wayland compositors work with reduced features.

Compositor configuration guide

Command Line Interface

Control the shell from the command line or keybinds:

dms run              # Start the shell
dms ipc call spotlight toggle
dms ipc call audio setvolume 50
dms ipc call wallpaper set /path/to/image.jpg
dms brightness list  # List available displays
dms plugins search   # Browse plugin registry

Full CLI and IPC documentation

Documentation

Development

See component-specific documentation:

  • quickshell/ - QML shell development, widgets, and modules
  • core/ - Go backend, CLI tools, and system integration
  • distro/ - Distribution packaging (Fedora, Debian, NixOS)

Building from Source

Core + Dankinstall:

cd core
make              # Build dms CLI
make dankinstall  # Build installer

Shell:

quickshell -p quickshell/

NixOS:

{
  inputs.dms.url = "github:AvengeMedia/DankMaterialShell";

  # Use in home-manager or NixOS configuration
  imports = [ inputs.dms.homeModules.dank-material-shell ];
}

Contributing

Contributions welcome. Bug fixes, widgets, features, documentation, and plugins all help.

  1. Fork the repository
  2. Make your changes
  3. Test thoroughly
  4. Open a pull request

For documentation contributions, see DankLinux-Docs.

Credits

Star History

Star History Chart

License

MIT License - See LICENSE for details.

Languages
QML 63.4%
Go 28.6%
CSS 2.9%
JavaScript 1.9%
Shell 1.4%
Other 1.8%