AvengeMedia / AvengeMedia/DankMaterialShell
`mkDmsShell` is undocumented, and HM nixpkgs overridal needs it
- Dominant language
- QML
- Stars
- 8.1k
- Forks
- 515
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 102
Description
### Compositor
Niri
### Distribution
NixOS
### If Other, please specify
_No response_
### Select your Installation Method
Distro Packaging
### Was this your original Installation method?
Yes
### If no, specify
_No response_
### dms doctor -vC
## DMS Doctor Report
**System**
- [ok] Operating System: NixOS 25.11 (Xantusia)
- Supported for runtime (install via NixOS module or Flake)
- [ok] Architecture: amd64
- [ok] Display Server: Wayland
- WAYLAND_DISPLAY=wayland-1
**Versions**
- [ok] DMS CLI: dms 1.5-beta+date=2026-06-13_3701b3d
- /nix/store/k29r0544a3zhvy5s6gw9f1f10ciyq3c6-dms-shell-1.5-beta+date=2026-06-13_3701b3d/bin/.dms-wrapped
- [ok] Quickshell: Quickshell 0.3.0 (revision tag-v0.3.0, distributed by Nixpkgs)
- /etc/profiles/per-user/erolm_a/bin/qs
- [ok] DMS Shell: 1.5-beta+date=2026-06-13_3701b3d
- /nix/store/k29r0544a3zhvy5s6gw9f1f10ciyq3c6-dms-shell-1.5-beta+date=2026-06-13_3701b3d/share/quickshell/dms
**Installation**
- [ok] DMS Configuration: Found
- /nix/store/k29r0544a3zhvy5s6gw9f1f10ciyq3c6-dms-shell-1.5-beta+date=2026-06-13_3701b3d/share/quickshell/dms
- [ok] shell.qml: Present
- /nix/store/k29r0544a3zhvy5s6gw9f1f10ciyq3c6-dms-shell-1.5-beta+date=2026-06-13_3701b3d/share/quickshell/dms/shell.qml
- [info] Install Type: Nix store
- /nix/store/k29r0544a3zhvy5s6gw9f1f10ciyq3c6-dms-shell-1.5-beta+date=2026-06-13_3701b3d/share/quickshell/dms
**Compositor**
- [ok] Hyprland: 0.52.1
- /run/current-system/sw/bin/hyprland
- [ok] niri: 25.11
- /etc/profiles/per-user/erolm_a/bin/niri
- [info] Active: niri
- [warn] Background Blur: Unsupported
- Compositor does not support ext-background-effect-v1
**Quickshell Features**
- [ok] Polkit: Available
- Authentication prompts
- [ok] IdleMonitor: Available
- Idle detection
- [ok] IdleInhibitor: Available
- Prevent idle/sleep
- [ok] ShortcutInhibitor: Available
- Allow shortcut management (niri)
- [ok] BackgroundBlur: Available
- Background blur API support in Quickshell
**Optional Features**
- [ok] accountsservice: Available
- User accounts
- [warn] power-profiles-daemon: Not available
- Power profile management
- [ok] logind: Available
- Session management
- [ok] cups-pk-helper: Available
- Printer management
- [info] I2C/DDC: No monitors detected
- External monitor brightness control
- [ok] qt6-imageformats: Installed (4 formats)
- Formats: WebP, TIFF, JP2, ICNS (/nix/store/44m5vdgldm4b0ngvfj2hbjmv4b72kriz-qtimageformats-6.11.0/lib/qt-6/plugins/imageformats:/run/current-system/sw/lib/qt-6/plugins/imageformats)
- [ok] kimageformats: Installed (4 formats)
- Formats: AVIF, HEIF, JXL, EXR (/nix/store/7jngqbdkd1c8v578n2cn8i716ah77c3f-kimageformats-6.26.0/lib/qt-6/plugins/imageformats:/run/current-system/sw/lib/qt-6/plugins/imageformats)
- [ok] Terminal: kitty
- [ok] Network: NetworkManager
- NetworkManager present. Using NM API.
- [ok] matugen: Installed
- Dynamic theming
- [ok] dgop: Installed
- System monitoring
- [ok] cava: Installed
- Audio visualizer
- [ok] khal: Installed
- Calendar events
- [info] danksearch: Not installed
- File search
- [info] fprintd: Not installed
- Fingerprint auth
**Config Files**
- [ok] settings.json: Present
- /home/erolm_a/.config/DankMaterialShell/settings.json
- [info] clsettings.json: Not yet created
- /home/erolm_a/.config/DankMaterialShell/clsettings.json
- [ok] plugin_settings.json: Present
- /home/erolm_a/.config/DankMaterialShell/plugin_settings.json
- [ok] session.json: Present
- /home/erolm_a/.local/state/DankMaterialShell/session.json
- [ok] dms-colors.json: Present
- /home/erolm_a/.cache/DankMaterialShell/dms-colors.json
**Services**
- [warn] dms.service: Disabled
- [info] greetd: Not installed
- Optional greeter service
**Environment**
- [info] QT_QPA_PLATFORMTHEME: Not set
- [info] QS_ICON_THEME: Not set
**Fonts**
- [ok] Normal Font: Inter Variable
- Available
- [ok] Monospace Font: Fira Code
- Available
---
**Summary:** 0 error(s), 3 warning(s), 32 ok
### Description
When using a Home Manager module, fixing the `nixpkgs` via `inputs.nixpkgs.follows = "nixpkgs-unstable"` does not build DMS with nixpkgs-unstable. The reason is that when used as a HM module, `mkDmsShell` function is passed a `pkgs` from HM directly, thus sidestepping the definition of `nixpkgs`.
In fact, I noticed a few weird things:
- quickshell 0.2.1 would be fetched rather than 0.3.0
- even if one just overrides quickshell, a weird mix of qt libraries would be pulled thus breaking a few plugins
To have DMS actually be built from unstable nix while the rest of the system is still stable (25.11 - I haven't updated to 26.05 yet) I had to do this:
1. Set up an overlay. E.g. see my `overlay.nix` where pkgs-unstable is just `nixpkgs-unstable` evaluated on the current system
```nix
{ pkgs-unstable, inputs, lib, ... }:
(final: prev: {
dms-shell = inputs.dms.lib.mkDmsShell pkgs-unstable;
quickshell = pkgs-unstable.quickshell; # ... }
```
2. Override the package in the HM module:
`programs.dank-material-shell.package = pkgs.dms-shell`
Thanks to Copilot I realized that `mkDmsShell` is meant exactly for this purpose, but if I am not mistaken it lacks documentation on the wiki.
### Expected Behavior
DMS builds and runs based on nixpkgs-unstable packages (notably qt 6.11 at the time of writing together with quickshell)
### Steps to Reproduce
Follow the wiki steps for the DMS flake, but follow the Home Manager route.
### Error Messages/Logs
When one only overrides quickshell:
```nix
WARN scene: @Services/MultimediaProbe.qml[3:1]: Cannot load library /nix/store/sxywryfhzpcjxc0g1xbaka4vgfchbq41-qtmultimedia-6.10.2/lib/qt-6/qml/QtMultimedia/libquickmultimediaplugin.so: /nix/store/sxywryfhzpcjxc0g1xbaka4vgfchbq41-qtmultime
dia-6.10.2/lib/qt-6/qml/QtMultimedia/../../../libQt6Multimedia.so.6: undefined symbol: _ZN14QObjectPrivateC2E16QtPrivate_6_10_2, version Qt_6_PRIVATE_API
WARN qml: [MultimediaService:19] QtMultimedia not available
```
### Screenshots/Recordings
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.