web-dev-qa-db-ja.com

シェルスクリプトまたはConky構成で2番目のディスプレイの存在を検出できますか?

ラップトップを膝の上で作業しているのか(1画面)、デスクで大きなモニターに接続しているのか(デュアルディスプレイ)に応じて、conkyの配置を変更したいと思います。

問題は、何があってもノートパソコンの画面の左下に表示したいということです。しかし、私のデュアルディスプレイ設定では、「左下」がたまたま外部モニターに表示されています。

2つの解決策があるようです:

  • Conky(conky.sh)を起動するために使用するスクリプトにif/elseステートメントを追加します。このスクリプトは、表示の配置に応じて異なる構成ファイルを起動します。

  • 表示の配置に応じて配置またはインデントの値を設定するif/elseステートメントをconky構成に追加します。

(はい、少なくともShellバージョンは、conkyを起動したときにプラグが差し込まれている/取り外されている場合にのみ機能することを理解しています。私はそれで生きることができます。

しかし...私はbashまたはconkyでデュアルディスプレイまたはセカンドモニターを検出する方法さえ知りません。

3
Amanda

上記のネイサンの提案は、xrandrコマンドがすべての表示出力(接続/切断)に関する情報を提供するのと同じ結果をすべての状況で提供します。

このコードは機能します:

$ xrandr | grep -sw 'connected' | wc -l

注:私の考えではありません。 Nathanの提案と this をマージしました。

3
Benc Marek

Xrandrとgrepを使用して、接続されているモニターを検出できます。次に、wc -lを使用して、返された行数をカウントします。

ターミナルでこれを試してください:

xrandr | grep connected | wc -l
1
Nathan Lippi