【问题标题】:How do I enumerate all available keyboard layouts in X.org?如何枚举 X.org 中所有可用的键盘布局?
【发布时间】:2009-08-12 20:35:21
【问题描述】:

我有一个输出有限数量键码的设备(例如键盘楔形条码扫描仪),我想知道这些键码将在所有可能的键盘布局上键入什么。我想编写一个 X11 客户端,将键盘布局设置为每个已安装的键盘映射,然后记录从设备接收到的每次按键的 Unicode。

如何获取所有已安装键盘布局的列表?

【问题讨论】:

    标签: linux x11 keyboard-layout xorg


    【解决方案1】:

    x.org 现在将其键盘布局存储在 XML 中。从/usr/share/X11/xkb/rules/base.xml 解析可用的布局很容易。 Ubuntu 在该目录中有一个类似的evdev.xml,我不确定它们有何不同。在 Python 中:

    #!/usr/bin/env python
    # Enumerate available xkb layouts
    import lxml.etree
    repository = "/usr/share/X11/xkb/rules/base.xml"
    tree = lxml.etree.parse(file(repository))
    layouts = tree.xpath("//layout")
    for layout in layouts:
        layoutName = layout.xpath("./configItem/name")[0].text
        print layoutName
        for variant in layout.xpath("./variantList/variant/configItem/name"):
            variantName = variant.text
            print layoutName, variantName
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2010-11-10
      • 2013-07-23
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 2010-12-01
      相关资源
      最近更新 更多