如何将 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 标题设置为主机名。
问题是:
- 有没有办法将
uname -n
的输出提供给 :title 命令?
- 有没有其他方法可以在不更改 .bashrc 的情况下将 window 标题设置为当前主机名?
有两种解决方法:
- 打印出 gnu 屏幕可以解析为 window 标题
ESC k my-titile ESC \
的序列。屏幕将提取 my-title
。可以通过以下方式完成:
printf '\ek%s\e\' $(uname -n);
- 运行
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
有一个关于设置 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 标题设置为主机名。
问题是:
- 有没有办法将
uname -n
的输出提供给 :title 命令? - 有没有其他方法可以在不更改 .bashrc 的情况下将 window 标题设置为当前主机名?
有两种解决方法:
- 打印出 gnu 屏幕可以解析为 window 标题
ESC k my-titile ESC \
的序列。屏幕将提取my-title
。可以通过以下方式完成:
printf '\ek%s\e\' $(uname -n);
- 运行
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