Sample Header Ad - 728x90

TERM=tmux-256color causes "Error opening terminal"

6 votes
1 answer
6420 views
I want to enable *italics* in tmux (inside iTerm2 on macOS Big Sur 11.3). I have achieved this by setting this in .tmux.conf
set -g default-terminal "tmux-256color"
And I have installed ncurses 6.2 using homebrew and set it first in the path. .zshrc:
export PATH="$HOMEBREW_PREFIX/opt/ncurses/bin:$PATH"
After those changes, italics work. However, now several ncurses-dependent programs fail to start: Both ncdu (1.15.1) and nano (2.0.6 ) error out with:
Error opening terminal: tmux-256color.
I get the impression that they don't support this TERM setting. Weirdly, ncdu 1.12 works with tmux-256color on my Raspbian computer. **What's wrong?** Aren't programs like ncdu and nano supposed to be compatible with tmux-256color? I have found a hacky workaround (for macOS, not needed on Raspbian). If I explicitly change back the TERM variable in .zshrc, everything (both italics and programs) works:
if [[ "$TERM" == "tmux-256color" ]]; then
  export TERM=screen-256color
fi
But my understanding is that setting TERM yourself is a big no-no. You are supposed to let the environment set that correctly. And I'm surprised it works at all - is tmux-256color compatible with screen-256color? Will this hack blow up in my face eventually?
Asked by Klas Mellbourn (417 rep)
May 1, 2021, 10:42 PM
Last activity: May 1, 2021, 11:58 PM