私は私のラップトップに組み込まれたモニターの名前を取得する一貫した方法を探しています。正確に言えば探しています。ふたを閉めると消えるモニターの名前。名前について何も仮定せずに(既存の名前をすべて一覧表示せずに...)、これを行う方法があるかどうか疑問に思います。
最初は、モニターがマザーボードに接続する方法だけが異なるだけのように見えたので、名前が関連する手がかりであるに違いありませんが、名前なしで可能かどうか疑問に思いました。
たとえば、私はandをlogind
区別する方法を探していましたが、時には非常に便利なものが見つかりませんでした。HandleSwitchLid
HandleSwitchLidDocked
源泉わかりにくい
答え1
画面が組み込まれていることを確認するための普遍的で信頼できる方法はありません。
「この画面は、コンピュータの残りの部分と同じシャーシに物理的に組み込まれています」と通知する標準化されたハードウェアマークはありません。したがって、推測する必要があり、インターフェイスの種類はヒントを得るのに最適なソースです。これは、内部および外部の使用のための汎用ビデオインターフェイスがないためです。
あなたの考えはlogind
合理的なようです。重要な部分は、「可能な外部」インタフェースのリストを使用することですmanager_count_external_displays
。logind-core.c
"VGA-", "DVI-I-", "DVI-D-", "DVI-A-"
"Composite-", "SVIDEO-", "Component-",
"DIN-", "DP-", "HDMI-A-", "HDMI-B-", "TV-"
添付の説明で述べたように、内部ディスプレイを外部ディスプレイとして勘違いするよりも、外部ディスプレイの一部を見逃すことをお勧めします(そして明らかな理由なくシステムがハングするのを防ぎます)。他の方法でやりたいことがある場合は、「おそらく内部」インターフェースをeDP
探したいかもしれません。LVDS
答え2
xrandr
これを使用して目的の結果を得ることができます。たとえば、マイxrandr --query
コンピュータのディスプレイアダプタ(マイノートブックの最初のアダプタeDP1
)は、画面のGUIパネルに示すxrandr --listmonitors
ようにモニタ名を表示します。Monitors
または、出力から外部要因のみを除外したい場合は、次のことができます。
xrandr --query | grep ' connected' | grep -vEi '(hdmi|vga|virtual)'
ファタイ