blog · git · desktop · images · contact


Eine Lösung für „das Sommerproblem“

2020-06-13

Wenn man so durch meine Desktop-Screenshots scrollt, sieht man da einen ganzen Haufen dunkler Terminals. Ab und zu ist mal ein helles mit dabei. Der Grund ist, dass ich ja eigentlich schon ganz gerne meinen Laptop nehmen und eine Weile lang draußen sitzen würde. Das geht bloß mit einem dunklen Farbschema überhaupt nicht.

Über die Gründe kann ich nur spekulieren. Spiegelungen sind ein Teil davon. Selbst mit einem nicht-glossy Bildschirm ist es bei einem schwarzen Bild viel wahrscheinlicher, dass man irgendeine Form von Reflektion sieht. Und sei es nur ein Teil des eigenen, hellen T-Shirts. Das passiert bei hellen Hintergründen auf dem Bildschirm nicht (so sehr).

Das Thema ist insgesamt aber nicht trivial und ich habe die einzelnen Gründe nicht im Detail recherchiert.

Ich versuche daher also von Zeit zu Zeit zu einem hellen Farbschema zu wechseln. Und falle jedes Mal auf die Nase.

Ich meine, zwei Hauptgründe dafür auszumachen:

  1. Mit einem schwarzen Hintergrund kann man gut helle Vordergrundfarben verwenden. Unterschiedliche Elemente auf dem Bildschirm können dann je nach Bedeutung eine andere helle Vordergrundfarbe haben. Das funktioniert bei hellem Hintergrund einfach nicht – man versuche nur, gelb auf weiß zu benutzen. So oder so muss man ein „dunkles gelb“ nehmen, was nicht wirklich gelb ist und schlimm aussieht.
  2. Viele Terminalanwendungen erwarten ein dunkles Farbschema oder haben diese Farben sogar hart drin.

Man vergleiche nur diese zwei Fenster (im Prompt das $ ignorieren):

bitmap fonts

Das dunkle hat eine viel bessere Lesbarkeit. Man kann das noch etwas verbessern, wenn man einen größeren oder fetteren Font nimmt (wahrscheinlich, weil „helle Bereiche strahlen“), da ich aber keinen weiteren Platz auf meinem Bildschirm mehr opfern kann, ist die einzige andere Option ein Vektorfont mit Antialising:

vector fonts

Das ist in der Tat besser. Aber so leid es mir tut, mein Bildschirm ist alt, meine Augen sind nicht mehr so gut – Fonts mit Antialiasing sehen für mich furchtbar aus. Wenn ich die länger anschaue, habe ich das Gefühl, dass meine Augen nicht ganz scharfgestellt sind und ich sie zusammenkneifen muss, weil alles unscharf wirkt. Ich hab’s kürzlich für eine ganze Woche probiert, das wird nix. In Zukunft könnte das mal besser werden, wenn ich dann auch mal einen Bildschirm mit höherer Pixeldichte habe. Aber so weit ist es noch nicht ganz.

Selbst nach drei Wochen Nutzung eines hellen Farbschemas habe ich mich nicht dran gewöhnt und es fühlt sich an, als würde es mich anschreien. Es ist zu hell und nicht angenehm. Das will ich nicht dauerhaft benutzen.

Was also tun?

Mein Ziel ist also, in helleren Umgebungen arbeiten zu können – für eine Weile. Keinen ganzen Tag. Nicht einmal jeden Tag. Nur ab und zu. Warum also die Farben nicht temporär ändern?

Man könnte das natürlich über die Einstellungen im Terminal machen (ich habe sogar testweise xiate dahingehend aufgeblasen, dass es komplette Profile mit verschiedenen Farbschemata unterstützt), aber das löst halt das Problem auch nicht. Ich will nicht in jeden gerade offenen Vim set background=light eingeben müssen. Ich will noch nicht einmal in jedem offenen Terminal den Hotkey zum Ändern des Farbschemas drücken müssen. So klappt’s nicht.

Folglich … muss ich es global machen. Den ganzen X-Bildschirm invertieren.

Das kann man erreichen, indem man die Gammakurven von X anpasst, zum Beispiel mit diesem Programm:

https://github.com/zoltanp/xrandr-invert-colors

Das muss aber das einzige Programm sein, was am Gamma dreht, also darf zum Beispiel redshift nicht parallel laufen.

Habe nun also einen Hotkey für xrandr-invert-colors. Einmal drücken und der Bildschirm wird hell. Nochmal drücken und alles ist wieder normal.

Das dunkle terminal von oben sieht dann so aus:

inverted window

Als vollständigeres Beispiel ein ganzer Bildschirm:

inverted screen

Hat natürlich auch Nachteile. Der 3D-Effekt in meinen Statusleisten ist auch invertiert. Das Terminal ist hell, aber manche Farben sind „falsch“ – rot ist nicht rot. Wahrscheinlich habe ich diesen Ansatz aus solchen Gründen in der Vergangenheit verworfen. Das UI muss ja gut und konsistent aussehen, also kann ich’s nicht einfach komplett invertieren, oder?

Doch, geht. Spielt keine Rolle. Es ist nicht perfekt, aber es ist gut genug. Den kaputten 3D-Effekt kann man für eine Weile ignorieren. Ebenso die sonstigen negativen Eigenschaften eines hellen Farbschemas. Für eine Weile. Um ehrlich zu sein, hat es ja ohnehin Nachteile, wenn man auf dem Balkon im hellen Tageslicht sitzt: Auch hier Augen zusammenkneifen, weil es so hell ist; man konzentriert sich nur auf einen kleinen Teil des Bildschirms; Stuhl und Tisch sind eh schlecht. Aber die Sonne ist schön.

Und einen Vorteil hat’s: Der gesamte Bildschirm wird invertiert, also auch Tools wie dmenu, alle möglichen anderen Programme, die man nicht wirklich customizen kann, Webseiten, was auch immer. Und wenn’s mal für ein Programm nicht gut funktioniert, weil die eh schon hell sind, kann ich mit einem Tastendruck zurückschalten.

Ich habe diesen Ansatz jetzt einige Mal probiert und das funktioniert viel besser, als die ganze Zeit ein helles Farbschema zu haben. Ich denke, damit kann ich endlich „das Sommerproblem“ als gelöst betrachten. Seit ich meinen ersten Laptop bekommen hatte, ging mir das auf den Keks.

Comments?