On Thu, Dec 25, 2025 at 08:58:50AM +0100, [email protected] wrote:
> From: Jochen Sprickerhof <[email protected]>
>
> st supports this already, only the terminfo was missing. Test with:
>
> echo -e "\x1b[4:1mThis\x1b[4:2m is\x1b[4:3m a\x1b[4:4m test\x1b[4:5m
> for\x1b[4:0m underlines"
>
> Needed for underline spelling errors in neovim inside tmux since
>
> https://github.com/tmux/tmux/commit/7499d925da697498b7ee69b0effaa8b5176a50bf
> ---
> st.info | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/st.info b/st.info
> index efab2cf..4e27f7a 100644
> --- a/st.info
> +++ b/st.info
> @@ -177,6 +177,7 @@ st-mono| simpleterm monocolor,
> smkx=\E[?1h\E=,
> smso=\E[7m,
> smul=\E[4m,
> + Smulx=\E[4:%p1%dm,
> tbc=\E[3g,
> tsl=\E]0;,
> xenl,
> --
> 2.51.0
>
>
Hi,
I'm not sure, because st does not support all the options (double underscore,
curly underscore, etc).
It is only a tmux terminfo extension?
In the tmux man page section TERMINFO EXTENSIONS:
Smulx Set a styled underscore. The single parameter is one of:
0 for no underscore, 1 for normal underscore, 2 for double
underscore, 3 for curly underscore, 4 for dotted
underscore and 5 for dashed underscore.
https://man7.org/linux/man-pages/man1/tmux.1.html#TERMINFO_EXTENSIONS
It seems in tmux you can override it also with the "terminal-overrides"
configuration option?
https://man.openbsd.org/tmux#terminal-overrides__
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'
It is not something I use, so I don't know all the details.
--
Kind regards,
Hiltjo