![如何找到 VT *实例* 正在使用的默认(字体)资源?](https://linux22.com/image/93456/%E5%A6%82%E4%BD%95%E6%89%BE%E5%88%B0%20VT%20*%E5%AE%9E%E4%BE%8B*%20%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E7%9A%84%E9%BB%98%E8%AE%A4%EF%BC%88%E5%AD%97%E4%BD%93%EF%BC%89%E8%B5%84%E6%BA%90%EF%BC%9F.png)
使用 Arch 在盒子上设置虚拟终端外观乌尔克斯VT,我发现自己无法显示特定 VT 中正在使用哪些 X 资源实例。
采用该工作流程:
- 打开 urxvt 控制台,加载特定颜色/字体/字体属性(例如,通过编辑
~/.Xresources
然后使用 更新此 VTxrdb merge
) - 打开另一个 VT,加载不同的设置,然后重复此操作以在它们之间进行比较。
- 电话铃声响起,该吃饭或看望某个孩子了……
- 回到计算机:噢,VT 1、2 或 N 中的 X 资源设置是什么?
我尝试了几种能够显示特定应用程序的 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您应该会看到“字体”资源的值出现在终端中。