AvengeMedia / AvengeMedia/DankMaterialShell
dank16: light-mode color3 (yellow) only meets the accent contrast target (~3:1 on the light background)
- Dominant language
- QML
- Stars
- 8.1k
- Forks
- 515
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 102
Description
### Compositor
Niri
### Distribution
Fedora
### 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 -v (home directory shortened to ~)
```
System Health Check
──────────────────────────────────────
System
● Operating System ····· Fedora Linux 44 (Forty Four)
└─ ID: fedora, Version: 44, Arch: amd64
● Architecture ········· amd64
● Display Server ······· Wayland
└─ WAYLAND_DISPLAY=wayland-1
Versions
● DMS CLI ·············· dms v1.6.1
└─ /usr/bin/dms
● Quickshell ··········· Quickshell 0.3.1 (revision , distributed by Fedora COPR (avengemedia/quickshell))
└─ /usr/bin/qs
● DMS Shell ············ v1.6.1
└─ /run/user/1000/danklinux-shell/d83248ba9119b48a
Installation
● DMS Configuration ···· Found
└─ /run/user/1000/danklinux-shell/d83248ba9119b48a
● shell.qml ············ Present
└─ /run/user/1000/danklinux-shell/d83248ba9119b48a/shell.qml
○ Install Type ········· Unknown
└─ /run/user/1000/danklinux-shell/d83248ba9119b48a
Compositor
● niri ················· 26.04
└─ /usr/bin/niri
○ Active ··············· niri
● Background Blur ······ Supported
└─ Compositor supports ext-background-effect-v1
Quickshell Features
● Polkit ··············· Available
└─ Authentication prompts
● IdleMonitor ·········· Available
└─ Idle detection
● IdleInhibitor ········ Available
└─ Prevent idle/sleep
● ShortcutInhibitor ···· Available
└─ Allow shortcut management (niri)
● BackgroundBlur ······· Available
└─ Background blur API support in Quickshell
Optional Features
● accountsservice ······ Available
└─ User accounts
● power-profiles-daemon Available
└─ Power profile management
● logind ··············· Available
└─ Session management
● cups-pk-helper ······· Available
└─ Printer management
○ I2C/DDC ·············· No monitors detected
└─ External monitor brightness control
● qt6-imageformats ····· Installed (5 formats)
└─ Formats: WebP, TIFF, GIF, JP2, ICNS (/usr/lib64/qt6/plugins/imageformats)
● kimageformats ········ Installed (4 formats)
└─ Formats: AVIF, HEIF, JXL, EXR (/usr/lib64/qt6/plugins/imageformats)
● Terminal ············· kitty
● Network ·············· NetworkManager
└─ NetworkManager present. Using NM API.
● matugen ·············· Installed
└─ Dynamic theming
● cava ················· Installed
└─ Audio visualizer
○ khal ················· Not installed
└─ Calendar events
● danksearch ··········· Installed
└─ File search
○ dankcalendar ········· Not installed
└─ Calendar app
○ fprintd ·············· Not installed
└─ Fingerprint auth
● adw-gtk3 ············· Installed
└─ GTK3 dynamic theming (user copy)
Config Files
● settings.json ········ Present
└─ ~/.config/DankMaterialShell/settings.json
○ clsettings.json ······ Not yet created
└─ ~/.config/DankMaterialShell/clsettings.json
● plugin_settings.json · Present
└─ ~/.config/DankMaterialShell/plugin_settings.json
● session.json ········· Present
└─ ~/.local/state/DankMaterialShell/session.json
● dms-colors.json ······ Present
└─ ~/.cache/DankMaterialShell/dms-colors.json
Services
● dms.service ·········· enabled, active
● greetd ··············· enabled
Environment
○ QT_QPA_PLATFORMTHEME · qt6ct
● qt6ct plugin (Qt6) ··· Installed
└─ /usr/lib64/qt6/plugins/platformthemes/libqt6ct.so
○ QT_QPA_PLATFORMTHEME… Not set
○ QS_ICON_THEME ········ Not set
● XDG_MENU_PREFIX ······ plasma- (menu file not found)
└─ Dolphin 'Open with…' dialog may be empty. Ensure /etc/xdg/menus/plasma-applications.menu exists.
→ https://danklinux.com/docs/dankmaterialshell/cli-doctor#xdg-menu-prefix
Fonts
● Normal Font ·········· Rubik
└─ Available via fontconfig
● Monospace Font ······· JetBrainsMono Nerd Font Mono
└─ Available via fontconfig
──────────────────────────────────────
1 warning(s), 36 ok
```
### Description
In light mode dank16 `color3` measures about 3:1 against the light background (`#998e00` on `#f5fafc`, 3.21:1), so yellow text in terminals is hard to read. Man pages rendered through bat and fzf's counters use it heavily.
**Cause**
- The light branch picks `color3` with `ensureContrastBidirectional(…, accentTarget, …)` ([dank16.go:573](https://github.com/AvengeMedia/DankMaterialShell/blob/f864dc22338e3f5c81f14478f4566f6a1717f982/core/internal/dank16/dank16.go#L573)); the dark branch uses `ensureContrastAuto(…, normalTextTarget, …)` ([dank16.go:628](https://github.com/AvengeMedia/DankMaterialShell/blob/f864dc22338e3f5c81f14478f4566f6a1717f982/core/internal/dank16/dank16.go#L628)).
- It is independent of the background issue: generating the light palette against the light surface gives the same `#998e00`.
- If the lower target is deliberate to keep the hue recognisably yellow, it still leaves yellow text below the normal-text target the dark branch uses (4.5:1 in its WCAG path).
Reproduced on 5 wallpapers: 2.88–3.21:1.
### Expected Behavior
Light yellow meets the same normal-text target that dark mode uses.
### Steps to Reproduce
1. Use a wallpaper-based dynamic theme in light mode.
2. Check `color3` in the generated kitty theme, or `.color3.light` from `dms dank16 --variants …`.
### Error Messages/Logs
_No response_
### Screenshots/Recordings
_No response_
Contributor guide
Research direction
Start in core/internal/dank16/dank16.go at the light and dark color3 paths around lines 573 and 628, and compare their contrast-target handling. Run dms dank16 --variants … and inspect .color3.light or the generated kitty theme across wallpapers. Done means light-mode color3 meets the normal-text contrast target described in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- accessibility, cli, desktop
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 85/100