Skip to content

dank16 generates low-contrast color5 and identical color5/color13 in light mode #3408

Description

@musaad-sharikh

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

dank16 assigns color5 and color13 without any contrast floor, so ANSI 35/95 is
effectively unreadable in both modes. In light mode the two slots are byte-identical, so
there is no normal/bright distinction at all. This is the generated palette rather than any
one tool's config, so every program that prints SGR 35/95 is affected.

Light mode — color5 and color13 are the same value, at 1.25–2.14:1 on the background:

# background color5 color13 on background color5 vs color13
1 #fbfaed #aab18a #aab18a 2.14:1 1.00:1
2 #fdf7ff #e4dcfd #e4dcfd 1.25:1 1.00:1
3 #fbf8ff #dbdfff #dbdfff 1.25:1 1.00:1

Dark mode — color13 is fine, color5 is not:

# background color5 on background color13 on background
1 #0f1417 #1c5070 2.15:1 #b6e3ff 13.61:1
2 #141218 #4d3e75 2.00:1 #ddd1ff 12.96:1

For comparison, color6 on the same backgrounds is 6.12–6.15:1 in light and 10.89–10.95:1 in
dark, so the other slots in the same hue family are fine.

Expected Behavior

color5 clears the same contrast target as the other normal slots, and color13 is a
distinct brighter value, as with every other normal/bright pair.

Steps to Reproduce

  1. Set any wallpaper and let matugen regenerate the palette.
  2. Read the generated ~/.config/kitty/dank-theme.conf (or dank16 in dms-colors.json).
  3. Compare color5 and color13 against background, in light mode and again in dark.

Five samples across three unrelated wallpapers are in the tables above; all values were read
back from DMS's own generated output, with no user override for these slots.

Error Messages/Logs

Cause, read from core/internal/dank16/dank16.go at master f864dc2:

  • Light: Color5 (L580–581) and Color13 (L607–608) both call
    DeriveContainer(primaryColor, true) with identical arguments, so the two slots are equal
    for every source colour.
  • Dark: Color5 (L636–637) is DeriveContainer(primaryColor, false), which scales value by
    0.463 — a container tone used directly as a foreground on the dark background.
  • Neither slot passes through ensureContrastAuto / ensureContrastBidirectional, unlike
    color1–color4 and color9–color12, so nothing enforces a floor on either.

Related but distinct slots: #3405, #3406, #2987.

Screenshots/Recordings

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions