mediathekview / MediathekView

Das Programm MediathekView durchsucht die Online-Mediatheken verschiedener Sender
https://mediathekview.de
GNU General Public License v3.0
855 stars 95 forks source link

[Feature Request] Dunkles Theme #617

Closed toby63 closed 2 years ago

toby63 commented 3 years ago

Ich denke fast, dass da schon mal jemand nach gefragt hat, aber ich konnte hier auf Github kein derartiges Issue finden.

Unter Linux passen sich viele Programme dem global gesetzten Design an, MediathekView ist da leider eine Ausnahme und scheint in den Einstellungen auch keine eigene Option dafür zu bieten.

DevCharly commented 3 years ago

Wie wäre es mit FlatLaf? 😉 https://github.com/JFormDesigner/FlatLaf

Wird übrigens in der aktuellen Version von install4j verwendet. Sowohl in der install4j IDE als auch in der erzeugten Installation. Z.B. von MediathekView: 😄

image

derreisende77 commented 3 years ago

MV besteht 30/70 aus Swing und JavaFX. FlatLaf würde sich auf die noch vorhandenen Swing-Komponenten auswirken, nicht jedoch auf die JavaFX-Anteile. Ziel ist es zukünftig Stück für Stück Richtung JavaFX zu migrieren bzw. zu einer komplett anderen Lösung. Für JavaFX gibt es meines Wissens nach bisher keine vernünftigen Styles für einen Dark mode. Von daher wäre es durchaus wünschenswert dark mode anzubieten, aber recht schwer zu realisieren.

toby63 commented 3 years ago

@derreisende77 Interessant, danke für die Erklärung.

toby63 commented 3 years ago

Ich habe ein wenig recherchiert und verschiedene Posts über die -fx-base Variable für CSS gefunden. Es scheint so zu sein, dass man diese benutzen kann, um dynamisch alle anderen Farben daran anzupassen (laut den Angaben macht JavaFX das dann automatisch).

Siehe z.b.: https://dlsc.com/2017/07/03/javafx-tip-26/ https://tomsondev.bestsolution.at/2014/03/13/eclipse-on-javafx-get-dark-the-power-of-javafx-css/

Nun weiß ich natürlich nicht wie genau in MediathekView die Farbgebung funktioniert, aber da ich nur einige wenige .css dateien in src/main/resources/mediathek/res/css/ gefunden habe, gehe ich davon aus, das weitestgehend die reguläre JavaFX CSS (also wahrscheinlich modena) benutzt wird. Ist das korrekt?

Wäre es dann vielleicht möglich die oben genannte Variante zu implementieren? (Eventuell ja in einer als experimentell gekennzeichneten Option?)

derreisende77 commented 2 years ago

Natürlich kann man den branch clonen und die CSS anpassen. Das wird bisher nur nicht gemacht da wir die standard Farbgebung nutzen. Aber Du wirst feststellen dass dann die JavaFX-Anteile dunkel sind, die Swing Anteile nicht. Dann müsstest Du das Swing L&F ändern. Dann passen die aber auch nicht zusammen und es sieht am Ende ggf. auf deinem Desktop gut aus, die macOS Nutzer brechen aber ins Essen. Da es nur einen Client für alle Plattformen gibt wird das erst angegangen wenn es seitens Oracle(Swing) und der JavaFX community hierzu vernünftige Lösungen gibt. Das ist bisher nicht der Fall.