darktable-org / darktable-org/darktable

Adhere to the system colouration.

Open
#17,378 39 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature: redesign scope: UI
Dominant language
C
Stars
13.1k
Forks
1.4k
Avg merge
22h 14m
Merged PRs (30d)
198

Description

Rationale

(At least ⪆ 3.0.0rc0 of) Darktable looks utterly different to every application on my OS. Occasionally, I have my OS set to a high contrast theme which Darktable can't match, and even when I don't, the inconsistency makes utilising its GUI unintuitive.

The Desired Solution

In effect, add color-scheme: light dark to your text/CSS, with prefers-color-scheme: implicitly set to the current value of org.freedesktop.appearance.color-scheme (whether no-preference, prefer-dark, or prefer-light).

Considered Alternatives

In descendent order of desirability:

  1. Utilise a GUI toolkit which automatically does so (like Qt). However, I presume that this is infeasible.

  2. Manually apply the colouration provided by the OS/DE:

    1. On Windows, utilise learn.microsoft.com/en-us/uwp/api/windows.ui.viewmanagement.uisettings.getcolorvalue?view=winrt-26100. ^1

    2. On GNOME or KDE, use the values in the gtkrc (or better yet, on KDE, adhere to the current .color file's INI-formatted values).

Additional Context
  1. I'm not whatsoever suggesting CSD like issues/13555#issue-1573410812 does. Adherence to the DE's appearance in any manner except colouration is outside the purview of this issue. I also happen to not be fond of non-SSDs.

  2. The current status-quo has, occasionally, caused invisible elements. ^2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating darktable's GUI text/CSS and the entry points that select application colours. Compare the requested light, dark, and high-contrast behaviour with the referenced Windows, GNOME, KDE, and freedesktop appearance sources. Done means the interface follows the system colour scheme without addressing unrelated desktop-environment or CSD changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, css
Domain
accessibility, design, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.