【问题标题】:How to distinguish Xsun from Xorg, programmatically?如何以编程方式区分 Xsun 和 Xorg?
【发布时间】:2009-07-27 21:00:01
【问题描述】:

VendorString() 不起作用,它始终是 Sun Microsystems,即使它是为 Solaris 构建的 Xorg。

【问题讨论】:

    标签: xorg


    【解决方案1】:
    $ xdpy信息 | grep 供应商 供应商字符串:X.Org 基金会 供应商版本号:10601901

    这是 Linux 上的 xorg-server 1.6.1。希望 Solaris 上的 XOrg 和 XSun 在这方面有所不同。

    为了输出这两个字段,xdpyinfo 调用ServerVendor macro 来确定供应商,然后根据ServerVendor 的不同,以不同方式解析VendorRelease macro 的返回值。

    顺便问一下,VendorString() 是什么?我没有同名的函数或宏...

    【讨论】:

      【解决方案2】:

      这可能有点老套,但是如果您查看从 Xsun 和 Xorg 返回的扩展列表,您应该会看到 Xorg 有一些额外的 XFree86 派生扩展。

      xdpyinfo 可用于通过命令行列出扩展名以检查差异;您可以通过编程方式使用XListExtensions()XQueryExtension()

      (我手头没有 Xsun X 服务器,但我很确定当我过去查看时,它们有很大的不同)。

      【讨论】:

      • 只有 Xsun 会有 Adob​​e-DPS - Sun 不包括在我们的 Xorg 端口中。
      【解决方案3】:

      谢谢! 糟糕,它是 VendorRelease() 字符串。 无论如何,不​​幸的是我们不能在这个字符串上下注。对于 Xsun 和 Xorg 来说,它经常变化足以带来麻烦。我找到了一个解决方案(希望)适用于他们以及 Xvfb、Xnest 等各种其他(派生)服务器。

      Xsun 确实在 KP_(数字键盘)键码的键符数组中使用了第三个值。 Xorg 使用 1-st 或 2-nd。嗅探器应首先获取 KP_keysym 的密钥代码,例如 XK_KP_7, 其次,嗅探 XKeycodeToKeysym(d,keycode, [0-3]) 中的内容。我们的 XK_KP_7 将在 Xsun 的索引 2 上。

      【讨论】:

      • 哇,这感觉比 Dave 的解决方案更丑陋,但只要它有效......!
      猜你喜欢
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 2018-10-11
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多