bash स्क्रिप्ट से गनोम टर्मिनल बैकग्राउंड / टेक्स्ट कलर सेट करें


22

मैं #002b36बैश स्क्रिप्ट का उपयोग करके अपने गनोम टर्मिनल की पृष्ठभूमि ( ) और ubuntu 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

यहाँ छवि विवरण दर्ज करें

वर्तमान में मैं इसे प्राप्त करने के लिए ubuntu टर्मिनल प्राथमिकताओं यूआई का उपयोग कर रहा हूं।

यहाँ छवि विवरण दर्ज करें

जवाबों:


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. सेटिंग्स की सूची प्राप्त करने के लिए प्रोफ़ाइल आईडी का उपयोग करें

    $ 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 # १

रंगों पर ध्यान दें

आप rgb(R,G,B)अपने रंगों को निर्दिष्ट करते समय या हैश नोटेशन का उपयोग कर सकते हैं #RRGGBB। दोनों धारणाओं में तर्क लाल, हरे और नीले हैं। पहले अंकन में मान आर, जी, या बी के लिए 0-255 से लेकर पूर्णांक होते हैं। दूसरे अंकन में मान आरएक्स, जीजी या बीबी के लिए 00 से लेकर एफएफ तक के हेक्सिडेसिमल में होते हैं।

जब 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 स्थापित देख रहा हूँ और ऐसा लगता है जैसे कि गनोम-टर्मिनल डिफ़ॉल्ट नहीं है। डेबियन एक्स टर्मिनल एमुलेटर डीफ है। आप यूटिलिटीज टैब के तहत w / इस कमांड को चेक कर सकते हैं exo-preferred-applications। विवरण यहाँ हैं: askubuntu.com/questions/356842/… । क्या आप इसकी पुष्टि कर सकते हैं? उपरोक्त एक फेडोरा 19 GNOME 3.10 इंस्टॉल पर किया गया था।
स्लम

हां, Debian X terminal emulatorइसमें डिफ़ॉल्ट था 13.04, इसे बदलकर gnome terminalया तो काम नहीं किया।
प्रयागपद

@PrayagUpd - क्या विधि # 2 आपके लिए काम करती है?
SLM

1
उबंटू 18.04 के रूप में अब आपको sudo dconf whateverकमांड जारी करते समय उपयोग करना चाहिए
स्कॉट स्टेंसलैंड

0

मैंने अन्य थ्रेड्स से जीथब कोड के आधार पर कुछ फ़ंक्शन बनाए हैं। आप इन कार्यों को अपनी ~/.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
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.