以编程方式更改Gnome终端主题

时间:2009-06-10 09:42:09

标签: linux bash

我想在我的本地计算机(Ubuntu GNOME)上创建一个设置,根据我是登录到本地计算机还是ssh'd到远程计算机,终端窗口具有不同的背景颜色。 / p>

有办法做到这一点吗?

6 个答案:

答案 0 :(得分:8)

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

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

即。像这样的东西:

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

在远程计算机上的.bashrc文件的末尾。 \033[42mANSI Escape Code,可将背景颜色更改为绿色。

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

答案 1 :(得分:3)

您可能想要查看gnome-terminal的选项:

gnome-terminal --help

给出

 --window-with-profile=PROFILENAME

将它包装在shell脚本中:

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

然后做

ssh-term

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

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

答案 2 :(得分: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

您可以在此处找到可通过“首选项”对话框访问的所有设置,以及更多内容。也可以使用--set更改密钥,有关详细信息,请参阅“man gconftool-2”。

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

答案 3 :(得分:3)

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

找到它们

该脚本的工作原理是为所有终端创建临时配置文件,然后更改临时配置文件中设置的值,以便从普通配置文件中复制。

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

存储库中包含一个示例“safe_ssh”脚本来演示其用法。

答案 4 :(得分:1)

在Ubuntu Gnome中,我使用.desktop文件创建具有不同终端颜色的ssh登录。

可以在“配置文件”部分的gnome-terminal上设置终端颜色。我为使用的每种背景色创建了不同的配置文件。

我为每个服务器的ssh登录创建一个.desktop文件快捷方式,并将它们放入〜/ .local / share / applications /中,以便它们显示在Gnome的“应用程序概述”中。

这是一个示例.desktop文件,用于以root用户身份进入localhost。该配置文件称为红色,并使用gnome-terminal的配置文件设置配置为红色背景。

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_GB]=gksu-root-terminal
Name[en_GB]=LOCALHOST Root
Exec=gnome-terminal --window-with-profile Red --command "ssh -XC root@localhost"
Name=LOCALHOST Root
Icon=gksu-root-terminal

这是服务器打开一个选项卡式终端的多个SSH的示例:

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_GB]=gnome-terminal
Name[en_GB]=MYREMOTESERVER Root
Exec=gnome-terminal --command='ssh -XC root@MYREMOTESERVER'  --window-with-profile Blue --tab-with-profile Blue --tab-with-profile Blue --tab-with-profile Blue --tab-with-profile Blue  --hide-menubar 
Name=MYREMOTESERVER Root
Icon=gnome-terminal

服务器为MYREMOTESERVER,使用的配置文件称为Blue。

该技术也可以在KDE桌面上使用。桌面快捷方式最终会在丢失和找到的文件夹中。

答案 5 :(得分:0)

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