Skip to content

命令行

命令行视窗的意义,顾名思义就是执行命令。这里才算是真正意义上的 SSH 客户端——它接受来自主视窗的指令,管理其中所有的服务器标签页。

也正是因为如此,我不想在其中加入太多复杂的内容,例如将标签页拖放到页面边缘自动增加行列,或是非等尺寸的窗口管理之类的[1]。它的布局和内容完全交由主视窗与它的通信来管理,它的状态也会通过相同的机制回送给主视窗(在群控页面中)。

我对矩阵的数量做了硬编码的限制,为 6 × 6 ,一方面是因为我用 4K 显示器看这么密集的排布也已经感觉快放不下了,另一方面我感觉也实在看不过来更多的内容了。

为了体验的一致性,减少可能出现的疑惑,我特别对拖放的热区做了处理:仅当页面中包含多于一个格(行列不全为1)的时候,才会激活主体的热区,也就是允许把标签页放到大区域里,而不是必须去对准标签页所在的那一行(它其实还挺难对准的,尤其是不包含任何标签的时候,它会缩成一条线)。

除此以外,它就是一个简单常规的拖放管理式客户端,就像其他实现方案那样。

交互部分使用了大名鼎鼎的 xterm.js ,事实证明也确实非常好用(除了 bug[2]),节省了非常多开发所需的工夫。


  1. 其实是懒得考虑实现, grid 用起来最方便 ↩︎

  2. 请参见已知问题 ↩︎