我正在寻找一种一致的方法来获取笔记本电脑中内置显示器的名称。确切地说,我正在寻找关闭盖子时将关闭的显示器的名称。我只是想知道是否有一种对名称没有任何假设的方法(不列出所有现有名称......)。
起初,似乎唯一的区别是显示器插入主板的方式,所以名称必须是一个相关的线索,但我想知道如果没有它是否可能。
例如,我正在研究如何logind
区分HandleSwitchLid
和HandleSwitchLidDocked
,但我没有发现任何非常有用的东西,因为有时来源不是很容易理解
我正在寻找一种一致的方法来获取笔记本电脑中内置显示器的名称。确切地说,我正在寻找关闭盖子时将关闭的显示器的名称。我只是想知道是否有一种对名称没有任何假设的方法(不列出所有现有名称......)。
起初,似乎唯一的区别是显示器插入主板的方式,所以名称必须是一个相关的线索,但我想知道如果没有它是否可能。
例如,我正在研究如何logind
区分HandleSwitchLid
和HandleSwitchLidDocked
,但我没有发现任何非常有用的东西,因为有时来源不是很容易理解
您也许可以用来
xrandr
为您提供所需的输出。例如,xrandr --query
在我的机器上显示适配器(我笔记本电脑上的第一个是eDP1
,并xrandr --listmonitors
显示监视器名称,就像我在Monitors
屏幕 gui 面板中看到的那样。此外,如果您只想排除外部因素,则可以从输出中执行以下操作:
高温高压
没有通用且有保证的可靠方法来判断屏幕是否是内部的。
根本没有标准化的硬件标志可以告诉您“此屏幕与计算机的其余部分在物理上内置于同一机箱中”。所以你需要猜测,接口的类型是一些提示的好来源,只是因为没有任何内部和外部通用的视频接口。
你的想法
logind
是合理的。重要的部分是manager_count_external_displays
inlogind-core.c
,它使用了这个“可能的外部”接口列表:如随附评论中所述,他们宁愿错过一些外部显示器,也不愿将内部显示器误认为外部显示器(并无缘无故阻止暂停系统)。如果您宁愿以另一种方式进行操作,您可能只需要寻找
eDP
和LVDS
作为“可能的内部”接口。