Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adhere to the system colouration. #17378

Open
RokeJulianLockhart opened this issue Aug 26, 2024 · 16 comments
Open

Adhere to the system colouration. #17378

RokeJulianLockhart opened this issue Aug 26, 2024 · 16 comments
Labels
feature: redesign current features to rewrite scope: UI user interface and interactions

Comments

@RokeJulianLockhart
Copy link

RokeJulianLockhart commented Aug 26, 2024

Is your feature request related to a problem? Please describe.

Darktable looks utterly different to every application on my OS. It's jarring, and I can't think of any advantage of its custom appearance. Specifically, I sometimes have my OS set to a high contrast theme which Darktable can't match, and even when I don't, the inconsistency makes using the application unintuitive.

Describe the solution you'd like

Utilize the colouration applied by the OS/DE:

Alternatives

Utilize a GUI toolkit which automatically does so (like Qt). This is surely infeasible.

Additional context

@MStraeten
Copy link
Collaborator

darktables themes are designed to avoid false color perception - so i doubt there’s a benefit in using arbitrary color schemes not designed with image color perception in scope …

Using an alternative gui toolkit isn’t a realistic solution - too much effort that doesn’t pay in into the core functionality of darktable…

@ralfbrown ralfbrown added feature: redesign current features to rewrite scope: UI user interface and interactions labels Aug 27, 2024
@pitbuster
Copy link
Contributor

It's jarring, and I can't think of any advantage of its custom appearance.

While it's not that common in FLOSS applications, having custom colors is a very common practice in multimedia programs (as mentioned by @MStraeten to try to avoid color perception problems on edit sessions).

@parafin
Copy link
Member

parafin commented Aug 27, 2024

Look at Da Vinci Resolve for example - it has its own dark color theme as well. If custom GUI colors cause some issues (like the one about file dialog, but it’s very old), those are to be fixed, not the color theme. So either specify what problems are there, or close this issue.

@RokeJulianLockhart
Copy link
Author

RokeJulianLockhart commented Aug 28, 2024

If custom GUI colors cause some issues (like the one about file dialog, but it’s very old), those are to be fixed, not the color theme. So either specify what problems are there, or close this issue.

@parafin, the problems are those which I've listed in the relevant heading's contents, which I've now elaborated on. The "additional information" is merely as described, though I'm thankful for the correction.

#17378 (comment)

@pitbuster, I do in that case understand the default perhaps being a custom colour scheme, but I don't utilize Darktable for modifications much, and certainly not to the extent that colour perception is of enough consequence that I would want my high contrast theme overridden. I primarily use Darktable to import into applications.

#17378 (comment)

@MStraeten, you needn't concern yourself with that - it was noted solely because the template requested it, and I explicitly listed it in the issue as infeasible.

@parafin
Copy link
Member

parafin commented Aug 28, 2024

I think high contrast theme was recently added to darktable, if that’s the problem you’re having. Just using default colors will probably look very ugly, because GUI is designed with custom colors. There isn’t really any value in supporting native DE theme, what problem will that solve?

@RokeJulianLockhart
Copy link
Author

RokeJulianLockhart commented Aug 28, 2024

I think high contrast theme was recently added to darktable, if that’s the problem you’re having.

@parafin, each user theme, especially each high contrast theme, differs, because different people shall find different colours easier to parse. Even Windows allows you to customise solely the HC themes for this reason, despite their hostility to user theming.

There isn’t really any value in supporting native DE theme, what problem will that solve?

I've already provided rationale, so I don't understand the question. Would repeating it summarily or more concisely be of use, perhaps?

This might be more useful - as an example of what I request being implemented:

  1. GIMP recently switched from GTK2 with custom themes to GTK3, which adheres to the system colours via the gtkrc on KDE 5/6, and directly on GNOME 30/40.

  2. KdenLive allows the user to choose a theme, but also provides a "Default" option, which adheres to the system's colour theme (and widget style, in its case):

    Screenshot_20240828_162734

@parafin
Copy link
Member

parafin commented Aug 28, 2024

So it is about high contrast theme? Well, as I said, just using default colors will most likely look ugly. Your best bet is to write your own theme, there is a text field for that in the preferences.

@RokeJulianLockhart
Copy link
Author

Your best bet is to write your own theme, there is a text field for that in the preferences.

@parafin, even if I did, that would merely affect me, which isn't acceptable. If I have this problem, others do.

So it is about high contrast theme?

The scope of this issue encompasses all that I've aforementioned, which includes more than merely HC themes. ...that is, non-HC themes too.

Well, as I said, just using default colors will most likely look ugly.

Why? They don't for the rest of my OS.

@parafin
Copy link
Member

parafin commented Aug 28, 2024

darktable never used default colors, so noone ever checked or cared how it will look with them when designing the GUI. I can’t imagine this process producing good results with default DE theme.

@parafin
Copy link
Member

parafin commented Aug 28, 2024

High contrast theme is about accessibility. This is a valid topic, and, as I mentioned, high contrast theme was recently added. Sure, it’s not much, but there aren’t many people working on darkable as a whole. GIMP and kdenlive you mentioned surely have much larger development teams.

As for non-HC themes - you’ve already been given explanation and example of why custom colors are needed for applications like darktable. Just because you’re using it just as a file format converter (if I understood correctly) doesn’t mean it should be designed for that purpose. One application can’t and shouldn’t try to fit all use-cases.

@parafin
Copy link
Member

parafin commented Aug 28, 2024

But maybe some darktable developer will take time and effort to try your idea of using default colors. It’s just that I don’t think that quality of the results will be acceptable for inclusion in main codebase… Just my opinion.

@RokeJulianLockhart
Copy link
Author

RokeJulianLockhart commented Aug 28, 2024

As for non-HC themes - you’ve already given explanation and example of why custom colors are needed for applications like darktable. Just because you’re using it just as a file format converter (if I understood correctly) doesn’t mean it should be designed for that purpose. One application can’t and shouldn’t try to fit all use-cases.

@parafin, I believe that I've aforestated that I would consider this to apply irrespectively, because I don't ever perform modifications so minor that colour misperception would be of significant enough consequence to justify a custom theme (and if it were, I would apply one to my entire DE, so that the effect would not be reduced when switching between applications side-by-side).

darktable never used default colors, so noone ever checked or cared how it will look with them when designing the GUI. I can’t imagine this process producing good results with default DE theme.

As an example, /usr/share/color-schemes/BreezeDark.colors contains the undermentioned RGB values:

[ColorEffects:Disabled]
Color=56,56,56
ColorAmount=0
ColorEffect=0
ContrastAmount=0.65
ContrastEffect=1
IntensityAmount=0.1
IntensityEffect=2

[ColorEffects:Inactive]
ChangeSelectionColor=true
Color=112,111,110
ColorAmount=0.025
ColorEffect=2
ContrastAmount=0.1
ContrastEffect=2
Enable=false
IntensityAmount=0
IntensityEffect=0

[Colors:Button]
BackgroundAlternate=30,87,116
BackgroundNormal=49,54,59
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=161,169,177
ForegroundLink=29,153,243
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=252,252,252
ForegroundPositive=39,174,96
ForegroundVisited=155,89,182

[Colors:Complementary]
BackgroundAlternate=30,87,116
BackgroundNormal=42,46,50
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=161,169,177
ForegroundLink=29,153,243
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=252,252,252
ForegroundPositive=39,174,96
ForegroundVisited=155,89,182

[Colors:Header]
BackgroundAlternate=42,46,50
BackgroundNormal=49,54,59
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=161,169,177
ForegroundLink=29,153,243
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=252,252,252
ForegroundPositive=39,174,96
ForegroundVisited=155,89,182

[Colors:Header][Inactive]
BackgroundAlternate=49,54,59
BackgroundNormal=42,46,50
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=161,169,177
ForegroundLink=29,153,243
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=252,252,252
ForegroundPositive=39,174,96
ForegroundVisited=155,89,182

[Colors:Selection]
BackgroundAlternate=30,87,116
BackgroundNormal=61,174,233
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=252,252,252
ForegroundInactive=161,169,177
ForegroundLink=253,188,75
ForegroundNegative=176,55,69
ForegroundNeutral=198,92,0
ForegroundNormal=252,252,252
ForegroundPositive=23,104,57
ForegroundVisited=155,89,182

[Colors:Tooltip]
BackgroundAlternate=42,46,50
BackgroundNormal=49,54,59
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=161,169,177
ForegroundLink=29,153,243
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=252,252,252
ForegroundPositive=39,174,96
ForegroundVisited=155,89,182

[Colors:View]
BackgroundAlternate=35,38,41
BackgroundNormal=27,30,32
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=161,169,177
ForegroundLink=29,153,243
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=252,252,252
ForegroundPositive=39,174,96
ForegroundVisited=155,89,182

[Colors:Window]
BackgroundAlternate=49,54,59
BackgroundNormal=42,46,50
DecorationFocus=61,174,233
DecorationHover=61,174,233
ForegroundActive=61,174,233
ForegroundInactive=161,169,177
ForegroundLink=29,153,243
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=252,252,252
ForegroundPositive=39,174,96
ForegroundVisited=155,89,182

[General]
ColorScheme=BreezeDark
Name=Breeze Dark
Name[ar]=نسيم داكن
Name[az]=Breeze - Tünd
Name[bg]=Breeze Тъмен
Name[bs]=Breeze tamna
Name[ca]=Brisa fosca
Name[ca@valencia]=Brisa fosca
Name[cs]=Breeze Tmavé
Name[da]=Breeze Dark
Name[de]=Breeze Dunkel
Name[el]=Breeze σκούρο
Name[en_GB]=Breeze Dark
Name[eo]=Breeze Dark
Name[es]=Brisa oscuro
Name[et]=Breeze tume
Name[eu]=Breeze iluna
Name[fi]=Tumma Breeze
Name[fr]=Brise sombre
Name[gl]=Brisa escura
Name[he]=בריזה כהה
Name[hi]=ब्रीज़ गहरा
Name[hu]=Breeze Dark
Name[ia]=Brisa obscure
Name[id]=Breeze Gelap
Name[is]=Breeze dökkt
Name[it]=Brezza scuro
Name[ja]=Breeze ダーク
Name[ka]=Breeze მუქი
Name[ko]=어두운 Breeze
Name[lt]=Breeze tamsus
Name[lv]=Breeze Dark
Name[nb]=Breeze mørk
Name[nl]=Breeze Dark
Name[nn]=Breeze mørk
Name[pa]=ਬਰੀਜ਼ ਗੂੜ੍ਹਾ
Name[pl]=Ciemna Bryza
Name[pt]=Brisa Escura
Name[pt_BR]=Breeze Dark
Name[ro]=Briză, întunecat
Name[ru]=Breeze, тёмный вариант
Name[sk]=Tmavý vánok
Name[sl]=Sapica, temna
Name[sr]=Поветарац тамни
Name[sr@ijekavian]=Поветарац тамни
Name[sr@ijekavianlatin]=Povetarac tamni
Name[sr@latin]=Povetarac tamni
Name[sv]=Breeze mörk
Name[tg]=Насими торик
Name[tr]=Esinti Koyu
Name[uk]=Темна Breeze
Name[x-test]=xxBreeze Darkxx
Name[zh_CN]=Breeze 微风深色
Name[zh_TW]=Breeze Dark
shadeSortColumn=true

[KDE]
contrast=4

[WM]
activeBackground=49,54,59
activeBlend=252,252,252
activeForeground=252,252,252
inactiveBackground=42,46,50
inactiveBlend=161,169,177
inactiveForeground=161,169,177

...which renders as the undermentioned depicts:

image

I don't see how this fundamentally differs to your embedded "darktable" theme:

Screenshot_20240828_165257

Were I to customise those values such that they retained the current luminosity but were monochromatic (instead of grey-blue), there would be so little difference that few would notice.

@parafin
Copy link
Member

parafin commented Aug 28, 2024

If it’s that easy, I wonder why nobody has done it so far?.. Maybe you should try it yourself?

@RokeJulianLockhart
Copy link
Author

RokeJulianLockhart commented Aug 28, 2024

If it’s that easy, I wonder why nobody has done it so far?

@parafin, I've not deliberately communicated that implementing it would be trivial. I doubt that speculation as to why it's not been done yet would be of much practical use, but I presume that it is a combination of:

  1. Your and the other respondents' aforementioned opinions that colour perception matters to you all more than theme consistency; and:
  2. Difficulty implementing a cross-platform feature that necessarily consumes DE and OS-specific configuration values.

Maybe you should try it yourself?

Your codebase is primarily C. That's not my purview. Unfortunately, my skillset is QtWidgets 6 with Python 3.12, or CLI PowerShell Core 7+. The former already adheres to such preferences by default, and the latter doesn't apply in any respect here. Thanks for the suggestion, though.

@parafin
Copy link
Member

parafin commented Aug 28, 2024

Theming right now (in GTK3) is done almost exclusively through CSS (meaning available darktable themes are .css files). So no C coding skills are required to create a new theme. There are also some helper tools like gtk-inspector, which ease this task. So trying it may be simpler than you think;)

@RokeJulianLockhart
Copy link
Author

RokeJulianLockhart commented Aug 28, 2024

#17378 (comment)

@parafin, that wouldn't resolve this issue, because the theme would still be static. CSS as a stylisation language doesn't possess the functionality to dynamically acquire OS information - that would be the purview of the underlying language, which would then provide the toolkit with those values. Thanks, though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature: redesign current features to rewrite scope: UI user interface and interactions
Projects
None yet
Development

No branches or pull requests

9 participants
@pitbuster @parafin @ralfbrown @MStraeten @RokeJulianLockhart and others