Obwohl es großartig ist, dass Terminal jetzt eine integrierte Unterstützung zum Ändern der ANSI-Farben hat, finde ich es ärgerlich, dass es die Farben automatisch anpasst, um den Kontrast zu verbessern, was bedeutet, dass die Farben, die ich tatsächlich auswähle, oft ausgewaschen oder auf andere Weise ausgewaschen werden . Hier ist ein Screenshot, der das Problem erklärt:
Das nervt mich, weil ich gerne das gleiche Farbschema in Terminal und MacVim verwende, und mit dieser Behandlung von Farben durch Terminal stimmen sie nicht mit denen in MacVim überein.
Kennt jemand eine Lösung dafür, außer zu iTerm 2 zu wechseln (was ich lieber nicht möchte – ich mag den Rest von Terminal, besonders einige GUI-Touches wie die pulsierende visuelle Glocke). Danke!
Hier ist der Trick, den Sie kennen müssen: Werte, die über RGB gesetzt werden, werden verstümmelt, die über HSB gesetzten 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 eingestellt hatte. Siehe hier:
Grundsätzlich müssen Sie wissen, wie Ihre Farbwerte für jede der ANSI-, Text- und Hintergrundfarben des Terminals sein sollen (beachten Sie, dass sich diese auf der Registerkarte „Fenster“ befindet) und sie dann über die HSB-Auswahl anstelle von RGB festlegen . Siehe dieses Beispiel:
Aus irgendeinem Grund (ich vermute eine Art Profilsache oder vielleicht eine Kontrastoptimierung, wie Sie vorschlagen), ist die von Ihnen eingegebene RGB-Farbe nicht das, was Sie erhalten. Sie werden auch feststellen, dass nach dem Einstellen der Werte über HSB beim Wechseln zur RGB-Auswahl andere Optionen als erwartet angezeigt werden. Die Solarized-Wertkonvertierungen stimmen laut Photoshop alle überein; Es scheint etwas zu sein, was der Apple-Farbwähler für Sie tut.
base03
(dunkle Fensterfarbe) wird beispielsweise korrekt gerendert, aber base3
(helle Fensterfarbe) nicht vollständig. Und obwohl der Unterschied so subtil ist, dass er fast vernachlässigbar ist, macht der HSB-zu-Geräte-RGB-Ansatz den in der Frage des OP beschriebenen Effekt nicht vollständig zunichte.Device RGB
Jetzt werden Farben, die durch Hex-Werte angegeben sind, nicht der Farbraumkonvertierung unterzogen.
In Sierra hat sich die Farbraumauswahl in das Zahnradsymbol geändert:
Farbprofile sind definitiv wichtig, aber hier lauert ein weiteres Problem: Terminal.app hellt automatisch jede Farbe auf, wenn sie über dem Standardhintergrund angezeigt wird. Hier sind zum Beispiel die Farben, die von Terminal.app mit dem Solarized-Farbdesign ausgegeben werden , gemessen mit dem DigitalColor Meter im sRGB-Modus und verglichen mit den kanonischen Solarized-sRGB-Werten.
Wenn Terminal.app über einem schwarzen (oder einem anderen farbigen) Hintergrund dargestellt wird, erzeugt es ungefähr die richtigen Farben; Auf dem Standardhintergrund sind jedoch alle Farben mit Ausnahme des Standard- und Standardfetttexts wesentlich zu hell.
Kurz gesagt: Nein, es gibt keine unterstützten Mittel, um dies zu deaktivieren.
Terminal wendet automatisch einen minimalen Kontrast an, wenn eine ANSI-Farbe (oder erweiterte 256-Farben-Tabelle) auf der Terminal-Hintergrundfarbe angezeigt wird, oder wenn die Vordergrund-/Textfarbe des Terminals auf einer ANSI-Hintergrundfarbe angezeigt wird.
Dies ist als Bequemlichkeit gedacht, damit man eine Hintergrund- oder Vordergrundfarbe einstellen und sie mit den ANSI-Farben kontrastieren lassen kann, ohne alle ANSI-Farben anpassen zu müssen. Dies war besonders wichtig in früheren Versionen von Terminal, die keine Unterstützung für Einstellungen zum Anpassen der ANSI-Farben hatten.
Ältere Versionen von Terminal wandten den Minimalkontrast für alle Farbkombinationen an, aber das bedeutete, dass zB ANSI-Rot-auf-Rot-Text lesbar sein konnte, aber einige Programme Text mit der gleichen Vorder- und Hintergrundfarbe anzeigen, um ihn zu verbergen (z. B. zur Anzeige von Spielhinweisen oder Witzpunzen). Aus diesem Grund wenden neuere Versionen von Terminal den Mindestkontrast nicht an, wenn eine ANSI-Farbe auf einer anderen angezeigt wird.
Anstatt nur den Fall der gleichen Farbe zu behandeln, vermeidet Terminal jetzt die Anwendung des Mindestkontrasts für alle Kombinationen von ANSI-Farben, da davon ausgegangen wird, dass der Benutzer, wenn er ANSI-Farben anpasst, sie alle 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, damit sie zu ihrem gewünschten Farbschema passen.
Wenn die in anderen Antworten vorgeschlagene Problemumgehung zur Verwendung von Farben mit unterschiedlichen Farbräumen funktioniert, beruht sie wahrscheinlich auf einem Fehler im Farbbehandlungscode, der mit jeder Farbe funktionieren soll und in Zukunft möglicherweise nicht mehr funktioniert wenn dieser Fehler behoben ist.
Wenn es Ihnen wichtig ist, das Verhalten mit minimalem Kontrast explizit zu deaktivieren oder anzupassen, empfehle ich, Apple dies mitzuteilen, indem Sie einen Bericht unter https://developer.apple.com/bug-reporting/ mit einer beliebigen Apple-ID einreichen.
Öffnen Sie die Fenstereinstellungen für Ihr Design, schalten Sie die Hintergrundfarbe um, stellen Sie die Unschärfe auf 0 % und die Deckkraft auf 100 % ein. Danach werden Ihre Farben die gleichen sein, wie Sie wollen. Außerdem sollten Sie jede Farbe, die Sie für Text auswählen, für diese Parameter überprüfen.
kopischke
Chris Page
Chris Page
Jan Warchol
Benutzer2551