È possibile disabilitare l'ottimizzazione automatica dei colori di Terminal in Lion?


35

Sebbene sia fantastico che Terminal abbia ora il supporto integrato per cambiare i colori ANSI, trovo fastidioso che regola automaticamente i colori per migliorare il contrasto, il che significa che i colori che scelgo spesso finiscono per sbiaditi o spenti in qualche altro modo . Ecco uno screenshot che spiega il problema:

screenshot delle impostazioni di colore di OS X Terminal.app

Questo mi dà fastidio perché mi piace usare la stessa combinazione di colori in Terminal e MacVim, e con questa gestione dei colori da parte di Terminal, non corrispondono a quelli in MacVim.

Qualcuno sa di una soluzione a questo, oltre a passare a iTerm 2 (cosa che preferirei non mi piace - mi piace il resto del Terminale, in particolare alcuni tocchi della GUI come la campana visiva pulsante). Grazie!


1
Buona domanda: sembra anche che siano state apportate modifiche per la trasparenza delle finestre, non importa il rendering dei sub pixel ...
kopischke,

@kopischke, la regolazione del contrasto minimo non tiene conto dell'opacità del colore di sfondo, se è questo che intendi.
Chris Page

Sarebbe utile se hai pubblicato uno screenshot che mostra i colori previsti su uno sfondo nero. A parte i numeri, non riesco davvero a vedere una differenza tra i campioni di colore nella finestra delle preferenze e i colori del testo nel terminale dello screenshot, quindi è difficile dire quanto sia significativa la differenza.
Chris Page

Ora so perché disprezzo OS X. Ho perso più di 6 ore nel tentativo di scoprire perché una combinazione di colori che ho progettato su Linux è stata alterata sul Mac del mio amico - sospettavo problemi con la conversione dello spazio colore (sRGB vs Apple RGB), ma Non avrei mai immaginato che fosse colpa del terminale ... Grazie per aver confermato la mia diagnosi.
Jan Warchoł,

Fuori tema, ma iTerm2 ti consente di avere una campana visiva puslating. Prefs> Avanzate> Visual bell lampeggia tutto lo schermo, non solo un'icona a campana.
user2551

Risposte:


23

Ecco il trucco che devi conoscere: i valori impostati tramite RGB vengono alterati, quelli impostati tramite HSB no.

Ho avuto un problema simile usando la (fantastica) combinazione di colori Solarized : MacVim aveva un colore di sfondo più scuro (e corretto) rispetto a Terminal, anche se stavo impostando tutti i valori RGB corretti per le specifiche Solarized. Vedere qui:

Fondamentalmente devi sapere quali dovrebbero essere i tuoi valori di colore per ciascuno dei colori Terminal ANSI, testo e Sfondo (nota che questo è nella scheda Finestra) e quindi impostali tramite il selettore HSB anziché RGB. Vedi questo esempio:

Per qualsiasi motivo (sospetto un qualche tipo di cosa del profilo, o forse una modifica del contrasto come suggerisci), il colore RGB che inserisci non è quello che ottieni. Noterai anche che una volta impostati i valori tramite HSB, il passaggio al selettore RGB mostrerà opzioni diverse da quelle che ti aspetteresti. Le conversioni di valore solarizzate sono tutte d'accordo secondo Photoshop; sembra essere qualcosa che il selettore di colori Apple sta facendo per te.


9
Questa è una risposta incredibilmente buona.
Jason Salaz,

Sembra che RGB non sia alterato come tale, appena modificato dalle impostazioni di opacità dei selettori secondo la risposta di @eirnym - la combinazione dei 2 non solo lo spiega, ma lo risolve in 2 modi. Grande!
stuffe,

2
Non piovere sulla parata, ma non posso confermare che questo risolva il problema - Terminal.app continua a modificare i valori immessi nello spazio colore HSB, anche quando si imposta lo sfondo sui valori corretti (compresa l'opacità 100% e sfocatura 0%) primo. I valori luminosi sembrano essere meno inclini a questo, i non luminosi più. Forse il selettore di colori in Terminal.app è seriamente difettoso, forse cerca di essere "intelligente" in termini di contrasto e gamma di colori (non metterei né Apple passato) - sia come sia, la soluzione sopra non funziona sul mio sistema.
kopischke,

… Indagando ancora un po ', il problema sembra essere radicato nella mappatura dei colori solarizzati dallo spazio indipendente dal dispositivo (spazio colore LAB / HSB) allo spazio colore dipendente dal dispositivo (RGB). È possibile ottenere risultati coerenti quando si seleziona lo spazio colore HSB, come mostrato sopra, ma solo quando si esegue espressamente la mappatura sul dispositivo RGB (nel menu a discesa dietro la piccola freccia sul quadratino di colore a sinistra del menu a discesa dello spazio colore). Le differenze tra i valori RGB e le tabelle dei colori Solarized sono spiegate dal fatto che Solarized esegue la mappatura su sRGB, mentre il selettore di colori esegue sempre la mappatura implicita sul dispositivo RGB.
kopischke

... il che dice che il selettore di colori di OS X è stato progettato per le persone che sanno davvero di cosa tratta questa roba dello spazio colore (cioè i grafici), non noi grugniti di Terminale :). [sì, OT, lo so]
kopischke

10

scegliendo "Device RGB" dal menu a discesa del campione Apple Color Picker

  1. Apri il selettore colore
  2. Scegli la scheda dei cursori
  3. Fai clic sul campione sotto la lente di ingrandimento, a sinistra del menu a discesa del cursore
  4. Scegliere Device RGB

Ora i colori specificati dal valore esadecimale non saranno soggetti alla conversione dello spazio colore.

In Sierra, il selettore dello spazio colore è stato cambiato nell'icona a forma di ingranaggio: Selettore dello spazio colore Sierra

fonte


2
Fantastico - grazie per questo! Per tutte le abilità progettuali di Apple, è del tutto ovvio che fare clic su di esso rivelerebbe un menu.
Ryan Dlugosz,

Nota: se questa soluzione alternativa all'utilizzo di colori con spazi colore diversi funziona, è probabile che si basi su un bug nel codice di gestione del colore, che dovrebbe funzionare con qualsiasi colore e che potrebbe smettere di funzionare in futuro quando il bug verrà risolto.
Chris Page

1
Questo trucco ha funzionato per me; il trucco dell'HSB no.
Jay,

4

I profili colore sono sicuramente importanti, ma c'è un altro problema in agguato qui: Terminal.app illumina automaticamente qualsiasi colore quando viene visualizzato sullo sfondo predefinito. Ecco, ad esempio, i colori emessi da Terminal.app che esegue il tema colori Solarized , misurato con DigitalColor Meter in modalità sRGB e confrontato con i valori canonici di Solarized sRGB.

Se presentato su uno sfondo nero (o di qualsiasi altro colore), Terminal.app produce approssimativamente i colori corretti; tuttavia, sullo sfondo predefinito, tutti i colori tranne il testo in grassetto predefinito e predefinito sono sostanzialmente troppo chiari.

un test di colore in Terminal.app.  I colori sono come previsti quando presentati su sfondi colorati, ma illuminati quando presentati su sfondo predefinito.


Sotto votato perché questa non è una risposta. Sembra essere un commento sulla domanda.
Chris Page

2
Come hai generato quella tabella dei colori? Sembra super utile.
Luke Davis,

2

Apri le impostazioni della finestra per il tuo tema, attiva il colore di sfondo, imposta sfocatura su 0% e Opacità su 100%. Dopo questo i tuoi colori saranno gli stessi che desideri. Inoltre, dovresti controllare ogni colore che scegli per il testo per questi parametri.

inserisci qui la descrizione dell'immagine


Sottovalutato perché questo non si applica alla domanda, che riguarda il comportamento di contrasto minimo di Terminal e non è influenzato dall'opacità di sfondo.
Chris Page

2

In breve: no, non ci sono mezzi supportati per disabilitarlo.

Il terminale applica automaticamente un contrasto minimo quando si visualizza un colore ANSI (o tabella estesa a 256 colori) sul colore di sfondo del terminale o quando si visualizza il colore di primo piano / testo del terminale su un colore di sfondo ANSI.

Questo è pensato per essere una comodità, in modo che uno possa impostare uno sfondo o un colore di primo piano e farli contrastare con i colori ANSI senza dover regolare tutti i colori ANSI. Ciò era particolarmente importante nelle versioni precedenti di Terminal, che mancava del supporto Preferenze per la personalizzazione dei colori ANSI.

Le versioni precedenti di Terminal applicavano il contrasto minimo per tutte le combinazioni di colori, ma ciò significava che, ad esempio, il testo rosso su rosso ANSI poteva essere leggibile, ma alcuni programmi visualizzano intenzionalmente testo con lo stesso colore di primo piano e di sfondo per nasconderlo (ad esempio per visualizzare suggerimenti di gioco o battute di battute). Per questo motivo, le versioni più recenti di Terminale non applicano il contrasto minimo quando si visualizza un colore ANSI su un altro.

Ora, anziché occuparsi solo della custodia dello stesso colore, Terminal evita di applicare il contrasto minimo per tutte le combinazioni di colori ANSI, poiché si presume che se l'utente personalizza i colori ANSI, li personalizzerà tutti in modo da contrastarli tra loro come desiderato . Si presume inoltre che tali utenti adeguino o terranno conto dello sfondo del terminale e dei colori di primo piano per adattarli alla combinazione di colori desiderata.

Se la soluzione alternativa all'utilizzo di colori con spazi colore diversi, suggerita in altre risposte, funziona, è probabile che si basi su un bug nel codice di gestione del colore, che dovrebbe funzionare con qualsiasi colore e potrebbe smettere di funzionare in futuro quando quel bug è stato corretto.

Se per te è importante disabilitare o regolare esplicitamente il comportamento di contrasto minimo, ti consiglio di informare Apple inviando una segnalazione all'indirizzo https://developer.apple.com/bug-reporting/ utilizzando un ID Apple.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.