siderolabs / talos

Talos Linux is a modern Linux distribution built for Kubernetes.
https://www.talos.dev
Mozilla Public License 2.0
5.72k stars 464 forks source link

`talosctl dashboard` claims "terminal type unsupported" for tmux-256color, et al #8762

Open fahhem opened 1 month ago

fahhem commented 1 month ago

Bug Report

$ talosctl dashboard
terminal type unsupported
$ TERM=tmux talosctl dashboard
terminal type unsupported
$ TERM=xterm-256color talosctl dashboard
[dashboard launches]

Description

It seems terminal detection is very tight, rather than being capability based (terminfo) or by checking terminal families.

I looked only a little bit, and it seems talosctl uses tcell, which does mention tmux support in their latest releases. I'm not sure where the check against $TERM is happening that causes talosctl to support fewer terminal types.

Logs

Environment

goproslowyo commented 1 month ago

I am running into the same issue but with Ghostty. Ghostty prides itself on being a very correct and standards-adherent terminal emulator so I have no reason to believe the dashboard shouldn't work properly.

$ talosctl -e 192.168.2.203 -n 192.168.2.201 dashboard
terminal type unsupported

$ echo $TERM
xterm-ghostty

There are entries for Ghostty in the terminfo database as well:

$ ls -l /usr/share/terminfo/g*
.rw-r--r-- root root 1.1 KB Thu May 16 23:16:17 2024  /usr/share/terminfo/ghostty.termcap
.rw-r--r-- root root 4.3 KB Thu May 16 23:16:17 2024  /usr/share/terminfo/ghostty.terminfo

/usr/share/terminfo/g:
lrwxrwxrwx root root 18 B Thu May 16 23:16:17 2024  ghostty ⇒ ../x/xterm-ghostty

$ ls -l /usr/local/share/terminfo/g*
.rw-r--r-- root root 1.1 KB Sun Apr 14 14:37:30 2024  /usr/local/share/terminfo/ghostty.termcap
.rw-r--r-- root root 4.3 KB Sun Apr 14 14:37:30 2024  /usr/local/share/terminfo/ghostty.terminfo

/usr/local/share/terminfo/g:
lrwxrwxrwx root root 18 B Sun Apr 14 14:37:30 2024  ghostty ⇒ ../x/xterm-ghostty

As an addendum, change the TERM obviously allows talosctl to launch the dashboard but I shouldn't have to do that.

# (works)
$ TERM=xterm talosctl -e 192.168.2.203 -n 192.168.2.201 dashboard