đặt màu nền / màu văn bản của thiết bị đầu cuối gnome từ tập lệnh bash


22

Tôi muốn thiết lập #002b36màu nền ( ) và màu nền trước của gnome terminal trong ubfox 13, sử dụng tập lệnh bash.

Tôi đã thử gconftoolnhưng không thể thành công.

GCONFTOOL-2(1)                  User Commands                                                    GCONFTOOL-2(1)

NAME
       gconftool-2 - GNOME configuration tool

gnome terminalPhiên bản của tôi là

$ gnome-terminal --version
GNOME Terminal 3.6.1

nhập mô tả hình ảnh ở đây

Hiện tại tôi đang sử dụng giao diện người dùng tùy chọn thiết bị đầu cuối Ubuntu để đạt được điều này.

nhập mô tả hình ảnh ở đây

Câu trả lời:


20

Phương pháp # 1 - Sử dụng dconf

Lý lịch

Bạn có thể sử dụng dconfcông cụ để thực hiện việc này, tuy nhiên đó là một quá trình gồm nhiều bước.

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.

Sử dụng

$ 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.

Cách tiếp cận chung

  1. Trước tiên, bạn sẽ cần có được một danh sách các gnome-terminalhồ sơ của bạn .

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    <profile id>
  2. Sử dụng điều này <profile id>sau đó bạn có thể nhận được một danh sách các cài đặt cấu hình

    $ 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. Sau đó, bạn có thể đọc các màu hiện tại của nền trước hoặc nền sau

    vấn đề xung quanh

    $ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/foreground-color
    'rgb(255,255,255)'

    lý lịch

    $ dconf read /org/gnome/terminal/legacy/profiles:/<profile id>/background-color
    'rgb(0,0,0)'
  4. Bạn cũng có thể thay đổi màu sắc

    vấn đề xung quanh

    $ dconf write /org/gnome/terminal/legacy/profiles:/<profile id>/foreground-color "'rgb(255,255,255)'"

    lý lịch

    $ dconf write /org/gnome/terminal/legacy/profiles:/<profile id>/background-color "'rgb(0,0,0)'"

Thí dụ

  1. Nhận ID hồ sơ của tôi

    $ dconf list /org/gnome/terminal/legacy/profiles:/
    :b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
  2. Sử dụng ID hồ sơ để nhận danh sách cài đặt

    $ 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. Thay đổi màu xanh nền của bạn

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

              ss # 1

Lưu ý về màu sắc

Bạn có thể sử dụng ký hiệu rgb(R,G,B)khi chỉ định màu sắc hoặc ký hiệu băm #RRGGBB. Trong cả hai ký hiệu, các đối số là đỏ, lục và lam. Các giá trị trong ký hiệu đầu tiên là các số nguyên nằm trong khoảng từ 0-255 cho R, G hoặc B. Trong ký hiệu thứ hai, các giá trị nằm trong thập lục phân từ 00 đến FF cho RR, GG hoặc BB.

Khi cung cấp một trong hai thứ này cho dconfbạn, bạn cần phải bọc nó đúng cách trong dấu ngoặc kép với dấu ngoặc đơn được lồng bên trong. Nếu không dconfsẽ phàn nàn.

  • "'rgb(0,0,0)'"
  • "'#FFFFFF'"
  • v.v.

Phương pháp # 2 - Sử dụng gconftool-2

Trên hệ thống Ubuntu 12.04 của tôi, tôi có thể thay đổi màu sắc thông qua dòng lệnh như sau.

LƯU Ý: Các tùy chọn cuối cùng được lưu trữ trong tệp này , $HOME/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml.

Cách tiếp cận chung

  1. Trước tiên, bạn sẽ cần lấy cây cho gnome-terminalhồ sơ của.

    $ gconftool-2 --get /apps/gnome-terminal/global/profile_list
    [Default]
  2. Sử dụng cây kết quả, chúng ta có thể tìm ra những thuộc tính nào có thể cấu hình được.

    $ 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. Nhận / Đặt thuộc tính 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. Xác nhận

    $ 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

Tài liệu tham khảo


3
Vô số lời cảm ơn cho câu trả lời tuyệt vời này. Nhưng thiết bị đầu cuối của tôi không có hồ sơ nào trêndconf list /org/gnome/terminal/legacy/profiles:/
nguyện

@PrayagUpd - Tôi đang xem bản cài đặt Ubuntu 12.04 và có vẻ như gnome-terminal không phải là mặc định. Trình giả lập thiết bị đầu cuối Debian X là def. Bạn có thể kiểm tra w / lệnh này trong tab Tiện ích , exo-preferred-applications. Thông tin chi tiết có tại đây: Askubfox.com/questions3536842 / trên . Bạn có thể xác nhận điều này? Những điều trên đã được thực hiện trên bản cài đặt Fedora 19 Gnome 3.10.
slm

Có, Debian X terminal emulatorlà mặc định 13.04, thay đổi nó thành gnome terminalkhông hoạt động.
nguyện

@PrayagUpd - phương pháp # 2 có hiệu quả với bạn không?
slm

1
kể từ Ubuntu 18.04 bây giờ bạn phải sử dụng sudo dconf whateverkhi ban hành lệnh
Scott Stensland

0

Tôi đã tạo ra một số chức năng, dựa trên mã Github từ các luồng khác. Bạn có thể đặt các chức năng này trong ~/.bashrctập tin của bạn . Như bạn có thể thấy, nếu bạn gọi create_random_profile:

  1. Nó sẽ kiểm tra và xóa bất kỳ hồ sơ ngẫu nhiên trước đó bạn đã tạo.
  2. Nó sẽ tạo ra một hồ sơ tên ngẫu nhiên trong các thiết bị đầu cuối gnome.
  3. Nó sẽ đặt tên đó trong một biến môi trường mà bạn có thể sử dụng để thay đổi màu của mình trong các hàm được xác định trước. Xem chức năng cuối cùng , setcolord.

Điều này sẽ hữu ích, để có nhiều thiết bị đầu cuối với màu sắc khác nhau. Bên cạnh đó, với các chức năng được xác định trước, bạn có thể thay đổi các màu này một cách nhanh chóng.

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
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.