Urxvt: मक्खी पर पृष्ठभूमि का रंग बदलें


12

क्या मक्खी पर एक rxvt-unicode सत्र की पृष्ठभूमि का रंग बदलना है? Ctrlकुंजी के साथ की तरह ?

मेरे पास Urxvt खिड़कियों का एक गुच्छा है और मैं उन्हें अलग पहचानने में मदद करने के लिए कुछ गतिशील रूप से रंग करना चाहूंगा। लेकिन फिर, मैं मक्खी पर मतलब है ...


1
नहीं। आप दीमक के साथ कर सकते हैं , हालांकि ...
जसोनव्रीयन

जवाबों:


16

urxvt2004 में 2.6 ने xterm के डायनामिक कलर्स फीचर के लिए सपोर्ट जोड़ा । में XTerm नियंत्रण दृश्यों , यह OSC11. OSC10 सेट डिफ़ॉल्ट पाठ रंग। परिवर्तन के भाग का उल्लेख किया

2.6  Fri Apr  2 03:24:10 CEST 2004
        - minor doc corrections.
        - WARNING: changed menu sequence from ESC ] 10 to ESC ] 703 to
          avoid clashes with xterm.
        - changed OSC701/OSC702 sequence to return standard escaped reports.
        - xterm-compat: make set window colour and other requests report
          window colour when arg is "?".

लेकिन स्रोत-कोड हमेशा की तरह कहानी कहता है:

 /*
  * XTerm escape sequences: ESC ] Ps;Pt (ST|BEL)
  *       0 = change iconName/title  
  *       1 = change iconName
  *       2 = change title
  *       4 = change color
+ *      10 = change fg color 
+ *      11 = change bg color 
  *      12 = change text color
  *      13 = change mouse foreground color
  *      17 = change highlight character colour
@@ -2949,20 +3236,21 @@ 
  *      50 = change font
  *
  * rxvt extensions:
- *      10 = menu (may change in future) 
  *      20 = bg pixmap
  *      39 = change default fg color
  *      49 = change default bg color
  *      55 = dump scrollback buffer and all of screen
  *     701 = change locale
  *     702 = find font
+ *     703 = menu 
  */

मैनुअल rxvt(7)कोई उपयोगी जानकारी नहीं देता है:

   XTerm ऑपरेटिंग सिस्टम कमांड
       "ESC] Ps; Pt ST"
           XTerm पैरामीटर सेट करें। 8-बिट एसटी: 0x9c, 7-बिट एसटी अनुक्रम: ESC \
           (0x1b, 0x5c), पीछे संगत संगत बीईएल (0x07) भी है
           स्वीकार किए जाते हैं। किसी भी ओकटेट को SYN (0x16) के साथ उपसर्ग करके बच सकते हैं,
           ^ वी)।

यह सरल उदाहरण दोनों अग्रभूमि (पाठ) और पृष्ठभूमि डिफ़ॉल्ट रंग सेट करता है :

#!/bin/sh
printf '\033]10;red\007'
printf '\033]11;green\007'

जैसे xterm, इन डिफ़ॉल्ट रंगों को "ANSI" रंगों द्वारा अस्थायी रूप से ओवरराइड किया जा सकता है।

संसाधन xtermका उपयोग करके सुविधा को अक्षम किया जा सकता है dynamicColors। इसके विपरीत xterm, urxvtसुविधा के लिए कोई संसाधन-सेटिंग नहीं है।

VTE भी सुविधा को लागू करता है, और इसी तरह यह दस्तावेज नहीं करता है। urxvtकम से कम प्रलेखन से शुरू किया rxvt। VTE के लिए, आपको सोर्स कोड पढ़ना होगा। इस vteseq.ccतरह लग रहा है में प्रासंगिक सुविधा :

/* Change the default background cursor, BEL terminated */
static void
vte_sequence_handler_change_background_color_bel (VteTerminalPrivate *that, GValueArray *params)
{
        vte_sequence_handler_change_special_color_internal (that, params,
                                                            VTE_DEFAULT_BG, -1, 11, BEL);
}

/* Change the default background cursor, ST terminated */
static void
vte_sequence_handler_change_background_color_st (VteTerminalPrivate *that, GValueArray *params)
{
        vte_sequence_handler_change_special_color_internal (that, params,
                                                            VTE_DEFAULT_BG, -1, 11, ST);
}

यह कोड 2003 में कुछ समय पहले (जब यह C में लिखा गया था):

commit f39e281529827f68fd0e9bba41785d66a21efc1c
Author: Nalin Dahyabhai <nalin@src.gnome.org>
Date:   Wed Jan 22 21:35:22 2003 +0000

    accept OSC{number};{string}ST as set-text-parameters, per XTerm docs (part

    * src/caps.c: accept OSC{number};{string}ST as set-text-parameters, per XTerm
        docs (part of #104154).
    * src/keymap.c: revert change to prepend "1;" to keys with modifiers (#104139).

आगे की पढाई:


मैंने यह कोशिश नहीं की है, लेकिन यह इतना प्रभावशाली और कठिन है कि मैं इसे स्वीकार कर लूंगा! मुझे उम्मीद है कि यह URXVT में काम करता है।
dman

1
मैंने इसे अपने डेबियन 7 पर urxvt 9.15 के साथ कल रात परीक्षण किया (यह निश्चित करने के लिए कि मैं स्रोत को सही ढंग से पढ़ रहा था)।
थॉमस डिके

मैं बस इस पर चलना चाहता था और कहता हूं कि यह एक सपने की तरह काम करता है। फिर से धन्यवाद के रूप में इस जानकारी को खोजने के लिए मुश्किल होगा।
dman

7

मैं अपने को निम्नलिखित जोड़ा ~/.Xresourcesमक्खी दबाने पर रंग करने के लिए परिवर्तन करने के लिए फ़ाइल Ctrlऔर 7या 8या 9

! change to red background
URxvt.keysym.C-7: command:\033]11;#ff0000\007

! change to light background
URxvt.keysym.C-8: command:\033]11;#ffffff\007

! change to dark gray background
URxvt.keysym.C-9: command:\033]11;#777777\007

यदि आप एक ही समय में अग्रभूमि और पृष्ठभूमि रंग सेट करना चाहते हैं, तो बस आज्ञाओं को संक्षिप्त करें (कुछ रंगों को नामों से परिभाषित किया गया है):

! change to red background
URxvt.keysym.C-7: command:\033]11;#ff0000\007\033]10;yellow\007

आप अपने रंगों का परीक्षण एक साधारण echoआदेश के साथ कर सकते हैं , जैसे यह:

echo -e '\033]11;#ff0000\007\033]10;yellow\007'   # changes to red background and yellow foreground

ध्यान

मैंने बैकग्राउंड कलर के लिए कोड 11 और अग्रभूमि रंग के लिए कोड 10 का उपयोग कियाथॉमस डिकी द्वारा उद्धृत उर्वक्सव की परिभाषाएं इसके बजाय 49 और 39 का उपयोग करने का संकेत देती हैं (जो मैंने परीक्षण किया और काम भी किया)।


2

डायनामिक कलर्स गतिशील रूप से स्विचिंग रंगों का एक उदाहरण है। यह इन दोनों के उपयोग से शुरू होता है।

xterm*dynamicColors: true urxvt*dynamicColors: on

हालांकि लीड के बावजूद, मैंने urxvt के साथ काम करते हुए रंग बदलना नहीं छोड़ा है! यह तकनीक xterm के साथ बढ़िया काम करती है। डायनामिक कलर्स इन "OSC एस्केप सीक्वेंस" को कहते हैं जो टर्मिनल को बदल देते हैं, पृष्ठभूमि को लाल बनाने का उदाहरण है:echo -e "\03echo -e "\033]11;#ff0000\007"3]11;#ff0000\007"


मेरे लिए पृष्ठभूमि का रंग लाल हो जाता है अगर मैं इसे कमांड लाइन में रखता हूं:echo -e "\033]11;#ff0000\007"
'29

2

त्वरित स्विचिंग के लिए मेरे पास अपने एक्सरे स्रोत में निम्नलिखित है (हाँ, यह गतिशील रंगों पर आधारित है)।

URxvt*keysym.Control-Shift-F10: command:\033]11;#2c2c2c\007\033]10;#dcdcdc\007\033]12;#dcdcdc\007\033]4;0;#3f3f3f\007\033]4;1;#705050\007\033]4;2;#60b48a\007\033]4;3;#dfaf8f\007\033]4;4;#9ab8d7\007\033]4;5;#dc8cc3\007\033]4;6;#8cd0d3\007\033]4;7;#dcdcdc\007\033]4;8;#709080\007\033]4;9;#dca3a3\007\033]4;10;#72d5a3\007\033]4;11;#f0dfaf\007\033]4;12;#94bff3\007\033]4;13;#ec93d3\007\033]4;14;#93e0e3\007\033]4;15;#ffffff\007
URxvt*keysym.Control-Shift-F11: command:\033]11;#000000\007\033]10;#ffffff\007\033]12;#ffffff\007\033]4;0;#000000\007\033]4;1;#cc0000\007\033]4;2;#4e9a06\007\033]4;3;#c4a000\007\033]4;4;#3465a4\007\033]4;5;#75507b\007\033]4;6;#06989a\007\033]4;7;#d3d7cf\007\033]4;8;#555753\007\033]4;9;#ef2929\007\033]4;10;#8ae234\007\033]4;11;#fce94f\007\033]4;12;#729fcf\007\033]4;13;#ad7fa8\007\033]4;14;#34e2e2\007\033]4;15;#eeeeec\007
URxvt*keysym.Control-Shift-F12: command:\033]11;#000000\007\033]10;#a9a9a9\007\033]12;#a9a9a9\007\033]4;0;#000000\007\033]4;1;#cc0000\007\033]4;2;#00cc00\007\033]4;3;#cccc00\007\033]4;4;#0000cc\007\033]4;5;#cc00cc\007\033]4;6;#00cccc\007\033]4;7;#cccccc\007\033]4;8;#555555\007\033]4;9;#ff0000\007\033]4;10;#00ff00\007\033]4;11;#ffff00\007\033]4;12;#0000ff\007\033]4;13;#ff00ff\007\033]4;14;#00ffff\007\033]4;15;#ffffff\007

आप यहां एक अन्य दृष्टिकोण के लिए भी देख सकते हैं: https://github.com/sos4nt/dynamic-colors


1

मैंने urxvt-theme नामक एक एक्सटेंशन लिखा है जो एक्स संसाधनों और गतिशील रंगों का उपयोग करके इस कार्यक्षमता को rxvt-unicode (एक साधारण संदर्भ मेनू के साथ) जोड़ता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.