私のgnomeターミナルの背景をセットアップしたいと思います(#002b36
)、ubuntu 13の前景色、bashスクリプトを使用。
gconftool
を試しましたが、成功しませんでした。
GCONFTOOL-2(1) User Commands GCONFTOOL-2(1)
NAME
gconftool-2 - GNOME configuration tool
俺の gnome terminal
バージョンは
$ gnome-terminal --version
GNOME Terminal 3.6.1
dconf
ツールを使用してこれを実現できますが、これはマルチステッププロセスです。
_DESCRIPTION
The dconf program can perform various operations on a dconf database,
such as reading or writing individual values or entire directories.
This tool operates directly on the dconf database and does not read
gsettings schema information.Therefore, it cannot perform type and
consistency checks on values. The gsettings(1) utility is an
alternative if such checks are needed.
_
_$ dconf
error: no command specified
Usage:
dconf COMMAND [ARGS...]
Commands:
help Show this information
read Read the value of a key
list List the contents of a dir
write Change the value of a key
reset Reset the value of a key or dir
update Update the system databases
watch Watch a path for changes
dump Dump an entire subpath to stdout
load Populate a subpath from stdin
Use 'dconf help COMMAND' to get detailed help.
_
まず、_gnome-terminal
_プロファイルのリストを取得する必要があります。
_$ dconf list /org/gnome/terminal/legacy/profiles:/
<profile id>
_
この_<profile id>
_を使用すると、構成可能な設定のリストを取得できます
_$ dconf list /org/gnome/terminal/legacy/profiles:/<profile id>
background-color
default-size-columns
use-theme-colors
use-custom-default-size
foreground-color
use-system-font
font
_
次に、前景または背景の現在の色を読み取ることができます
フォアグラウンド
_$ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/foreground-color
'rgb(255,255,255)'
_
背景
_$ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/background-color
'rgb(0,0,0)'
_
色も変更できます
フォアグラウンド
_$ dconf write /org/gnome/terminal/legacy/profiles:/<profile id>/foreground-color "'rgb(255,255,255)'"
_
背景
_$ dconf write /org/gnome/terminal/legacy/profiles:/<profile id>/background-color "'rgb(0,0,0)'"
_
プロフィールIDを取得
_$ dconf list /org/gnome/terminal/legacy/profiles:/
:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
_
プロファイルIDを使用して設定のリストを取得する
_$ dconf list /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
background-color
default-size-columns
use-theme-colors
use-custom-default-size
foreground-color
use-system-font
font
_
背景を青に変更
_$ dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/background-color "'rgb(0,0,255)'"
_
色を指定するときは、表記rgb(R,G,B)
またはハッシュ表記_#RRGGBB
_を使用できます。どちらの表記でも、引数は赤、緑、青です。最初の表記の値は、R、G、またはBの場合は0〜255の範囲の整数です。2番目の表記の場合、値は、RR、GG、またはBBの場合は00〜FFの範囲の16進数です。
これらのいずれかをdconf
に提供するときは、二重引用符で一重引用符を入れ子にして正しく囲む必要があります。そうでなければdconf
は文句を言うでしょう。
"'rgb(0,0,0)'"
"'#FFFFFF'"
_Ubuntu 12.04システムでは、次のようにコマンドラインを使用して色を変更できました。
注:オプションは最終的にこのファイル_$HOME/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
_に格納されます。
まず、_gnome-terminal
_のプロファイルのツリーを取得する必要があります。
_$ gconftool-2 --get /apps/gnome-terminal/global/profile_list
[Default]
_
結果のツリーを使用して、構成可能な属性を見つけることができます。
_$ gconftool-2 -a "/apps/gnome-terminal/profiles/Default" | grep color
bold_color_same_as_fg = true
bold_color = #000000000000
background_color = #FFFFFFFFFFFF
foreground_color = #000000000000
use_theme_colors = false
_
_background_color
_および_foreground_color
_属性を取得/設定します。
_$ gconftool-2 --get "/apps/gnome-terminal/profiles/Default/foreground_color"
#000000000000
$ gconftool-2 --set "/apps/gnome-terminal/profiles/Default/background_color" --type string "#000000FFFFFF"
_
確認
_$ gconftool-2 -R /apps/gnome-terminal/profiles/Default | grep color
bold_color_same_as_fg = true
bold_color = #000000000000
background_color = #000000FFFFFF
foreground_color = #000000000000
use_theme_colors = true
_
他のスレッドのGithubコードに基づいて、いくつかの関数を作成しました。これらの関数を~/.bashrc
ファイル。ご覧のとおり、create_random_profile
:
setcolord
をご覧ください。これは、さまざまな色の端末を多数持つ場合に役立ちます。さらに、事前定義された関数を使用すると、これらの色をその場で変更できます。
function create_random_profile() {
#delete previous profiles in case there were something
#delete_one_random_profile
prof="`mktemp -u HACK_PROFILE_XXXXXXXXXX`"
gconftool-2 --set "/apps/gnome-terminal/profiles/$prof/use_theme_colors" --type bool false
gconftool-2 --type list --list-type string --set $prof_list "`gconftool-2 --get $prof_list | sed "s/]/,$prof]/"`"
file="`mktemp`"
gconftool-2 --dump "/apps/gnome-terminal/profiles/Default" | sed "s,profiles/$2,profiles/$prof,g" > "$file"
gconftool-2 --load "$file"
gconftool-2 --type string --set "/apps/gnome-terminal/profiles/$prof/visible_name" "$prof"
rm -f -- "$file"
export __TERM_PROF=$prof
}
function delete_one_random_profile() {
regular="HACK_PROFILE_"
prof=$(gconftool-2 --get /apps/gnome-terminal/global/profile_list | sed -n "s/.*\(HACK_PROFILE_..........\).*/\1/p")
if [ ! -z "$prof"]; then
echo "size ${#prof}"
echo "size of regular ${#regular}"
echo "DO DELETE of $prof"
#if not empty
gconftool-2 --type list --list-type string --set $prof_list "`gconftool-2 --get $prof_list | sed "s/$prof//;s/\[,/[/;s/,,/,/;s/,]/]/"`"
gconftool-2 --unset "/apps/gnome-terminal/profiles/$prof"
else
echo "NOTHING TO DELETE"
fi
}
function setcolord() {
echo "Dont forget to change to Profile0 in the menu of your terminal->Change Profile->Profile_0"
gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/background_color" --type string white
gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/foreground_color" --type string black
}
function setcolor_cyan() {
echo "Dont forget to change to $__TERM_PROF in the menu of your terminal->Change Profile->Profile_0"
gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/background_color" --type string "#8DCBCC"
gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/foreground_color" --type string black
}