You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Wayland环境下获取显示器ConnectorType与ConnectorNumber等连接信息?

Wayland环境下获取显示器连接信息的等价实现方式

在Wayland环境中没有像X11下xrandr那样的统一标准工具/接口,不同 compositor(窗口管理器)提供了各自的实现方式,以下是针对你需要的ConnectorType和ConnectorNumber信息的常用方案:

一、命令行工具方式

1. 基于wlroots的Compositor(如Sway、Hyprland)

使用wlr-randr工具,添加--verbose参数可获取详细信息:

wlr-randr --verbose

示例输出片段:

HDMI-A-1 connected 1920x1080@60Hz
  Physical size: 527x296 mm
  Connector type: HDMI
  Connector: 1
  ...

其中:

  • Connector type对应Xrandr中的ConnectorType
  • Connector字段对应Xrandr中的ConnectorNumber

2. KDE Plasma环境

使用kscreen-doctor工具,通过--outputs参数查看详细输出:

kscreen-doctor --outputs

输出中会包含connectorType和connectorId字段,分别对应你需要的ConnectorType和ConnectorNumber。

3. GNOME环境

可通过D-Bus调用Mutter的DisplayConfig接口获取信息:

gdbus call --session --dest org.gnome.Mutter.DisplayConfig --object-path /org/gnome/Mutter/DisplayConfig --method org.gnome.Mutter.DisplayConfig.GetCurrentState

返回的结构中,connectors数组里的type和id字段分别对应ConnectorType和ConnectorNumber。

二、应用程序API方式

1. wlroots系Compositor

使用Wayland扩展协议wlr-output-management-unstable-v1,通过zwlr_output_head_v1对象的以下属性获取:

  • connector_type:对应ConnectorType
  • connector:对应ConnectorNumber

你需要在代码中绑定该协议,通过zwlr_output_manager_v1枚举输出设备,再获取每个zwlr_output_head_v1的属性。

2. KDE应用

使用KScreen框架的Qt API,通过KScreen::Output类的:

  • connectorType()方法获取连接类型
  • connectorId()方法获取连接编号

3. GNOME应用

通过org.gnome.Mutter.DisplayConfig D-Bus接口的GetCurrentState方法,解析返回的结构中的connectors字段,提取对应信息。

内容的提问来源于stack exchange,提问作者Andrew Marshall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 23:54:30