#002b36
bash 스크립트를 사용하여 우분투 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
현재 저는 이를 달성하기 위해 우분투 터미널 기본 설정 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를 나타냄). 두 번째 표현에서 값은 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}"
}