如何从Python脚本获取X字体路径?

时间:2015-05-09 14:37:54

标签: python fonts x11 vnc

从X下启动的Python脚本中,我想获取字体路径。

脚本将字体路径传递给Xvnc(TightVNC和TigerVNC的一部分)。是的,我知道,要启动VNC服务器,可以使用startvnc,它负责设置字体路径。但是,startvnc做了一些在这种情况下不需要的东西。此外,我想使用与启动脚本的X服务器上完全相同的字体路径。

我考虑过解析xset q的输出。但是:

  • 我不知道它有多可靠,即输出是否始终格式化 同样的方式。

  • 输出可能包含实际上不是路径的占位符。对于 例如,built-ins in: /usr/share/fonts/misc,/usr/share/fonts/Type1,built-ins

1 个答案:

答案 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)