webssh文档找了一圈没找到相关内容,github上也找了。 网上也找了,都没有相关解决办法。说明是个相对冷门的问题,于是我打算写一下我解决的过程。如果对你有帮助,请点赞支持一下。
现象
这个tmux配置是我从 https://github.com/gpakosz/.tmux 下载的,很好用。
最近在使用Webssh 这个软件ssh连接发现问题了。其他的ssh软件是正常的。
使用webssh连接时,按下ctrl+ b 后必须快速按下其他键,不然就失效了。
举例:
- 其他shell 中 ctrl + b 等个5秒以上按下t 也会显示时间。
- 在webssh中ctrl + b 等待超过1秒,后按下t就没有反应了,如果快速的按下t就有反应,但是显示时间后一瞬间就关了。 就像按下ctrl+b 后1秒后会自动按下其他按键的感觉。
- 但是同样使用webssh连接,当tmux使用缺省配置,也就是没有任何tmux的配置文件的情况下,这个BUG又不存在了。
请分析一下当前tmux配置中有没有哪些配置可能会导致这样的情况的。
解决办法
先说解决办法,探索过程放下面。
先临时测试:
bash
tmux set-option -s focus-events off
修改该选项后,需要关闭 WebSSH 连接并重新连接、重新 attach tmux。
我这里实测问题就解决了。
永久修复:在实际生效的 ~/.tmux.conf.local 用户自定义区域加入:
bash
set -s focus-events off #!important
然后执行:
bash
tmux source-file ~/.tmux.conf
注意:关闭后,Vim/Neovim 等程序将无法接收终端焦点切换通知,但一般不影响正常使用。
以下是探索过程,有兴趣的可以了解一下。
探索tmux小问题解决办法
- 首先可以通过代码段解决,但是这种方式需要适应.
- 实测在macOS上的版本也存在这样的问题。
- tmux 3.4, tmux 3.6a 都有这样的问题。
- 如果我去掉tmux的配置文件还会有这样的问题吗?
实测:只有tmux,不加任何配置文件,就正常了。这也就是为什么没有人提过这样的问题。
原因
我的tmux配置文件可能与这个webssh不兼容。但是其他的shell是正常的啊。
实测与 https://github.com/gpakosz/.tmux
的配置不兼容。
最终我让AI帮我分析配置文件,最终找到问题所在。