zsh: fix changing cursor shape in tmux + iTerm2
Most terminals use the VT520 DECSCUSR escape sequences for setting the cursor shape, documented at: https://invisible-island.net/xterm/ctlseqs/ctlseqs.txt iTerm2, however, uses a set of proprietary escape codes, documented at: https://iterm2.com/documentation-escape-codes.html The issue I had was that tmux recognizes the VT520 DECSCUSR codes and knows how to translate them itself to iTerm2. But tmux does not accept the iTerm2 codes as input, so deciding to use these proprietary codes only based on the presence of `$ITERM_SESSION_ID` did not work when running tmux. The solution is to revert to the VT520 codes when running inside of tmux (even inside iTerm2) and let it translate to iTerm2.
This commit is contained in:
parent
3b21a2b900
commit
fb1b6a3bda
1 changed files with 1 additions and 1 deletions
|
@ -6,7 +6,7 @@ set_cursor_shape() {
|
||||||
local block='\e[1 q' # blinking block
|
local block='\e[1 q' # blinking block
|
||||||
local underline='\e[3 q' # blinking underline, 4 for steady
|
local underline='\e[3 q' # blinking underline, 4 for steady
|
||||||
local bar='\e[5 q' # blinkind bar, 6 for steady
|
local bar='\e[5 q' # blinkind bar, 6 for steady
|
||||||
if [[ -n $ITERM_SESSION_ID ]] {
|
if [[ -n "$ITERM_SESSION_ID" && -z "$TMUX" ]] {
|
||||||
block='\e]1337;CursorShape=0\a'
|
block='\e]1337;CursorShape=0\a'
|
||||||
bar='\e]1337;CursorShape=1\a'
|
bar='\e]1337;CursorShape=1\a'
|
||||||
underline='\e]1337;CursorShape=2\a'
|
underline='\e]1337;CursorShape=2\a'
|
||||||
|
|
Loading…
Add table
Reference in a new issue