bash 스크립트에서 그놈 터미널 배경 / 텍스트 색상 설정


22

#002b36bash 스크립트를 사용하여 우분투 13에서 그놈 터미널의 배경 ( )과 전경색 을 설정하고 싶습니다 .

시도 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를 사용하고 있습니다.

여기에 이미지 설명을 입력하십시오

답변:


20

방법 # 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.

일반적인 접근

  1. 먼저 gnome-terminal프로필 목록을 얻어야합니다 .

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    <profile id>
    
  2. 이를 사용하여 <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
    
  3. 그런 다음 전경 또는 배경의 현재 색상을 읽을 수 있습니다

    전경

    $ 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)'
    
  4. 당신은 또한 색상을 변경할 수 있습니다

    전경

    $ 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)'"

  1. 내 프로필 ID 받기

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    :b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
    
  2. 프로필 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
    
  3. 배경을 파란색으로 변경

    $ dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/background-color "'rgb(0,0,255)'"

              ss # 1

색상에 대한 참고 사항

rgb(R,G,B)색상을 지정할 때 표기법 이나 해시 표기법을 사용할 수 있습니다 #RRGGBB. 두 표기법 모두에서 인수는 빨강, 초록 및 파랑입니다. 첫 번째 표기법의 값은 R, G 또는 B의 경우 0-255 범위의 정수입니다. 두 번째 표기법의 값은 RR, GG 또는 BB의 경우 00에서 FF까지의 16 진 범위입니다.

이 중 하나를 제공 할 때는 dconf작은 따옴표로 묶고 큰 따옴표로 묶어야합니다. 그렇지 않으면 dconf불평합니다.

  • "'rgb(0,0,0)'"
  • "'#FFFFFF'"
  • 기타

방법 # 2-gconftool-2 사용

Ubuntu 12.04 시스템에서 다음과 같이 명령 줄을 통해 색상을 변경할 수있었습니다.

참고 : 옵션은이 파일에 저장됩니다 $HOME/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml.

일반적인 접근

  1. 먼저 님 gnome-terminal의 프로필을 위한 트리를 가져와야합니다.

    $ gconftool-2 --get /apps/gnome-terminal/global/profile_list
    [Default]
    
  2. 결과 트리를 사용하여 구성 가능한 속성을 찾을 수 있습니다.

    $ 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
    
  3. 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"    
    
  4. 확인

    $ 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
    

참고 문헌


3
이 훌륭한 답변에 감사드립니다. 하지만 내 터미널에는 프로파일을주지 않았다dconf list /org/gnome/terminal/legacy/profiles:/
prayagupd

@PrayagUpd-우분투 12.04 설치를보고 있는데 그놈 터미널이 기본값이 아닌 것 같습니다. 데비안 X 터미널 에뮬레이터는 데프입니다. 유틸리티 탭에서이 명령을 확인할 수 있습니다 exo-preferred-applications. 자세한 내용은 askubuntu.com/questions/356842/…를 참조하십시오 . 이것을 확인할 수 있습니까? 위의 내용은 Fedora 19 GNOME 3.10 설치에서 수행되었습니다.
slm

예, Debian X terminal emulator의 기본이었다 13.04그것을 변화 gnome terminal중 하나가 작동하지 않았다가.
prayagupd

@PrayagUpd-방법 # 2가 효과가 있습니까?
slm

1
우분투 18.04부터 sudo dconf whatever명령을 실행할 때 사용해야 합니다
Scott Stensland

0

다른 스레드의 Github 코드를 기반으로 일부 함수를 만들었습니다. 이러한 기능을 ~/.bashrc파일 에 넣을 수 있습니다 . 보시다시피, 전화하면 create_random_profile:

  1. 이전에 생성 한 임의의 임의 프로파일을 확인하고 삭제합니다.
  2. 그놈 터미널에 임의의 이름 프로필을 만듭니다.
  3. 사전 정의 된 함수에서 색상을 변경하는 데 사용할 수있는 환경 변수에 해당 이름을 설정합니다. 마지막 함수를 참조하십시오 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
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.