如果客户端的屏幕尺寸太小,有没有办法拒绝客户端连接到tmux?

时间:2019-03-13 19:24:01

标签: tmux

我知道我们可以使用前缀+ shift + d断开客户端的连接,但是如果有人使用不同或较小的屏幕尺寸进行连接,这确实很烦人。如果某个程序取决于tmux屏幕大小,它也可能会使该程序崩溃。

请让我知道是否存在可以用来防止屏幕较小的人首先连接的配置。另外,连接后,如果连接的计算机调整其终端的大小,如何防止tmux调整屏幕大小。我找不到任何允许您使用固定大小的tmux配置。

1 个答案:

答案 0 :(得分:1)

TL; DR:否。

如果您的程序取决于终端大小,则可能做错了。终端的全部意义是任何人都可以运行任何程序。如果您需要最小的窗口大小,则应该考虑使用GUI。

Tmux具有setw force-width <value>setw force-height <value>,但是它们只能在允许的范围内更改窗口高度,该范围由所连接的最小会话大小决定。如果该值大于可使用的值,则在考虑到所有连接的会话限制的情况下,它将尺寸设置为最大尺寸。

Tmux具有resize-pane -x <value> -y <value>,但是它们不能超过窗口的大小,并且如果下面没有其他窗格可以显示,则它们不会截断。如果该值大于可使用的值,则会将窗格尺寸设置为可能的最大值。

Tmux具有setw -g aggressive-resize on,可以与tmux new-session -t <base session> -s <new session>结合使用,因此,如果一个会话存在多个连接 ,并且它们正在该会话中查看不同的窗口,则连接只会在他们正在查看的窗口上强制调整大小,而不是在该会话中的所有窗口上强制调整大小。

另一个人看到您的tmux会话的唯一方法是,如果他们以同一用户身份登录(除非您已积极进行配置以更改此设置)。如果其他人使用您的用户名登录,则您再次做错了。 Tmux旨在显式允许到会话的一堆连接; tmux的全部目的是允许用户从多台计算机连接到会话,即使其他连接仍在进行或尚未超时。

可以编写一个cron脚本,该脚本使用您在问题中引用的tmux's detach-client option断开某些客户端的连接,但这不会阻止窗口大小至少暂时改变。 / p>