如何从.Xresources加载变量



我使用的是Regolise,它加载了一堆外部资源,在一些外部资源文件中有i3-wm.font: typeface_wm等变量。据我所知,这些应该加载到X11窗口系统中,可以从那里读取。我如何在python脚本中获得这个值,而不需要自己解析文件?

我找到了python3-xlib模块,我想它应该能够做到这一点,但我真的无法从中获得成功。。。我知道Xlib的级别很低,也很复杂,但我真的希望有一个类似Xlib.get_resource("i3-wm.font")的命令可以为我提供所需的资源。

你说得对,这看起来很复杂!

不过,我在github上发现了一些随机代码,其中有一些线索。只允许读取的提取版本是:

import Xlib
from Xlib.Xatom import RESOURCE_MANAGER, STRING
res_prop = Xlib.display.Display().screen().root.get_full_property(RESOURCE_MANAGER, STRING)
res_kv = (line.split(':', 1) for line in res_prop.value.decode().split('n'))
res_dict = {kv[0]: kv[1].strip() for kv in res_kv if len(kv) == 2}

不过请记住,这只会占用整个数据库并将其放入dict中,这样您就可以查找确切的密钥。特别是,它没有做X其他人关注的地球仪。然而,它应该足以让你开始。特别是res_dict['i3-wm.font']将为您提供。

最新更新