Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

tmux: pane dividing line display difference between terminals

Tags:

terminal

tmux

I'm switching terminal applications, from OSX's Terminal.app to the Google Chrome Secure Shell app, and the way dividing lines between panes in a window in tmux changes from one terminal to the other.

In Terminal.app the dividing line is just that, a line:

In Secure Shell, the dividing line is rendered as a line of qs:

I can think of three possible cases:

  1. This is a setting I can fix from within my shell.
  2. This is a setting I can fix from Secure Shell's preferences.
  3. This is a setting not yet supported by Secure Shell's preferences.

But I'm not sure which it is. I'd be happy to hack it in if it's case #3, but I'm not sure what's responsible for displaying a line vs qs, so I can't get a foothold in to start googling and learning what needs to be done.

like image 699
rampion Avatar asked May 09 '12 23:05

rampion


1 Answers

Your terminal emulator (Google Chrome Secure Shell) does not support the alternate character set (ASC) capability that is advertised by the terminfo database entry specified by the TERM environment variable in effect when you connected to (or started) your tmux session.

The Chromium project has an issue concerning character set support in the terminal emulator that the Chrome app uses.


Per the VT100 User Guide, Table 3-9: Special Graphics Characters, when the “special graphics set” is selected, q is used to draw “Horizontal line - Scan 5”.

Under terminfo, the VT100 special graphics characters are available as a part of the Alternate Character Set (ACS) functionality; see the “Line Graphics” section of the terminfo(5) man page.


If you are using tmux 1.4 or later, and Google Chrome Secure Shell supports UTF-8, then you should be able to get UTF-8 line drawing characters by giving -u to your tmux clients (or by having UTF-8 present in LC_ALL, LC_CTYPE or LANG when you run a tmux client).

Alternatively, you could configure tmux to unset the ACS-related terminfo capabilities (in your ~/.tmux.conf):

# Google Chrome Secure Shell does not (yet) support ACS; do not use it (for now).
set-option -ga terminal-overrides ',*:enacs@:smacs@:rmacs@:acsc@'

tmux will fall back to ASCII line drawing (e.g. -, |, and +) if the attached client does not support UTF-8, and its TERM’s terminfo database entry (as adjusted by terminal-overrides) does not advertise ACS capabilities.

Note: You will basically need to restart your tmux server (exit out of all the sessions) before the configuration change will take effect.

like image 127
Chris Johnsen Avatar answered Sep 17 '22 16:09

Chris Johnsen