ตั้งค่าพื้นหลังเทอร์มินัล gnome / สีข้อความจากสคริปต์ทุบตี


22

ฉันต้องการตั้งค่าพื้นหลังของเทอร์มินอล gnome ( #002b36) และสีพื้นหน้าใน ubuntu 13 โดยใช้ bash script

ฉันพยายาม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. รับรหัสโปรไฟล์ของฉัน

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

              เอสเอส # 1

หมายเหตุเกี่ยวกับสี

คุณสามารถใช้สัญกรณ์เมื่อระบุสีหรือสัญกรณ์กัญชาของคุณrgb(R,G,B) #RRGGBBในสัญลักษณ์ทั้งสองอาร์กิวเมนต์มีสีแดงสีเขียวและสีน้ำเงิน ค่าในสัญกรณ์แรกเป็นจำนวนเต็มตั้งแต่ 0-255 สำหรับ R, G หรือ B ในสัญกรณ์ที่สองค่าอยู่ในรูปเลขฐานสิบหกตั้งแต่ 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ตัวเลือกจะถูกเก็บไว้ในท้ายที่สุดในแฟ้มนี้

วิธีการทั่วไป

  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 - ฉันกำลังดูการติดตั้ง Ubuntu 12.04 และดูเหมือนว่า gnome-terminal ไม่ใช่ค่าเริ่มต้น เทอร์มินัลจำลอง Debian X คือ def คุณสามารถตรวจสอบ w / 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
ตั้งแต่ Ubuntu 18.04 ตอนนี้คุณต้องใช้sudo dconf whateverเมื่อออกคำสั่ง
Scott Stensland

0

ฉันได้สร้างฟังก์ชั่นบางอย่างโดยใช้โค้ด Github จากเธรดอื่น คุณสามารถใส่ฟังก์ชั่นเหล่านี้ใน~/.bashrcไฟล์ของคุณ อย่างที่คุณเห็นถ้าคุณโทรcreate_random_profile:

  1. มันจะตรวจสอบและลบโปรไฟล์สุ่มก่อนหน้านี้ที่คุณสร้างขึ้น
  2. มันจะสร้างโปรไฟล์ชื่อแบบสุ่มในเทอร์มินัล GNOME
  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.