I use the kitty terminal emulator for my day to day development, and I learned that it has these custom escape sequences for fancy underlines. I really wanted to get them working in vim, and after some vimrc tweaks, they started showing up. However, whenever I'm in a tmux session, the codes suddenly stop working. I've read a bit into this and it looks like tmux is 'swallowing' the escape codes, and someone suggested surrounding the sequences like so: "\ePtmux;\e<foo>\e\\, but no luck: no underline/undercurl was showing.

This could be something impossible to do, but I have no idea where to start looking if it isn't, so any help would be appreciated!

My .tmux.conf

set -g default-terminal "xterm-kitty"
set -sg escape-time 0
  • I suggest that you file a bug / enhancement request against tmux so that their maintainers can address this properly.
    – egmont
    Jun 21, 2018 at 8:38
  • I just got something similar to work based on github.com/tmux/tmux/wiki/… and I found that I had to double up the trailing backslashes. E.g., my bash PS1 contains this sequence to set terminal title: \[\e]0;\u@\h: \w\a\], which works outside tmux, but inside I had to use \ePtmux;\[\e\[\e]0;\u@\h: \w\a\]\e\\\\ . It took some experimentation to get the right sequence. Aug 18 at 19:52

1 Answer 1


tmux is a terminal emulator. The control sequences that kitty understands are irrelevant to applications that are talking to a tmux terminal. tmux does not understand them. Your applications running under tmux have no direct connection to a kitty-emulated terminal.

For such a thing to work, the terminal emulator part of tmux has to understand these control sequences coming to it from applications, the internals of tmux have to understand the concept of different sorts of underlines, and the part of tmux that realizes its display onto another terminal needs to understand both the requisite control sequences and what terminal types support them. That latter in particular also requires extending the terminfo database with more capability definitions.

None of this has been done. Or even suggested.

If you want this, write the code and submit patches to tmux, terminfo, and other related projects that will need updating; or employ someone else to do so.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .