如何从另一台机器控制交互式 shell(例如 vim)?

如何从另一台机器控制交互式 shell(例如 vim)?

我的问题是:我的蓝牙键盘无法与我的新 Android 手机(大屏幕)配合使用,但可以与我的旧 Android 手机(小屏幕)配合使用。

因此,我想将键盘连接到我的旧手机,并将其击键流传输到我的新手机;在那里打字,看这里。

我还希望实际的会话和文件位于新手机上 - 但我想这不是必需的。它们可能位于旧手机上,并且只有显示屏被镜像/投射到新手机上。

对我来说:

  1. 如何将输入从一个 shell 传输到另一个 shell

  2. 如何将输入从一台机器传输到另一台机器

我尝试过:tmux通过 wifi 进行屏幕镜像,但延迟太高。

我主要使用 vim,所以使用它也可以。

蓝牙的延迟会比 WiFi 低吗?您可以同时拥有键盘和蓝牙热点吗?不知道如何设置蓝牙连接,我猜测延迟在其他地方,可能在tmux.

看起来,当两台设备并排放置时,获得低延迟应该很容易......

有任何想法吗?

顺便说一句:我已经放弃连接 kb 和新手机了;并且不愿意恢复出厂设置。我可以获得一个新的知识库,但我喜欢这个。

答案1

然后我们ssh共享一个tmux会话,这样我们就可以在旧手机上打字并在新手机上查看。

蓝牙热点的延迟比 WiFi 热点低得多。滞后通常是难以察觉的。

蓝牙键盘将连接到旧手机。

  1. 蓝牙热点在新机器上设置蓝牙热点(Android 5.1 Settings->More->tethering and portable hotspot->bluetooth tethering:);在旧机器上标记“互联网共享”(设置->蓝牙->新手机名称右侧的图标-> use for: internet connection sharing)注意:您实际上并没有在线;它也适用于飞行模式

  2. SSH在新手机上,启动 ssh 守护进程sshd -D -p 8080;在旧手机上,使用 进行连接ssh ssh://192.168.44.1:8080。但如果旧手机是热点,请使用 连接到客户端ssh ssh://192.168.44.40:8080。寻址方式为:

    • ssh://192.168
      • .44蓝牙
        • .40热点
        • .1客户

注意:-D保持sshd在前台,以便您可以使用 退出它^C。否则,您必须使用ps aux |grep sshd和it找到其作业 ID kill 。可能有更好的方法来做到这一点。

  1. tmux 连接在新手机上的新终端中,设置您的tmux 会话(例如tmux)。在旧手机上的 ssh 会话中,使用 附加到 tmux tmux attach。现在两部手机都连接到同一个tmux会话,因此输入任一手机都会出现在两部手机中。

  2. 蓝牙键盘在旧手机上,连接蓝牙键盘。现在我们可以在旧手机的蓝牙键盘上打字,并在新手机上查看。把旧手机收起来,键盘就像连接到新手机上一样。

注意:tmux忽略额外的行和/或列以匹配连接的终端 - 这就是为什么您可能会在右侧/底部看到额外行/列的阴影。不同的显示尺寸、字体大小或方向(纵向/横向)可能会导致这种情况。为了避免这种情况:在旧手机上,减小字体,直到它比新手机有更多的行和列(因此任何额外的内容都在旧手机上)。要在 中执行此操作termux,请使用ctrl alt -或捏合缩放(两根手指向彼此移动): https://termux.com/hardware-keyboard.html


问题:感觉就像您在使用新手机,但实际上仅适用于该tmux会话。例如,旧手机上的其他按键操作: termux字体大小;termux创建/切换会话;安卓HOME键; Android 应用程序切换 ( ctrl-TAB)。一种奇怪的体验是手机在您打字时进入睡眠状态,因为它的输入设备未被使用。

有时似乎还会出现断开连接的问题。我刚刚尝试过,但我希望所有这些问题都是标准问题 tmuxssh蓝牙热点问题。

相关内容