#002b36
bashスクリプトを使用してUbuntu 13でgnome端末の背景()と前景色を設定したいと思います。
私は試しましたが、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
現在、私はこれを達成するためにUbuntu Terminal Preferences UIを使用しています。
答え1
方法 #1 - dconf を使う
背景
この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
。両方のシンボルでは、パラメータは赤、緑、青です。最初の表記の値は0から255の範囲の整数です(R、G、またはBを表します)。 2番目の表現では、値は16進数で、範囲は00からFF(RR、GG、またはBBを表します)です。
これらのいずれかを指定するときは、二重引用dconf
符で適切に囲む必要があり、その中に一重引用符を入れ子にする必要があります。それ以外の場合、dconf
苦情が提起されます。
"'rgb(0,0,0)'"
"'#FFFFFF'"
- など。
方法#2 - gconftool-2を使用する
私の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
引用する
答え2
他のスレッドのGithubコードに基づいていくつかの機能を作成しました。これらの機能をファイルに入れることができます~/.bashrc
。ご覧のとおり、電話をすると次のようになりますcreate_random_profile
。
- 以前に作成した任意のプロファイルを確認して削除します。
- gnome 端末にランダムに名前が付けられた設定ファイルが生成されます。
- 事前定義された関数で色を変更するために使用できる環境変数にその名前を設定します。最後の機能を参照してください
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
}
答え3
Goghテーマセレクタには、Gnome端末設定にテーマを追加するためのいくつかのスクリプトがあります。最も簡単なのは見ることです。他の質問に対する私の答えゴッホを活用してください。
しかし、元のスクリプトを見たい場合はおおよそです。
色に使用されるデフォルトの bash 変数を表示できます。https://github.com/Gogh-Co/Gogh/blob/master/themes/solarized-light.sh:
export COLOR_01="#073642" # HOST
export COLOR_02="#DC322F" # SYNTAX_STRING
export COLOR_03="#859900" # COMMAND
export COLOR_04="#B58900" # COMMAND_COLOR2
export COLOR_05="#268BD2" # PATH
export COLOR_06="#D33682" # SYNTAX_VAR
export COLOR_07="#2AA198" # PROMP
export COLOR_08="#EEE8D5" #
export COLOR_09="#002B36" #
export COLOR_10="#CB4B16" # COMMAND_ERROR
export COLOR_11="#586E75" # EXEC
export COLOR_12="#657B83" #
export COLOR_13="#839496" # FOLDER
export COLOR_14="#6C71C4" #
export COLOR_15="#93A1A1" #
export COLOR_16="#FDF6E3" #
export BACKGROUND_COLOR="#FDF6E3" # Background Color
export FOREGROUND_COLOR="#657B83" # Text
BOLD_COLOR="#586E75" # Bold
export CURSOR_COLOR="$FOREGROUND_COLOR" # Cursor
export PROFILE_NAME="Solarized Light"
次に、このパラメータを使用してください。https://github.com/Gogh-Co/Gogh/blob/master/apply-colors.sh。そうだその中核:
set_theme() {
dset visible-name "'${PROFILE_NAME}'"
dset background-color "'${BACKGROUND_COLOR}'"
dset foreground-color "'${FOREGROUND_COLOR}'"
dset cursor-colors-set "true"
dset cursor-background-color "'${CURSOR_COLOR}'"
dset cursor-foreground-color "'${BACKGROUND_COLOR}'"
if [[ -n "${HIGHLIGHT_BG_COLOR:-}" ]]; then
dset highlight-colors-set "true"
dset highlight-background-color "'${HIGHLIGHT_BG_COLOR}'"
if [[ -n "${HIGHLIGHT_FG_COLOR:-}" ]]; then
dset highlight-foreground-color "'${HIGHLIGHT_FG_COLOR}'"
fi
fi
if [[ -n "${BOLD_COLOR:-}" ]]; then
dset bold-color "'${BOLD_COLOR}'"
dset bold-color-same-as-fg "false"
else
dset bold-color "'${FOREGROUND_COLOR}'"
dset bold-color-same-as-fg "true"
fi
dset use-theme-colors "false"
dset use-theme-background "false"
dset use-theme-transparency "${USE_SYS_TRANSPARENCY:-false}"
}