从X下启动的Python脚本中,我想获取字体路径。
脚本将字体路径传递给Xvnc
(TightVNC和TigerVNC的一部分)。是的,我知道,要启动VNC服务器,可以使用startvnc
,它负责设置字体路径。但是,startvnc
做了一些在这种情况下不需要的东西。此外,我想使用与启动脚本的X服务器上完全相同的字体路径。
我考虑过解析xset q
的输出。但是:
我不知道它有多可靠,即输出是否始终格式化 同样的方式。
输出可能包含实际上不是路径的占位符。对于
例如,built-ins
in:
/usr/share/fonts/misc,/usr/share/fonts/Type1,built-ins
答案 0 :(得分:1)
从xorg.conf的manual开始,你最安全的选择是解析setx q
行的配置文件(我假设FontPath
解析),看起来像:
FontPath“路径” 设置字体的搜索路径。此路径是以逗号分隔的字体路径元素列表,Xorg服务器搜索字体数据库。
使用python的re模块,可以像这样解析字体路径(因为可以指定多个FontPath
):
import re
regex = re.compile(r'^\s*FontPath\s+(.*)\s*$', re.MULTILINE)
with open('xorg.conf') as f:
data = f.read()
matches = regex.findall(data)