Ist es möglich, die automatische Farboptimierung von Terminal in Lion zu deaktivieren?

35

Es ist zwar großartig, dass das Terminal jetzt eine integrierte Unterstützung für das Ändern der ANSI-Farben bietet, aber ich finde es ärgerlich, dass die Farben automatisch angepasst werden, um den Kontrast zu verbessern, was bedeutet, dass die Farben, die ich tatsächlich auswähle, häufig verwaschen oder auf andere Weise verwaschen werden . Hier ist ein Screenshot, der das Problem erklärt:

Screenshot der OS X Terminal.app-Farbeinstellungen

Das stört mich, weil ich in Terminal und MacVim gerne dasselbe Farbschema verwende und bei dieser Behandlung von Farben durch Terminal nicht mit denen in MacVim übereinstimmen.

Kennt jemand eine Lösung für dieses Problem, außer auf iTerm 2 umzusteigen (was ich lieber nicht möchte - ich mag den Rest des Terminals, insbesondere einige GUI-Berührungen wie die pulsierende visuelle Glocke)? Vielen Dank!

Johan Sahlén
quelle
1
Gute Frage - Anpassungen scheinen auch für Fenstertransparenz vorgenommen zu werden,
egal
@kopischke, bei der Einstellung des Mindestkontrasts wird die Hintergrundfarbtrübung nicht berücksichtigt, wenn Sie das meinen.
Chris Seite
Es wäre hilfreich, wenn Sie einen Screenshot mit den erwarteten Farben auf einem schwarzen Hintergrund veröffentlichen würden. Abgesehen von den Zahlen kann ich keinen Unterschied zwischen den Farbfeldern im Voreinstellungsfenster und den Textfarben im Terminal in Ihrem Screenshot feststellen. Daher ist es schwer zu erkennen, wie bedeutend der Unterschied ist.
Chris Seite
Jetzt weiß ich, warum ich OS X verabscheue. Ich habe mehr als 6 Stunden Zeit verloren, um herauszufinden, warum ein Farbschema, das ich unter Linux entworfen habe, auf dem Mac meines Freundes beschädigt wurde Ich würde nie vermuten, dass es die Schuld des Terminals war ... Vielen Dank, dass Sie meine Diagnose bestätigt haben.
Jan Warchoł
Off-Topic, aber mit iTerm2 können Sie eine puslierende visuelle Glocke haben. Einstellungen> Erweitert> Visuelle Glocke blinkt auf dem gesamten Bildschirm, nicht nur als Glockensymbol.
user2551

Antworten:

23

Hier ist der Trick, den Sie kennen müssen: Die über RGB eingestellten Werte werden entstellt, die über HSB eingestellten nicht.

Ich hatte ein ähnliches Problem mit dem (großartigen) Solarized- Farbschema: MacVim hatte eine dunklere (und korrekte) Hintergrundfarbe als Terminal, obwohl ich alle korrekten RGB-Werte gemäß der Solarized-Spezifikation festgelegt hatte. Siehe hier:

Grundsätzlich müssen Sie wissen , was Ihre Farbwerte sein soll für jeden der Terminal - ANSI, Text und Hintergrund (beachten Sie, das eine auf der Registerkarte Fenster ist) Farben und sie dann über den HSB - Picker statt RGB eingestellt. Siehe dieses Beispiel:

Aus welchem ​​Grund auch immer (ich vermute eine Art Profil, oder vielleicht eine Kontrasteinstellung, wie Sie vorschlagen), ist die RGB-Farbe, die Sie eingeben, nicht die, die Sie erhalten. Sie werden auch feststellen, dass nach dem Festlegen der Werte über HSB beim Wechsel zur RGB-Auswahl andere Optionen als erwartet angezeigt werden. Die Solarized-Wertumrechnungen stimmen alle mit Photoshop überein. Es scheint etwas zu sein, das der Apple Color Picker für Sie erledigt.

Ryan Dlugosz
quelle
9
Das ist eine unglaublich gute Antwort.
Jason Salaz
Es sieht so aus, als würde RGB nicht als solches entstellt, sondern nur durch die Deckkraft-Einstellungen des Pickers gemäß der Antwort von @eirnym modifiziert - die Kombination der beiden erklärt es nicht nur, sondern löst es auf zwei Arten. Groß!
Stuff
2
Die Parade nicht zu regnen, aber ich kann nicht bestätigen, dass dies das Problem behebt. Terminal.app ändert weiterhin die Werte, die ich im HSB-Farbraum eingebe, auch wenn der Hintergrund auf die richtigen Werte eingestellt ist (einschließlich Deckkraft 100% und Unschärfe 0%). zuerst. Helle Werte scheinen dafür weniger anfällig zu sein, die nicht hellen eher. Vielleicht ist der Farbwähler in Terminal.app sehr fehlerhaft, vielleicht versucht er, in Bezug auf Kontrast und Farbbereich „schlau“ zu sein (ich würde auch nicht an Apple vorbeiziehen) - wie auch immer, die obige Lösung funktioniert bei meinem nicht System.
kopischke
... untersuchen einige mehr, scheint das Problem in der Abbildung von Solarized Farben von Gerät verwurzelt sein unabhängig (LAB / HSB - Farbraum) zu Gerät abhängig Farbraum (RGB). Konsistente Ergebnisse können erzielt werden, wenn der HSB-Farbraum wie oben gezeigt ausgewählt wird, jedoch nur, wenn er ausdrücklich dem Geräte-RGB zugeordnet wird (im Dropdown-Menü hinter dem kleinen Pfeil auf dem kleinen Farbquadrat links neben dem Dropdown-Feld für den Farbraum). Unterschiede in den RGB-Werten zu den Solarized-Farbtabellen werden durch die Tatsache erklärt, dass Solarized auf sRGB abgebildet wird, während der Farbwähler immer implizit auf Geräte-RGB abgebildet wird.
kopischke
… Was zeigt, dass der OS X-Farbwähler für Leute entwickelt wurde, die tatsächlich wissen, worum es in diesem Farbraum geht (z. B. Grafikdesigner), nicht für uns Terminal-Grunzer :). [Ja, OT, ich weiß]
kopischke
10

Wählen Sie in der Dropdown-Liste des Apple Color Picker-Farbfelds "Device RGB"

  1. Öffnen Sie den Farbwähler
  2. Wählen Sie die Registerkarte Schieberegler
  3. Klicken Sie auf das Farbfeld unter der Lupe links neben dem Dropdown-Regler
  4. Wählen Device RGB

Jetzt werden die durch den Hex-Wert angegebenen Farben nicht mehr der Farbraumkonvertierung unterzogen.

In Sierra wurde der Farbraumwähler in das Zahnradsymbol geändert: Sierra Farbraumwähler

Quelle

Daniel Holz
quelle
2
Cool - danke dafür! Bei allem Design-Können von Apple ist es nicht selbstverständlich, dass ein Klick darauf ein Menü anzeigt.
Ryan Dlugosz
Hinweis: Wenn diese Problemumgehung bei der Verwendung von Farben mit unterschiedlichen Farbräumen funktioniert, hängt sie wahrscheinlich von einem Fehler im Farbverarbeitungscode ab, der mit allen Farben funktionieren soll, und funktioniert möglicherweise in Zukunft nicht mehr, wenn dieser Fehler behoben ist.
Chris Seite
1
Dieser Trick hat bei mir funktioniert; Der HSB-Trick hat es nicht getan.
Jay
4

Farbprofile sind auf jeden Fall wichtig, aber hier lauert ein weiteres Problem: Terminal.app hellt automatisch alle Farben auf, wenn sie über dem Standardhintergrund angezeigt werden. Hier sind zum Beispiel die von Terminal.app ausgegebenen Farben aufgeführt , die das Farbschema Solarisiert ausführen , das mit dem DigitalColor Meter im sRGB-Modus gemessen und mit den kanonischen sRGB-Werten für Solarisiert verglichen wurde.

Wenn Terminal.app über einem schwarzen Hintergrund (oder einer anderen Farbe) dargestellt wird, werden ungefähr die richtigen Farben erzeugt. Auf dem Standardhintergrund sind jedoch alle Farben mit Ausnahme des Standard- und des Standard-Fettdrucks wesentlich zu hell.

ein Farbtest in Terminal.app.  Farben werden erwartet, wenn sie über farbigem Hintergrund dargestellt werden, werden jedoch aufgehellt, wenn sie über dem Standardhintergrund dargestellt werden.

April Arcus
quelle
Abgestimmt, weil dies keine Antwort ist. Es scheint ein Kommentar zu der Frage zu sein.
Chris Seite
2
Wie haben Sie diese Farbtabelle erstellt? Sieht super praktisch aus.
Luke Davis
2

Öffnen Sie die Fenstereinstellungen für Ihr Thema, schalten Sie die Hintergrundfarbe um, setzen Sie Unschärfe auf 0% und Deckkraft auf 100%. Danach sind Ihre Farben so, wie Sie möchten. Außerdem sollten Sie für diese Parameter jede Farbe, die Sie für den Text auswählen, überprüfen.

Bildbeschreibung hier eingeben

Eir Nym
quelle
Abgestimmt, weil dies nicht für die Frage gilt, bei der es um das kontrastarme Verhalten des Terminals geht und die die Hintergrundopazität nicht beeinflusst.
Chris Seite
2

Kurz gesagt: Nein, es gibt keine unterstützten Mittel, um dies zu deaktivieren.

Das Terminal wendet automatisch einen Mindestkontrast an, wenn eine ANSI-Farbe (oder eine erweiterte 256-Farben-Tabelle) auf der Hintergrundfarbe des Terminals angezeigt wird oder wenn die Vordergrund- / Textfarbe des Terminals auf einer ANSI-Hintergrundfarbe angezeigt wird.

Dies soll eine Annehmlichkeit sein, so dass man eine Hintergrund- oder Vordergrundfarbe einstellen und sie mit den ANSI-Farben kontrastieren kann, ohne alle ANSI-Farben anpassen zu müssen. Dies war besonders in früheren Versionen von Terminal wichtig, in denen keine Unterstützung für Voreinstellungen zum Anpassen der ANSI-Farben vorhanden war.

In älteren Versionen von Terminal wurde der Mindestkontrast für alle Farbkombinationen angewendet. Dies bedeutete jedoch, dass z. B. ANSI-Rot-auf-Rot-Text lesbar war. Einige Programme zeigen jedoch absichtlich Text mit derselben Vordergrund- und Hintergrundfarbe an, um ihn auszublenden (Zum Beispiel zum Anzeigen von Spieltipps oder Witzpointen). Aus diesem Grund wenden neuere Versionen von Terminal nicht den Mindestkontrast an, wenn eine ANSI-Farbe auf einer anderen angezeigt wird.

Anstatt nur den gleichen Farbfall zu behandeln, vermeidet das Terminal die Anwendung des Mindestkontrasts für alle Kombinationen von ANSI-Farben, da davon ausgegangen wird, dass der Benutzer alle ANSI-Farben so anpasst, dass sie wie gewünscht miteinander kontrastieren . Es wird auch angenommen, dass diese Benutzer die Hintergrund- und Vordergrundfarben des Terminals anpassen oder berücksichtigen, um sie an das gewünschte Farbschema anzupassen.

Wenn die in anderen Antworten vorgeschlagene Problemumgehung für die Verwendung von Farben mit unterschiedlichen Farbräumen funktioniert, hängt dies wahrscheinlich von einem Fehler im Farbverarbeitungscode ab, der mit einer beliebigen Farbe funktionieren soll und möglicherweise in Zukunft nicht mehr funktioniert wenn dieser Fehler behoben ist.

Wenn es für Sie wichtig ist, das Verhalten bei minimalem Kontrast explizit zu deaktivieren oder anzupassen, empfehlen wir Ihnen, Apple darüber in Kenntnis zu setzen, indem Sie einen Bericht unter https://developer.apple.com/bug-reporting/ mit einer beliebigen Apple-ID einreichen .

Chris Page
quelle