39

I'm using Mac OS X Lion, Terminal.app and Tmux version 1.6. I get a dashed line as a window border instead of a continuous line that I get when I ssh into a Debian virtual machine on the same computer using the same terminal. How can I change the dashed line to a continuous line?

Jason Coffin
  • 391
  • 1
  • 4
  • 4
  • 1
    I have the same problem with iTerm2 and tmux 1.6. In Terminal.app however the pane separator is solid and not dashed. Did you find a solution? – Julian Maicher Mar 27 '12 at 13:29
  • I found some more info, but still no solution. I think the problem is actually a "feature" as described in the change log for Tmux 1.4: "Use UTF-8 line drawing characters on UTF-8 terminals, thus fixing some terminals (eg putty) which disable the vt100 ACS mode switching sequences in UTF-8 mode. On terminals without ACS, use ASCII equivalents." Also see http://stackoverflow.com/questions/8483798/tmux-borders-displayed-as-x-q-instead-of-lines – Jason Coffin Mar 29 '12 at 12:51

4 Answers4

38

I found the origin of the problem. It's the font. I was using Monaco and it displays vertical dashes in a way that the vertical pane separator is dashed. With Menlo however it's solid.

Julian Maicher
  • 1,793
  • 14
  • 13
  • Good find. Too bad that anti-aliasing can't be disabled for Menlo: http://stackoverflow.com/a/10072765/705157. However, using xterm font `6x13.dfont` from http://stackoverflow.com/a/2764467/705157 seems to be a decent non-aliased substitute for Monaco. – Steve HHH Nov 26 '12 at 23:58
23

I had a similar problem using iTerm on mac to log into a redhat. Suddenly the vertical lines did not show and the horizontal ones were dashed.

I fixed the problem by unchecking "Treat ambiguous-width characters as double width" in iTerm->Preferences->Profiles->Text

hejsan
  • 371
  • 2
  • 7
  • This fixed things for me, and also fixed the problem where horizontal box edges in ncurses applications would be drawn double-width, messing up the whole layout. Switching to Menlo from Monaco also helped. – Ryan C. Thompson Jun 09 '13 at 22:34
  • WHOA! Been like 4 months and I couldn't fix this issue until I saw your answer – dlock Feb 24 '16 at 01:13
  • This fixed a problem I was having with getting tmuxline to display properly. – stevvooe Mar 08 '16 at 21:13
18

Actually, some fonts you like only contain a small number of glyphs to display usual characters, but failed to include glyphs for other unicode characters, for example U+2502, which is used by tmux as the vertical split line. So the system usually defaults to a fallback font, however, unfortunately, that fallback font does not provide the glyphs that are appropriate for drawing a continuous line.

One possible solution is to use terminals that supports selecting a fallback font, such as iTerm2, then you choose Menlo as you mentioned as the non-ascii font and use the original font as the same time.

The other solution requires a little more work, use fontforge or other font editors to patch the missing glyphs using those from a correctly displayed font like Menlo. Here is a link to what I have done, patching Inconsolata for Powerline using glyphs from Menlo: https://github.com/Determinant/inconsolata_for_powerline_mod

Determinant
  • 3,886
  • 7
  • 31
  • 47
  • You're a saint. Thank you for doing that! – Cameron Hurd Aug 11 '15 at 15:11
  • I have a monaco font patched for powerline. I downloaded it a while ago and due to licensing issue, there is no free copy of it. I want to patch U+2502 into this font, I can do it myself or I have another font, a regular Inconsolata font which have nice view of this glyph. Can you explain how I can patch this symbol from inconsolata to monaco? – 3N4N Mar 01 '19 at 09:13
  • @klaus I used fontforge to do the patching, give it a try. – Determinant May 21 '19 at 19:34
6

late to the party but might be useful:

  • pick a different font for non-ASCII characters
  • reduce vertical spacing until vertical separators join into single line
keymone
  • 8,006
  • 1
  • 28
  • 33