如何将 GNU 屏幕中的 window 标题设置为当前机器的主机名?

How to set window title in the GNU screen to a hostname of current machine?

有一个关于设置 window 标题的文档:https://www.gnu.org/software/screen/manual/html_node/Naming-Windows.html

我不想更改所有机器上的 .bashrc 来制作动态屏幕。但是,最好在我的 .screenrc 中设置热键以使用带有适当参数的 :title (C-a A) 命令设置标题。

也许有一个解决方案可以将 uname -n 的输出提供给 :titile 命令。或者类似的自动或 semi-automatically 将 window 标题设置为主机名。

问题是:

有两种解决方法:

  1. 打印出 gnu 屏幕可以解析为 window 标题 ESC k my-titile ESC \ 的序列。屏幕将提取 my-title。可以通过以下方式完成:
printf '\ek%s\e\' $(uname -n);
  1. 运行 screen -X title my-titile 设置当前标题 window.

因为我想对我进入的所有主机执行此操作,所以有一个技巧可以使用上述方法之一将实际的 ssh 命令包装到 ssh() 函数中。

例如:

ssh() { printf '\ek%s\e\' ""; command ssh "$@"; }

感谢 freenode 上的#screen :)

参考:https://www.gnu.org/software/screen/manual/html_node/Dynamic-Titles.html#Dynamic-Titles