Kitty终端下的Tmux

Kitty终端下的Tmux

我最近发现了整洁猫咪因为我在 ZSH 下使用的主题的某些方面在 Xfce 终端下渲染得不太好,但在 kitty 下却可以。

不幸的是,当涉及到在 SSH 连接上使用 tmux 时,如果从我的桌面/服务器(运行根图)到我的任何 Raspberry Pi(正在运行Arch Linux ARM)或我的 VPS(也运行 Arch Linux)并启动 Tmux 会话我被告知......

open terminal failed: missing or unsuitable terminal: xterm-kitty

然而,我有一台也运行 Arch 的笔记本电脑,如果我从桌面/服务器 SSH 到它并启动 SSH 会话,就没有问题,反之亦然,从笔记本电脑到桌面/服务器的 SSH 和 Tmux 运行良好。

我应该补充一点,当通过 SSH 连接到运行 Arch Linux 的 Raspberry Pi/VPS(如果位于 Xfce 终端下)时,我可以运行 Tmux 会话。

关于如何调查或解决这个问题,以便 Tmux 会话在任何地方都可以工作,有什么想法吗?

答案1

如果您在登录时收到诸如“终端未知、缺少或不适合终端”之类的错误消息,则表示服务器无法识别您的终端。

正确的解决办法是把客户端的terminfo文件安装到服务器上。这告诉服务器上的控制台程序如何正确地与您的终端交互。您可以使用有关当前 terminfo 的信息infocmp,然后找出哪个包拥有它。

如果无法正常安装,可以将terminfo复制到服务器的主目录中:

$ ssh myserver mkdir -p  ~/.terminfo/${TERM:0:1}
$ scp /usr/share/terminfo/${TERM:0:1}/$TERM myserver:~/.terminfo/${TERM:0:1}/

从服务器登录和退出后,问题应该得到解决。

答案2

@user88036 接受的答案是一个很好的解释和一个很好的通用解决方案。我最近在 Kitty 文档中发现他们有一个很好的实用程序,使用他们的 CLI 工具。来自文档

发生这种情况是因为 kitty terminfo 文件在服务器上不可用。您可以使用以下命令通过 ssh 登录,该命令会自动将 terminfo 文件复制到服务器:

kitty +kitten ssh myserver

https://sw.kovidgoyal.net/kitty/faq.html#i-get-errors-about-the-terminal-being-unknown-or-opening-the-terminal-failing-when-sshing-into-a-不同计算机

答案3

如果您连接到的计算机无法安装 terminfo 文件,则可以将TERM环境变量设置为该计算机支持的内容 — 与 kitty 非常兼容的配置文件(按优先顺序降序排列),包括

  • xterm-256color
  • xterm 颜色
  • xterm
  • VT102

如果您希望远程计算机上的登录 shell(例如 bash)选择正确的终端,则应该将其导出到环境中运行 ssh。如果你不关心,因为你只想运行 tmux,你可以在之后设置它。当然,您将失去 kitty 的一些很酷的功能,但是在您无法安装 terminfo 并拥有基本的功能优先,还是可以用的。

相关内容