我该如何确定正在运行的urxvt所使用的字体?

3

我发现在urxvt中有一些转义代码可用于更改字体。我想使用它们来动态更改我的字体大小。我看到了一些插件可以实现这个功能,但它们对此有很强的看法,并且通常依赖于一个硬编码的字体列表来切换。我更喜欢查询当前字体,更改大小并打印相应的转义代码。这是否可能?


请查看此链接:https://bbs.archlinux.org/viewtopic.php?id=44121。 - Chan Kha Vu
@FalconUA 差不多是我想要的。我希望根据当前字体的大小来增加或减小,而不是切换到固定大小。但如果这不可能的话,这绝对是一个很好的妥协方案。 - valadil
2个回答

9

按住Control-Shift并点击一个字符。

会出现一个小窗口告诉您所点击的字符的字体。


4
你可以使用appres查询字体。如果你不确定你所使用的Linux系统,但碰巧是Arch Linux,可以使用以下命令进行安装:sudo pacman -S xorg-appres
在我的系统上,以下是一个示例查询:
% appres urxvt |grep '\*font:' |awk '{print $2}'
-misc-orp-medium-r-*-*-12-*-75-75-*-60-iso10646-*

你可以从中解析出大小信息(12),以决定是否增加或其他操作:
% origsize=$(appres urxvt |grep '\*font:' |awk -F- '{print $8}')  # 12

您可以使用 printf 在一个名为 my-font-changer 的脚本中增加字体大小,例如:
printf "\033]710;-misc-orp-medium-r-*-*-$newsize-*-*-*-*-*-iso8859-*\007"
printf "\033]711;-misc-orp-bold-*-*-*-$newsize-*-*-*-*-*-iso8859-*\007"
printf "\033]712;-misc-orp-*-i-*-*-$newsize-*-*-*-*-*-iso8859-1\007"
printf "\033]713;-misc-orp-*-i-*-*-$newsize-*-*-*-*-*-iso8859-1\007"

然后你可以在~/.Xdefaults中分配一个热键:

URxvt.keysym.M-C-1: command: my-font-changer

(大部分内容未经测试,但你可以将它们组合起来.)


@valadil:你能让它正常工作吗?如果有任何问题,请更新,或者接受,这样其他人就会将其视为有用的方法。 - Micah Elliott
这对我不起作用。它输出的是当前在~/.Xresources中定义的字体。如果您打开终端,更改字体,然后执行xrdb ~/.Xresources,再执行建议的命令,您将得到在~/.Xresources中定义的字体,而不是当前终端正在使用的字体。 - Andrii Tykhonov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接