内部ディスプレイと外部ディスプレイの区別

内部ディスプレイと外部ディスプレイの区別

私は私のラップトップに組み込まれたモニターの名前を取得する一貫した方法を探しています。正確に言えば探しています。ふたを閉めると消えるモニターの名前。名前について何も仮定せずに(既存の名前をすべて一覧表示せずに...)、これを行う方法があるかどうか疑問に思います。

最初は、モニターがマザーボードに接続する方法だけが異なるだけのように見えたので、名前が関連する手がかりであるに違いありませんが、名前なしで可能かどうか疑問に思いました。

たとえば、私はandをlogind区別する方法を探していましたが、時には非常に便利なものが見つかりませんでした。HandleSwitchLidHandleSwitchLidDocked源泉わかりにくい

答え1

画面が組み込まれていることを確認するための普遍的で信頼できる方法はありません。

「この画面は、コンピュータの残りの部分と同じシャーシに物理的に組み込まれています」と通知する標準化されたハードウェアマークはありません。したがって、推測する必要があり、インターフェイスの種類はヒントを得るのに最適なソースです。これは、内部および外部の使用のための汎用ビデオインターフェイスがないためです。

あなたの考えはlogind合理的なようです。重要な部分は、「可能な外部」インタフェースのリストを使用することですmanager_count_external_displayslogind-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)'

ファタイ

関連情報