Terminal.app true/24-bit color: how to log feature request?

Apologies if I overlooked it, but is there any way to register a vote or feature request that Terminal.app support 24-bit color? There are some other terminal emulators out there (iTerm being the main I've found) that do so, but they are otherwise not as well-built and useful as Terminal.app. But it would for sure be nice to get more colors out of Terminal.app.

MacBook Pro 15”, macOS 10.14

Posted on Jul 2, 2019 10:08 AM

Reply
17 replies

Jul 2, 2019 5:29 PM in response to jgoldbg

No one from Apple is going to say anything in this forum. It is a user-to-user technical support forum, with the key word being 'user'.


FYI: iTerm2 has 24 bit color

256 Colors (or more!)
With 256-color mode, Vim explodes with photorealism: the terminal is a
medley of color and code comes alive. In version 3, 24-bit color is
supported.



https://gist.github.com/XVilka/8346728

says Terminal.app does not support 24 bit colors.


The script that generated the above iTerm2 output generated the following in Terminal


So either Terminal is not supporting the same escape sequences, or it is having difficulties displaying 24 bit colors.

Jul 2, 2019 11:36 AM in response to Kurt Lang

Kurt Lang -- That allows me to choose which color to assign to a subset of the 256 ANSI colors which will be rendered within the terminal, but it doesn't mean that the terminal itself will properly render arbitrary 24-bit colors. A reasonably authoritative discussion can be found at https://gist.github.com/XVilka/8346728 .


BDAqua -- Thanks. I'll at least throw my 2c in there.

Jul 2, 2019 1:39 PM in response to Kurt Lang

I'm not sure how that addresses the concerns I'm raising, and which are documented in the discussion to which I linked. Specifically, what do you get when you follow the instructions from the link I posted and run the following command in your terminal?


printf "\x1b[38;2;255;100;0mTRUECOLOR\x1b[0m\n"


Do you see "TRUECOLOR" printed in red? If so then that's amazing since it means you've found a way to enable true color escape sequence handling in your version of Terminal.app, and so I'd like to know more about how you did it. If on the other hand you just get plain, uncolored (or worse, garbled) text, then I think you may be misunderstanding the request here.

Jul 2, 2019 1:52 PM in response to jgoldbg

Until now, I couldn't see how your question had anything to do causing the text in a command to print a particular color.


But it would for sure be nice to get more colors out of Terminal.app. … and … but it doesn't mean that the terminal itself will properly render arbitrary 24-bit colors.


Those earlier statements only told me you wanted to user 24 bit color in Terminal's interface.


I did kind of gloss over the link. Running the command does what you likely expect. I get the word TRUECOLOR in black rather than red.


No offense meant, but I guess I don't see why this is important.

Jul 2, 2019 2:41 PM in response to Kurt Lang

No offense taken! Indeed, it isn't important in any objective sense, and I'm willing to continue living without it rather than accepting some other more serious drawbacks of things like iTerm. But many of the newer themes for apps like Vim, which are designed by people with substantial UX experience and which would ultimately be softer on my eyes and more pleasant over the course of a long day of work, require true color support.

Jul 2, 2019 3:01 PM in response to jgoldbg

Ah, then that comes back (I think) to my original reply. If you're just trying to get away from the default black on white display, you can use one of the presets in Terminal's preferences. Or, as I did above, create a new color scheme (the one named Test) to be whatever you prefer. Red text on a dark gray background. Blue on orange. Etc.

Jul 2, 2019 3:11 PM in response to Kurt Lang

Thanks. That doesn't address the problem. The colorschemes that take advantage of true color often make use of more than just 256 colors (remember there are 24 million choices available to these schemes' authors). Among the maintenance drawbacks of the approach you suggest, it also would be theoretically impossible for any scheme utilizing more than 256 colors, since that would mean some colors must go unmapped.


I appreciate your attempts to help, but I'm going to let the conversation rest here. If someone from Apple decides to weigh in and clarify that's fine, but I believe there are simply no true options, barring changes to Terminal.app's handling of color sequences, to get me what I'd like.

Jul 3, 2019 8:06 AM in response to BobHarris

I thought that output looked familiar. 🤓


I actually use tput sequences to assign colors to my Terminal prompts, and the Terminal preferences to govern the background and cursor color.


TPUT="/usr/bin/tput"
Bluebld="$(${TPUT} bold; ${TPUT} setaf 63)"
White="$(${TPUT} bold; ${TPUT} setaf 15)"
Green="$(${TPUT} bold; ${TPUT} setaf 42)"
Normal="$(${TPUT} sgr0)"
MyHost="$(networksetup -getcomputername)"

export PS1='\[$Bluebld\]$MyHost: \w\$ \[$White\]'


Jul 3, 2019 12:50 PM in response to BobHarris

Lest it be here for posterity unamended, I should say that I regret saying that iTerm is not "well-built". For sure it is, and George Nachman's work on it is very impressive. What I should have said is that it lacks key features that I require for my work:


https://gitlab.com/gnachman/iterm2/issues/1611

https://gitlab.com/gnachman/iterm2/issues/4213


So, hopefully one day either the Apple Terminal team will add 24-bit color, or the iTerm team will address the issues above. But in any event, I do applaud George and others' work.


Jul 3, 2019 5:24 PM in response to VikingOSX

Re: VikingOSX


Here is one of my less complex command prompts:



But my initial coloring started out coding the actual escape sequences. This is long before I learned about tput.

PS1="\D{%d%a@%R}[\[\e[44;36;1m\]Bob\[\e[44;31;1m\]Touch\[\e[44;32;1m\]Pro\[\e[0m\]]\[\e[34;1m\]$(__cwd 3)\[\e[0m\]> "


$(__cwd 3) is a shell function that returns the last 3 directories in a very long path, and will substitute ~ for my home directory.


And to make it interesting, my .bashrc has about 15 of these PS1 assignments, each customized for different remote systems I use, so the colors are unique depending on which system I'm ssh'ed into (the .bashrc is replicated to all nodes, and in some cases my /home is a NIS/LDAP NFS mounted /home).


This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Terminal.app true/24-bit color: how to log feature request?

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.