Embora seja ótimo que o Terminal agora tenha suporte interno para alterar as cores ANSI, acho irritante que ele ajuste automaticamente as cores para melhorar o contraste, o que significa que as cores que eu realmente escolho frequentemente acabam desbotadas ou desbotadas de alguma outra maneira . Aqui está uma captura de tela explicando o problema:
Isso me incomoda, porque eu gosto de usar o mesmo esquema de cores no Terminal e no MacVim e, com esse manuseio de cores pelo Terminal, elas não coincidem com as do MacVim.
Alguém sabe de uma solução para isso, além de mudar para o iTerm 2 (o que eu prefiro não - gosto do resto do Terminal, especialmente alguns toques da GUI, como a campainha visual pulsante). Obrigado!
Respostas:
Aqui está o truque que você precisa saber: os valores configurados via RGB são alterados, os configurados via HSB não.
Eu tive um problema semelhante ao usar o (ótimo) esquema de cores Solarized : o MacVim tinha uma cor de fundo mais escura (e correta) do que o Terminal, embora eu estivesse definindo todos os valores RGB corretos de acordo com as especificações Solarized. Veja aqui:
Basicamente, você precisa saber o que seus valores de cor são suposto ser para cada um dos Terminal ANSI, texto e fundo (note que este é na guia Janela) cores e, em seguida, colocá-las através do seletor de HSB em vez de RGB. Veja este exemplo:
Por qualquer motivo (suspeito de algum tipo de perfil, ou talvez um ajuste no contraste, como você sugere), a cor RGB que você digita não é a que você recebe. Você também notará que, depois de definir os valores via HSB, a mudança para o seletor RGB mostrará opções diferentes das esperadas. Todas as conversões de valor Solarized concordam de acordo com o Photoshop; parece ser algo que o seletor de cores da Apple está fazendo por você.
fonte
Device RGB
Agora, as cores especificadas pelo valor hexadecimal não serão sujeitas à conversão do espaço de cores.
No Sierra, o seletor de espaço de cores mudou para o ícone de engrenagem:
Fonte
fonte
Os perfis de cores são definitivamente importantes, mas há outro problema oculto aqui: o Terminal.app ilumina automaticamente qualquer cor quando exibido sobre o fundo padrão. Aqui, por exemplo, estão as cores produzidas pelo Terminal.app executando o tema de cores Solarized , medido com o DigitalColor Meter no modo sRGB e comparado com os valores canônicos de sRGB Solarized.
Quando apresentado sobre um fundo preto (ou qualquer outra cor), o Terminal.app produz aproximadamente as cores corretas; no entanto, no plano de fundo padrão, todas as cores, exceto o padrão e o texto em negrito, são substancialmente brilhantes demais.
fonte
Abra as configurações da janela para o seu tema, alterne a cor do plano de fundo, defina o desfoque para 0% e a opacidade para 100%. Depois disso, suas cores serão as mesmas que você deseja. Além disso, você deve verificar todas as cores escolhidas para o texto para esses parâmetros.
fonte
Em resumo: não, não há meios suportados para desativar isso.
O terminal aplica automaticamente um contraste mínimo ao exibir uma cor ANSI (ou tabela estendida de 256 cores) na cor de fundo do terminal ou ao exibir a cor de primeiro plano / texto do terminal em uma cor de fundo ANSI.
Isso é uma conveniência, para que você possa definir uma cor de plano de fundo ou primeiro plano e contrastá-las com as cores ANSI sem precisar ajustar todas as cores ANSI. Isso foi especialmente importante nas versões anteriores do Terminal, às quais faltava o suporte de Preferências para personalizar as cores ANSI.
As versões mais antigas do Terminal aplicavam o contraste mínimo a todas as combinações de cores, mas isso significava que, por exemplo, o texto vermelho-sobre-vermelho ANSI poderia ser legível, mas alguns programas exibem intencionalmente texto com a mesma cor de primeiro plano e plano de fundo para ocultá-lo. (para exibir dicas de jogos ou piadas, por exemplo). Por esse motivo, as versões mais recentes do Terminal não aplicam o contraste mínimo ao exibir uma cor ANSI sobre outra.
Agora, em vez de abordar apenas o estojo da mesma cor, o Terminal evita aplicar o contraste mínimo para todas as combinações de cores ANSI, porque é assumido que, se o usuário personalizar qualquer cor ANSI, os personalizará para que contrastem uns com os outros, conforme desejado . Supõe-se também que esses usuários ajustem ou levem em consideração as cores de plano de fundo e primeiro plano do terminal para se ajustarem ao esquema de cores desejado.
Se a solução alternativa para o uso de cores com diferentes espaços de cores - sugerida em outras respostas - funcionar, é provável que se dependa de um erro no código de manipulação de cores, que deve funcionar com qualquer cor e pode parar de funcionar no futuro quando esse bug for corrigido.
Se você é capaz de desabilitar ou ajustar explicitamente o comportamento de contraste mínimo é importante para você, recomendo que a Apple saiba preenchendo um relatório em https://developer.apple.com/bug-reporting/ usando qualquer ID da Apple.
fonte