Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

send COLORTERM environment variable #496

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

caarlos0
Copy link

@caarlos0 caarlos0 commented May 9, 2024

most terminals that support truecolor set the COLORTERM=truecolor environment variable.

currently, openssh only sends TERM by default. I believe we could send COLORTERM, too, so things running on the target server may properly detect colors.

That said, it has been a long time since I last did any C, and I don't know the codebase, but this is a try... happy to work more on it with some guidance if you think this is a good thing to do.

Cheers!

most terminals that support truecolor set the `COLORTERM=truecolor`
environment variable.

currently, openssh only sends `TERM` by default. I believe we could send
COLORTERM, too, so things running on the target server may properly
detect colors.

That said, it has been a long time since I last did any C, and I don't
know the codebase, but this is a try... happy to work more on it with
some guidance if you think this is a good thing to do.

Cheers!
@djmdjm
Copy link
Contributor

djmdjm commented Jun 14, 2024

This isn't sufficient, as TERM has special handling in the ssh session protocol (see https://datatracker.ietf.org/doc/html/rfc4254#section-6.2) that doesn't exist for COLORTERM.

Fortunately you can get COLORTERM sent without any code changes at all, using the existing environment variable passing support. Just put SendEnv COLORTERM in your ~/.ssh/config and AcceptEnv COLORTERM in your /etc/ssh/sshd_config and it should work.

@caarlos0
Copy link
Author

Hey! Thanks for the response!

Yep, I'm aware of SendEnv...

My idea was to send/accept COLORTERM by default, so the users don't have to, and all the CLIs that use it will get true color support.

Not sure if it makes sense, nor if its something SSH wants as a project, but I thought it would be nice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants