Chociaż to wspaniałe, że Terminal ma teraz wbudowaną obsługę zmiany kolorów ANSI, denerwuje mnie to, że automatycznie dostosowuje kolory w celu poprawy kontrastu, co oznacza, że kolory, które faktycznie wybieram, często zostają wyprane lub usunięte w inny sposób . Oto zrzut ekranu wyjaśniający problem:
To mnie wkurza, ponieważ lubię używać tego samego schematu kolorów w Terminalu i MacVimie, a dzięki obsłudze kolorów przez Terminal nie pasują one do kolorów w MacVimie.
Czy ktoś wie o rozwiązaniu tego problemu, oprócz przejścia na iTerm 2 (czego wolałbym nie - lubię resztę terminala, zwłaszcza niektóre elementy interfejsu GUI, takie jak pulsujący dzwonek wizualny). Dzięki!
Odpowiedzi:
Oto sztuczka, którą musisz znać: wartości ustawione przez RGB ulegają zniekształceniu, wartości ustawione przez HSB nie.
Miałem podobny problem przy użyciu (świetnego) schematu kolorów Solarized : MacVim miał ciemniejszy (i poprawny) kolor tła niż Terminal, mimo że ustawiałem wszystkie prawidłowe wartości RGB zgodnie ze specyfikacją Solarized. Spójrz tutaj:
Zasadniczo musisz wiedzieć, jakie powinny być twoje wartości kolorów dla każdego z kolorów Terminal ANSI, tekstu i Tła (zauważ, że ten jest na karcie Okno), a następnie ustaw je za pomocą selektora HSB zamiast RGB. Zobacz ten przykład:
Z jakiegokolwiek powodu (podejrzewam, że coś jest profilem, a może poprawienie kontrastu, jak sugerujesz), wprowadzony kolor RGB nie jest tym, co dostajesz. Zauważysz również, że po ustawieniu wartości za pomocą HSB przełączenie na próbnik RGB pokaże opcje inne niż można się spodziewać. Wszystkie konwersje wartości Solarized zgadzają się zgodnie z programem Photoshop; wygląda na to, że robi to dla ciebie próbnik kolorów Apple.
źródło
Device RGB
Teraz kolory określone wartością heksadecymalną nie będą poddawane konwersji przestrzeni kolorów.
W Sierra selektor przestrzeni kolorów zmienił się na ikonę koła zębatego:
Źródło
źródło
Profile kolorów są zdecydowanie ważne, ale czai się tutaj inny problem: Terminal.app automatycznie rozjaśnia dowolny kolor, gdy jest wyświetlany na domyślnym tle. Oto, na przykład, kolory wyprowadzane przez Terminal.app z uruchomionym motywem kolorów Solarized , zmierzone za pomocą miernika DigitalColor Meter w trybie sRGB i porównane z kanonicznymi wartościami SolarR sized RGB.
Terminal.app wyświetlany na czarnym (lub dowolnym innym kolorze) tle daje w przybliżeniu prawidłowe kolory; jednak na domyślnym tle wszystkie kolory oprócz domyślnego i domyślnego pogrubionego tekstu są znacznie zbyt jasne.
źródło
Otwórz ustawienia okna dla swojego motywu, przełącz kolor tła, ustaw rozmycie na 0% i Krycie na 100%. Po tym twoje kolory będą takie same, jak chcesz. Ponadto należy sprawdzić każdy wybrany kolor tekstu dla tych parametrów.
źródło
W skrócie: nie, nie ma obsługiwanych środków, aby to wyłączyć.
Terminal automatycznie stosuje minimalny kontrast podczas wyświetlania koloru ANSI (lub rozszerzonej tabeli 256 kolorów) na kolorze tła terminala lub podczas wyświetlania koloru pierwszego planu / tekstu terminala na kolorze tła ANSI.
Ma to być wygoda, dzięki czemu można ustawić kolor tła lub pierwszego planu i ustawić je w kontraście z kolorami ANSI bez konieczności dostosowywania wszystkich kolorów ANSI. Było to szczególnie ważne we wcześniejszych wersjach terminalu, w których brakowało obsługi preferencji w zakresie dostosowywania kolorów ANSI.
Starsze wersje terminala stosowały minimalny kontrast dla wszystkich kombinacji kolorów, ale oznaczało to, że np. Tekst czerwono-czerwony ANSI może być czytelny, ale niektóre programy celowo wyświetlają tekst o tym samym kolorze pierwszego planu i tła, aby go ukryć (na przykład do wyświetlania wskazówek do gry lub żartów). Z tego powodu nowsze wersje terminala nie stosują minimalnego kontrastu podczas wyświetlania jednego koloru ANSI na drugim.
Teraz zamiast zajmować się przypadkiem tego samego koloru, Terminal unika stosowania minimalnego kontrastu dla wszystkich kombinacji kolorów ANSI, ponieważ zakłada się, że jeśli użytkownik dostosuje dowolne kolory ANSI, dostosuje je wszystkie, aby kontrastować ze sobą zgodnie z potrzebami . Zakłada się również, że ci użytkownicy dostosują lub uwzględnią kolory tła terminala i pierwszego planu, aby dopasować je do pożądanego schematu kolorów.
Jeśli obejście polegające na używaniu kolorów z różnymi przestrzeniami kolorów - sugerowane w innych odpowiedziach - działa, prawdopodobnie opiera się na błędzie w kodzie obsługi kolorów, który powinien działać z dowolnym kolorem i może przestać działać w przyszłości kiedy ten błąd zostanie naprawiony.
Jeśli ważna jest możliwość jednoznacznego wyłączenia lub dostosowania zachowania minimalnego kontrastu, zalecamy powiadomienie Apple, przesyłając raport na stronie https://developer.apple.com/bug-reporting/ przy użyciu dowolnego identyfikatora Apple ID.
źródło