如何解决如何从.Xresources中加载变量?
我正在使用Regolith加载一堆Xresources,并在某些Xresources文件中使用i3-wm.font: typeface_wm
之类的变量。据我了解,这些应该加载到X11窗口系统中,可以从那里读取。如何在python脚本中获得此值,而无需自己解析文件?
我发现了python3-xlib
模块,我想应该可以做到这一点,但是我不能从中真正受益匪浅……我知道Xlib非常低级并且很复杂,但是我真的希望有一个Xlib.get_resource("i3-wm.font")
这样的命令可以为我获取所需的资源。
解决方法
你说得对,这看起来很复杂!
我在 github here 上发现了一些有一些线索的随机代码。仅允许阅读的蒸馏版本是:
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}
但请记住,这只是抓取整个 db 并将其推入 dict 中,以便您可以查找确切的键。特别是,它不执行 X 的其余部分所关注的所有 globbing。但是,这应该足以让您入门。特别是 res_dict['i3-wm.font']
会为您提供。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。