如何找到 VT *实例* 正在使用的默认(字体)资源?

如何找到 VT *实例* 正在使用的默认(字体)资源?

使用 Arch 在盒子上设置虚拟终端外观乌尔克斯VT,我发现自己无法显示特定 VT 中正在使用哪些 X 资源实例

采用该工作流程:

  1. 打开 urxvt 控制台,加载特定颜色/字体/字体属性(例如,通过编辑~/.Xresources然后使用 更新此 VT xrdb merge
  2. 打开另一个 VT,加载不同的设置,然后重复此操作以在它们之间进行比较。
  3. 电话铃声响起,该吃饭或看望某个孩子了……
  4. 回到计算机:噢,VT 1、2 或 N 中的 X 资源设置是什么?

我尝试了几种能够显示特定应用程序的 X 资源设置的工具,但是:

xrdb 或 xorg-appres 不会显示 VT 实例中加载的 X 资源

正如您可能看到的,xrdb将显示 VT 加载的 X 资源片刻,但不是每个 VT 实例。对于 也一样xorg-appres。这是一个更宽的屏幕截图,包含更多实例和加载的不同设置

有没有办法显示特定 VT 中加载的 X 资源实例你知道吗?

PS:我的问题与其他信息丰富的问题​​略有不同如何找到 XTerm 使用的默认(字体)资源? – 2013 年

答案1

在过去的美好时光,以及 20 年后,您可以用来editres查看甚至更改 Athena 小部件资源真实的 xterm

然而,urxvt 不使用这些小部件,而是使用其他一些图形库。不过它确实提供了 perl 扩展,因此您应该能够通过编写一些 perl 来获取任何信息。例如,我快速拼凑了这些行,您可以将它们放入文件中,例如~/myextn

#!/usr/bin/perl
# http://unix.stackexchange.com/a/306775/119298
# for urxvt --perl-lib ~/ -pe myextn
sub on_init {
   my ($self) = @_;
   # warn "in my font info init";
   my $hotkey = "C-s";
   $self->bind_action($hotkey, "%:getinfo")
      or warn "unable to register '$hotkey' as font info\n";
   ()
}
sub on_action {
    my ($self, $action) = @_;
    if($action eq "getinfo"){
        my $term = $self->{term};
        # warn "font ",$term->resource('font');
        $term->scr_add_lines("font ".$term->resource('font')."\r\n");
    }
    ()
}

然后运行urxvt --perl-lib ~ -pe myextn以使用扩展程序,当您键入时,control-s您应该会看到“字体”资源的值出现在终端中。

相关内容