Est-il possible de désactiver le réglage automatique des couleurs du terminal dans Lion?

35

Bien que le fait que le terminal prenne désormais en charge la modification des couleurs ANSI soit un avantage, je trouve cela ennuyeux de pouvoir ajuster automatiquement les couleurs pour améliorer le contraste, ce qui signifie que les couleurs que je sélectionne finissent souvent par être estompées ou lavées d'une autre manière. . Voici une capture d'écran expliquant le problème:

capture d'écran des paramètres de couleur OS X Terminal.app

Cela me dérange parce que j'aime utiliser le même jeu de couleurs dans Terminal et MacVim, et avec cette gestion des couleurs par Terminal, elles ne correspondent pas à celles de MacVim.

Est-ce que quelqu'un connaît une solution à ce problème, outre le passage à iTerm 2 (ce que je préférerais ne pas - j'aime le reste de Terminal, en particulier certaines touches de l'interface graphique telles que la cloche visuelle palpitante). Merci!

Johan Sahlén
la source
1
Bonne question - des ajustements semblent également être apportés pour la transparence de la fenêtre, peu importe le rendu des sous-pixels…
dimanche
@kopischke, l'ajustement du contraste minimum ne prend pas en compte l'opacité de la couleur d'arrière-plan, si c'est ce que vous voulez dire.
Chris Page
Cela aiderait si vous posté une capture d'écran montrant les couleurs attendues sur un fond noir. Les chiffres mis à part, je ne vois pas vraiment de différence entre les nuances de couleurs de la fenêtre de préférences et les couleurs de texte du terminal de votre capture d'écran. Il est donc difficile de dire quelle est la différence.
Chris Page
Maintenant, je sais pourquoi je méprise OS X. J'ai perdu plus de six heures à essayer de comprendre pourquoi un jeu de couleurs que j'avais conçu sous Linux avait été endommagé sur le Mac de mon ami. Je n'aurais jamais deviné que c'était la faute du terminal ... Merci d'avoir confirmé mon diagnostic.
Jan Warchoł
Hors sujet, mais iTerm2 vous permet d'avoir une cloche visuelle propulsive. Prefs> Avancé> Cloche visuelle fait clignoter tout l'écran, pas seulement une icône de cloche.
user2551

Réponses:

23

Voici le truc que vous devez savoir: les valeurs définies via RGB sont mutilées, pas celles définies via HSB.

J'avais un problème similaire en utilisant le jeu de couleurs Solarized (génial) : MacVim avait une couleur d'arrière-plan plus sombre (et correcte) que Terminal, même si je définissais toutes les valeurs RVB correctes conformément à la spécification Solarized. Vois ici:

En gros, vous devez savoir quelles sont les valeurs de couleur supposées être pour chacune des couleurs du terminal ANSI, du texte et de l'arrière-plan (notez que celui-ci est sous l'onglet Fenêtre), puis les définir via le sélecteur HSB au lieu de RVB. Voir cet exemple:

Pour une raison quelconque (je soupçonne un type de profil ou un ajustement du contraste que vous suggérez), la couleur RVB que vous entrez n'est pas celle que vous obtenez. Vous remarquerez également qu'une fois que vous avez défini les valeurs via HSB, le passage au sélecteur RVB affiche des options différentes de celles que vous attendez. Les conversions de valeurs Solarized s'accordent toutes selon Photoshop; cela semble être quelque chose que le sélecteur de couleur Apple fait pour vous.

Ryan Dlugosz
la source
9
C'est une réponse incroyablement bonne.
Jason Salaz
On dirait que RVB n'est pas altéré en tant que tel, mais simplement modifié par les paramètres d'opacité des sélecteurs, comme indiqué dans la réponse de @eirnym - la combinaison des deux explique le problème et le résout de deux manières. Génial!
Stuffe
2
Il ne pleuvra pas sur le défilé, mais je ne peux pas confirmer que le problème est résolu - Terminal.app modifie sans cesse les valeurs que j'ai entrées dans l'espace colorimétrique HSB, même lorsque vous définissez l'arrière-plan sur les valeurs correctes (y compris l'opacité 100% et le flou 0%) première. Les valeurs brillantes semblent être moins sujettes à cela, les non brillantes plus encore. Peut-être que le sélecteur de couleur dans Terminal.app est sérieusement bogué, peut-être tente-t-il d’être «intelligent» en ce qui concerne le contraste et la plage de couleurs (je ne mettrais pas Apple au-delà) - qu’il en soit, la solution ci-dessus ne fonctionne pas. système.
Kopischke
… Pour en savoir plus, le problème semble être enraciné dans la mise en correspondance des couleurs Solarized d'un appareil indépendant (espace colorimétrique LAB / HSB) vers un espace colorimétrique dépendant de l' appareil (RVB). Vous pouvez obtenir des résultats cohérents lorsque vous sélectionnez l'espace colorimétrique HSB, comme indiqué ci-dessus, mais uniquement lorsque vous effectuez également un mappage explicite vers le périphérique RVB (dans le menu déroulant situé derrière la petite flèche située dans le petit carré de couleur situé à gauche du menu déroulant de l'espace colorimétrique). Les différences entre les valeurs RVB et les tables de couleurs Solarized s'expliquent par le fait que Solarized est mappé sur sRGB, alors que le sélecteur de couleur mappe toujours implicitement vers le périphérique RVB.
Kopischke
… Ce qui prouve que le sélecteur de couleurs OS X a été conçu pour les personnes qui savent réellement de quoi parle cet espace colorimétrique (c'est-à-dire les concepteurs graphiques), pas nous, les grognements de terminaux :). [ouais, OT, je sais]
dimanche
10

en choisissant "Périphérique RVB" dans la liste déroulante des nuanciers Apple Color Picker

  1. Ouvrez le sélecteur de couleur
  2. Choisissez l'onglet des curseurs
  3. Cliquez sur l'échantillon situé sous la loupe, à gauche du menu déroulant.
  4. Choisir Device RGB

Désormais, les couleurs spécifiées par la valeur hexadécimale ne seront pas soumises à la conversion d'espace colorimétrique.

Dans Sierra, le sélecteur d’espace colorimétrique est devenu l’icône représentant un engrenage: Sélecteur d'espace couleur Sierra

La source

Daniel Holz
la source
2
Cool - merci pour ça! Malgré toutes les prouesses de Apple en matière de conception, il est tout à fait évident que cliquer sur cette option ouvrirait un menu.
Ryan Dlugosz le
Remarque: si cette solution de contournement consistant à utiliser des couleurs avec différents espaces colorimétriques fonctionne, elle repose probablement sur un bogue du code de traitement des couleurs, censé fonctionner avec n'importe quelle couleur et peut cesser de fonctionner à l'avenir lorsque ce bogue sera corrigé.
Chris Page
1
Cette astuce a fonctionné pour moi; l'astuce HSB n'a pas.
Jay
4

Les profils de couleurs sont certes importants, mais un autre problème se cache: Terminal.app illumine automatiquement les couleurs lorsqu'elles sont affichées sur l'arrière-plan par défaut. Voici, par exemple, les couleurs générées par Terminal.app exécutant le thème de couleur Solarized , mesuré avec DigitalColor Meter en mode sRGB et comparé aux valeurs canoniques Solarized sRGB.

Lorsqu'il est présenté sur un fond noir (ou de toute autre couleur), Terminal.app génère approximativement les couleurs correctes. toutefois, sur l'arrière-plan par défaut, toutes les couleurs, à l'exception du texte en gras par défaut et par défaut, sont beaucoup trop claires.

un test de couleur dans Terminal.app.  Les couleurs sont comme prévu lorsqu'elles sont présentées sur des arrière-plans colorés, mais éclaircies lorsqu'elles sont présentées sur l'arrière-plan par défaut.

April Arcus
la source
Abaissé parce que ce n'est pas une réponse. Cela semble être un commentaire sur la question.
Chris Page
2
Comment avez-vous généré cette table de couleurs? Semble super pratique.
Luke Davis
2

Ouvrez les paramètres de fenêtre pour votre thème, modifiez la couleur d'arrière-plan, définissez le flou sur 0% et l'opacité sur 100%. Après cela, vos couleurs seront les mêmes que vous le souhaitez. Aussi, vous devriez vérifier chaque couleur que vous choisissez pour le texte pour ces paramètres.

entrez la description de l'image ici

Eir Nym
la source
Abaissé parce que cela ne s'applique pas à la question, qui concerne le comportement de contraste minimum du terminal et n'est pas affectée par l'opacité de l'arrière-plan.
Chris Page
2

En bref: non, il n'y a pas de moyen supporté pour le désactiver.

Le terminal applique automatiquement un contraste minimum lors de l'affichage d'une couleur ANSI (ou d'un tableau 256 couleurs étendu) sur la couleur d'arrière-plan du terminal, ou lors de l'affichage de la couleur de fond / texte du terminal sur une couleur d'arrière-plan ANSI.

Cela se veut pratique, de sorte que l’on puisse définir une couleur d’arrière-plan ou d’avant-plan et les faire contraster avec les couleurs ANSI sans avoir à ajuster toutes les couleurs ANSI. Cela était particulièrement important dans les versions précédentes de Terminal, pour lesquelles la prise en charge des préférences ne permettait pas de personnaliser les couleurs ANSI.

Les anciennes versions de Terminal appliquaient le contraste minimum pour toutes les combinaisons de couleurs, ce qui signifiait par exemple que le texte ANSI rouge-sur-rouge pouvait être lisible, mais que certains programmes affichaient intentionnellement du texte avec la même couleur d'avant-plan et d'arrière-plan afin de le masquer. (pour afficher des astuces de jeu ou des lignes de frappe, par exemple). De ce fait, les versions les plus récentes de Terminal n’appliquent pas le contraste minimum lors de l’affichage d’une couleur ANSI sur une autre.

Désormais, plutôt que de simplement traiter le cas de la même couleur, Terminal évite d’appliquer le contraste minimum pour toutes les combinaisons de couleurs ANSI, car il est supposé que si l’utilisateur personnalise les couleurs ANSI, il les personnalise pour les contraster comme il convient. . Il est également supposé que ces utilisateurs ajusteront ou prendront en compte les couleurs d'arrière-plan et d'avant-plan du terminal afin de s'adapter au jeu de couleurs souhaité.

Si la solution de contournement consistant à utiliser des couleurs avec des espaces colorimétriques différents — suggérée dans une autre réponse — fonctionne, il est probable que le code de traitement des couleurs soit défectueux, ce qui est supposé fonctionner avec n'importe quelle couleur et peut ne plus fonctionner à l'avenir. quand ce bug est corrigé.

S'il est important pour vous de pouvoir désactiver ou ajuster explicitement le comportement de contraste minimum, nous vous recommandons de le faire savoir à Apple en déposant un rapport à l' adresse https://developer.apple.com/bug-reporting/ à l' aide de n'importe quel identifiant Apple.

Chris Page
la source