aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/os/pty_process_unix.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/nvim/os/pty_process_unix.c b/src/nvim/os/pty_process_unix.c
index f0bc13783c..4d7d9a45df 100644
--- a/src/nvim/os/pty_process_unix.c
+++ b/src/nvim/os/pty_process_unix.c
@@ -160,8 +160,21 @@ static void init_child(PtyProcess *ptyproc)
os_unsetenv("COLUMNS");
os_unsetenv("LINES");
os_unsetenv("TERMCAP");
- os_unsetenv("COLORTERM");
os_unsetenv("COLORFGBG");
+ // setting COLORTERM to "truecolor" if termguicolors is set and 256
+ // otherwise, but only if it was set in the parent terminal at all
+ if (os_env_exists("COLORTERM")) {
+ const char *colorterm = os_getenv("COLORTERM");
+ if (colorterm != NULL) {
+ if (p_tgc) {
+ os_setenv("COLORTERM", "truecolor", 1);
+ } else {
+ os_setenv("COLORTERM", "256", 1);
+ }
+ } else {
+ os_unsetenv("COLORTERM");
+ }
+ }
signal(SIGCHLD, SIG_DFL);
signal(SIGHUP, SIG_DFL);