Urxvt:背景色を動的に変更します。

Urxvt:背景色を動的に変更します。

rxvt-unicodeセッションの背景色を動的に変更する方法はありますか?鍵を使うのと同じですかCtrl

私はいくつかのUrxvtウィンドウを持っており、それらのいくつかを区別するのに役立つように動的に色合いを指定したいと思います。しかし、再び言うが、即座に言葉です…

ベストアンサー1

urxvt2004年2.6にxtermのサポートが追加されました。ダイナミックカラー特徴。存在するXTerm制御シーケンス、つまりOSC11です。 10は OSCデフォルトのテキスト色を設定します。変更ログにはいくつかの変更が記載されています。

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ビットST:0x9c、7ビットSTシーケンス:ESC \
           (0x1b、0x5c)、ターミネータBEL(0x07)とも逆互換可能
           受け入れられました。すべてのオクテットは前にSYN(0x16、
           ^V)。

この簡単な例では、前景(テキスト)と背景を設定します。基本カラー:

#!/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 <[email protected]>
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).

追加資料:

おすすめ記事