我正在运行带有 Gnome shell 的 Ubuntu 20.04。
我经常需要通过笔记本电脑上的 SSH 访问多台服务器。有时我会打开多个 SSH 会话来访问不同的服务器,因此很有可能我会在其中一个服务器上输入内容,以为它是本地终端窗口,而实际上我正在向服务器发送命令。这当然是灾难性的。我定义了几个窗口配置文件,它们会根据我登录的服务器更改文本和背景颜色。这可以很好地将我的注意力吸引到我当前正在与之通信的特定计算机上。问题是,我必须记住在登录服务器时设置适当的配置文件,并在注销时再次设置。我确信有一种方法可以自动完成此操作,方法是设置环境变量或其他东西,但我想不出需要什么。我知道我可以更改提示文本和颜色,但我想让整个窗口颜色根据我登录的服务器(或不登录的服务器)而改变。
有什么想法吗?
答案1
虽然不可能自动改变轮廓GNOME 终端选项卡的是可以改变其颜色,覆盖配置文件中定义的颜色。
您需要使用 OSC 4(调色板)、10(前景)和 11(背景)或 104、110、111(重置)转义序列。示例:
更改第一个调色板颜色(通常默认为黑色):
printf '\e]4;0;#112233\e\\'
更改默认背景颜色:
printf '\e]11;#abcdef\e\\'
重置默认背景颜色(即恢复为配置文件设置中指定的值):
printf '\e]111\e\\'
该xtermcontrol
工具是这些转义代码(及更多内容)的便捷前端。
答案2
据我所知,不可能根据某些触发器自动更改当前打开的终端的配置文件。
另一种方法是,您可以为不同的服务器创建不同的启动器,这些启动器会自动打开具有特定配置文件的终端并执行 ssh 命令。启动器会向您提供一个终端,随时准备接受您用于该 ssh 会话的凭据(当然,您甚至可以设置自动登录)。
可以通过创建现有.desktop
Gnome Terminal 启动器的副本来实现,即/usr/share/applications/org.gnome.Terminal.desktop
更改Name=
和Exec=
行。后者应修改为:
Exec=gnome-terminal --profile <name-of-profile> -- ssh [email protected]
此类启动器将打开一个带有自定义配置文件的新终端,并自动运行ssh
。当您退出 ssh shell 时,终端将关闭。