如何阻止 rxvt 绘制彩色粗体文本?

如何阻止 rxvt 绘制彩色粗体文本?

在 rxvt 上,且仅在 rxvt 上,当我使用 ncursesA_BOLD属性显示文本时,它会被人为地着色。

编辑:当启用颜色时。(通过 ncurses start_color()。)

在此处输入图片描述

顶部是 gnome-terminal,底部是 rxvt-unicode。

是否有人对 rxvt 配置有足够的了解,知道我是否可以阻止这种情况发生?它似乎确实正确地找到了粗体字体,因此不需要通过颜色强调文本。

我确实知道有一种colorBD资源可用于指定粗体文本的颜色;但是,这似乎仅适用于以前景色绘制文本的情况,但这不是(它实际上是灰白色)。(此外,我尝试过设置它,但什么也没发生,因此该代码路径没有触发。)

我不相信我的配置里有任何内容,它非常基本:

URxvt*scrollTtyOutput: false
URxvt*scrollWithBuffer: true
URxvt*scrollTtyKeypress: true
URxvt*font: xft:Monoid Tight:pixelsize=12
URxvt*saveLines: 10000
URxvt*scrollBar_right: true

URxvt*background: #2B2B2B
URxvt*foreground: #DEDEDE

(加上调色板设置,为简洁起见省略了。)我已经检查过了xrdb -query,设置被拾取了,但没有显示任何内容。另外,我已经检查过了/etc/X11/app-defaults/URxvt,所有内容都被注释掉了。

那么这是硬编码行为吗?

编辑:根据要求,我已将调色板设置移至此处:

! black
URxvt*color0  : #2E3436
URxvt*color8  : #555753
! red
URxvt*color1  : #CC0000
URxvt*color9  : #EF2929
! green
URxvt*color2  : #4E9A06
URxvt*color10 : #8AE234
! yellow
URxvt*color3  : #C4A000
URxvt*color11 : #FCE94F
! blue
URxvt*color4  : #3465A4
URxvt*color12 : #729FCF
! magenta
URxvt*color5  : #75507B
URxvt*color13 : #AD7FA8
! cyan
URxvt*color6  : #06989A
URxvt*color14 : #34E2E2
! white
URxvt*color7  : #D3D7CF
URxvt*color15 : #EEEEEC

答案1

定义显示粗体文本的颜色的资源是colorBD(和colorIT斜体)。

检查它是否设置了

% xrdb -query | grep -i colorBD
URxvt.colorBD:  4

除了将当前 xrdb 值读入文件之外,没有其他方法可以动态删除单个资源定义:

xrdb -query > filename

使用编辑器编辑文件,删除包含的行URxvt.colorBD,保存文件并加载它以覆盖现有资源:

xrdb -load filename

显然,你可以用自己的值覆盖该值,~/.Xresources我测试过使用空值"URxvt.colorBD: "和破折号来覆盖该值:"URxvt.colorBD: -"以获得与完全未设置时相同的功能,但那不起作用,我只得到了一些默认的粉红色作为粗体。但你可以用默认的前景色覆盖它(...但如果是粗体,这会将文本更改为其他颜色)。

要永久删除它,您可能需要在 x-session 启动时找到它设置的位置并从那里将其删除(通常会在~/.Xresources或中设置这些内容~/.Xdefaults,并且可能会有应用程序默认值,例如 /etc/X11/app-defaults/URxvt,您的环境在 X 启动时加载这些默认值。

(另一种方法是xrdb -load在每次启动后用不包含资源的文件覆盖()整个资源数据库URxvt.colorBD...但这样做可能会丢失新应用程序的默认设置等,因此您需要以与上述相同的方式保持该文件为最新。)

相关内容