2009-06-10 97 views
18

我想在本地机器(Ubuntu GNOME)上创建一个安装程序,终端窗口具有不同的背景颜色,具体取决于我是登录到本地计算机还是ssh进入远程机器。以编程方式更改Gnome终端主题

有没有办法做到这一点?

+0

我也欢迎任何关于如何更好地组织我的Gnome终端的终端窗口和标签的任何建议。很好的问题。 – Andrioid 2009-06-10 11:05:43

+0

使用更好的窗口管理器。平铺一个也许。 – 2009-06-10 11:08:33

回答

8

这不符合你的要求,但它可能做你想要的。

您可以根据您是否使用ssh来修改您的.bashrc(或等效的shell init文件)以设置提示。

即放像:

if [ -n $SSH_TTY ]; then 
    export PS1=`echo -en '\033[42m\w\$ '`; 
fi; 

在远程机器上的.bashrc文件的末尾。 \033[42m是一个ANSI Escape Code,将背景颜色更改为绿色。

这样,当您登录到远程计算机时,终端的背景颜色将变为绿色(或品红色,或青色或其他)只有

3

你可能想签出选项的GNOME终端:

gnome-terminal --help 

--window-with-profile=PROFILENAME 

包装这在shell脚本:

#!/bin/bash 
gnome-terminal --window-with-profile=PROFILENAME 

然后做

ssh-term 

如果您想要更改,请查看期限和其他条款。还可以看看Devilspie,它可以根据窗口标题(删除窗口装饰等)进行更多动态更改。

http://burtonini.com/blog/computers/devilspie

+0

这需要您打开一个新窗口,其具体目的是将其用于SSH,并在SSH连接关闭后立即关闭该窗口 - 否则会导致误导,并且会导致无关紧要。这不完全是一个优雅的解 – Thriveth 2013-06-11 10:10:41

3

你可能想看看GConf。它基本上是为Gnome注册表的Windows。大多数Gnome应用程序使用它来存储他们的设置。您可以浏览用它的工具,如GConf-Editor,或使用gconftool-2命令行:

$ gconftool-2 --all-entries /apps/gnome-terminal/profiles/Default 
background_color = #000000000000 
palette = #2E2E34343636:#CCCC00000000 [ snipped ] 
... many more lines 

你会发现这里是通过Preferences对话框访问的所有设置,再加上更多一些。键也可以使用--set进行更改,详情请参阅“man gconftool-2”。

还有许多编程语言的GConf库绑定。

+0

几乎我所需要的,但它会更改“全局”注册表....不是仅当前选项卡。我可以为不同的机器设置主题,但我需要通过命令切换这个主题 – pufferfish 2011-07-29 11:37:18

0
export PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME}: ${PWD}\007"' 
1

我有一些脚本,实现这一目的的GNOME终端。您可以在https://github.com/xyrix/gnome-terminal-profile-switcher

中找到它们。该脚本通过为所有终端创建一个临时配置文件,然后更改要从正常配置文件复制的临时配置文件中设置的值来工作。

这允许您从脚本更改当前gnome终端的配置文件。

存储库中包含一个示例“safe_ssh”脚本以演示使用情况。

相关问题