Closed cheilman closed 5 months ago
Forgot to add. I'm on MacOS Sonoma 14.4.1, ssh'd into the linux machine. Terminal is iTerm2 3.5.0. I looked at the setting for "Ambiguous characters are double-width" and it is disabled like I saw recommended in other issues.
Interestingly, the same config running on the same macbook, same iterm2, but running locally instead of ssh'd into a linux machine works fine.
$ zsh --version && bash --version && tmux -V
zsh 5.9 (arm-apple-darwin22.5.0)
GNU bash, version 3.2.57(1)-release (arm64-apple-darwin23)
Copyright (C) 2007 Free Software Foundation, Inc.
tmux 3.4
Interesting. So just to be sure i got it correctly, you're using ssh from your MacOS Sonoma 14.4.1
to connect to a CentOS 9
system. On the CentOS 9
system you have zsh 5.9
, bash 5.1.8
and tmux 3.4
?
Some first ideas and things to try to narrow down the issue:
Regarding tmux 3.4
, as far as i can see, there's only 3.2a available through the normal upstream (including epel), did you try with 3.2a
as well?
If you disable your tmux.conf
(just move it to tmux.conf.bak
for the moment) and run tmux, do the status line updates for the default status line show the same behaviour?
When starting tmux, do you have the "extra" line at the bottom right from the beginning, or does it appear with the first update?
Just in case, can you try a different terminal when you do the ssh
to the CentOS 9
system as well?
Correct, trying with a newly opened iTerm2.
$ zsh --version && bash --version && tmux -V
zsh 5.9 (x86_64-redhat-linux-gnu)
GNU bash, version 5.1.8(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
tmux 3.4
tmux='LC_CTYPE=POSIX tmux -ul2'
), but removing that and calling /usr/bin/tmux
directly has the same behavior.Going back to the terminal.app question, I got the fonts working and it's still good, so probably a setting within iTerm2 somewhere -- but that's related to the centos host?
I'm setting terminal within my tmux.conf (set -g default-terminal "tmux-256color"
) but commenting that line doesn't change things, it still happens in iTerm2.
Here's a pretty minimal tmux.conf that still reproduces the issue:
❯ cat .tmux.conf ─╯
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: .tmux.conf
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ #
2 │ # TMux Config File
3 │ #
4 │
5 │ # Update the prefix to be like (my) screen
6 │ set -g prefix C-w
7 │ unbind C-b
8 │ bind C-w send-prefix
9 _ │
10 │ # Status line settings
11 │ set -g status on
12 _ │ set -g status-interval 1
13 │
14 │ # Tmux Plugins
15 │ set -g @plugin 'tmux-plugins/tpm'
16 │ set -g @plugin 'erikw/tmux-powerline'
17 _ │
18 │ # Initialize TPM (must stay at bottom)
19 │ run-shell -b "$HOME/.tmux/plugins/tpm/tpm"
20 │
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
That was an aggressive update interval, but bumping it to 10s didn't change anything.
Locale in environment is:
LC_ALL=en_US.utf8
LC_CTYPE=en_US.utf8
Going back to the terminal.app question, I got the fonts working and it's still good, so probably a setting within iTerm2 somewhere -- but that's related to the centos host?
Did you try a different profile (new one with defaults) in iTerm2?
I have no idea why, but a clean profile worked. I even dumped the two profiles to json and diffed them and there are no significant differences...
❯ diff Downloads/clean-sorted.json Downloads/default-sorted.json
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
renamed: Downloads/clean-sorted.json to Downloads/default-sorted.json
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@ default-sorted.json:99 @
"Red Component": 1,
"Blue Component": 1
},
"Bound Hosts": [],
"Character Encoding": 4,
"Close Sessions On End": true,
"Columns": 80,
@ default-sorted.json:126 @
"Red Component": 0.7333333492279053,
"Blue Component": 0.7333333492279053
},
"Guid": "3E2914B0-25C9-4282-8D79-8C814ED8E42A","39730D5E-561C-48EA-8597-5C3CBE741EF5",
"Horizontal Spacing": 1,
"Idle Code": 0,
"Jobs to Ignore": [
@ default-sorted.json:298 @
}
},
"Mouse Reporting": true,
"Name": "Clean","Default",
"Non Ascii Font": "Monaco 12",
"Non-ASCII Anti Aliased": true,
"Normal Font": "MesloLGS-NF-Regular 12",
@ default-sorted.json:324 @
"editor": "com.github.atom"
},
"Send Code When Idle": false,
"Shortcut": "","T",
"Show Status Bar": false,
"Silence Bell": false,
"Status Bar Layout": {
That fixed my issue through ssh, thanks for the debugging help!
I also tried using mosh
for connecting, and that's still broken, but I can work with just ssh
for now. I suspect mosh is introducting some kind of terminfo issue but I haven't spent time debugging. Good enough for now :). Thank you again!
Running tmux with tmux-powerline via tpm, on CentOS9. Shell is zsh 5.9, bash is 5.1.8, tmux is 3.4. Tried both with my config and default (no config.sh file). When the status line initially renders it all looks good, but then immediately updates write their characters on the line below the status bar. For things like load and time, when the number updates the update happens on the next line after the status bar. See screenshots.