GNU/Linux >> Linux の 問題 >  >> Ubuntu

Xrandrで接続されているモニターを一覧表示するにはどうすればよいですか?

私はUbuntu用のPythonアプリケーションの開発に取り組んでいます。これにより、ユーザーはグラフィックスドライバーを必要とせずに希望の解像度を得ることができます。

これを行うために、私はxrandrを使用しています 、これまでのところ、かなり役に立ちました

しかし、今は問題があります。モニター名を検出するにはどうすればよいですか? os.systemを介してターミナルコマンドを使用するつもりでした 、端末出力を変更して必要なモニター出力を取得し、それをプログラム内に保存します。残念ながら、多くの検索を行ったにもかかわらず、これを行う方法を見つけることができませんでした。

これを行う方法はありますか?

要約すると、 VGA1などのモニター名を表示するターミナルコマンドを探しています。 またはDVI-0

承認された回答:

アプリケーションでどのように適用するのかわかりません(「ユーザーがグラフィックドライバを必要とせずに希望の解像度を使用できるようにする」 ?)、しかし:

接続されている画面を一覧表示する端末コマンド

xrandr | grep " connected " | awk '{ print$1 }'

これにより、次のように、さらに処理するための接続された画面が表示されます。

VGA-0
DVI-I-1

Pythonについて言及しているので、以下のスニペットには接続されている画面も一覧表示されます:

#!/usr/bin/env python3
import subprocess

def screens():
    output = [l for l in subprocess.check_output(["xrandr"]).decode("utf-8").splitlines()]
    return [l.split()[0] for l in output if " connected " in l]

print(screens())

これにより、次のような接続された画面も表示されます。

['VGA-0', 'DVI-I-1']

" connected "の周りのスペースに注意してください 検索された文字列内。 disconnectedとの不一致を防ぐために必要です 。

2019年編集

Pythonを使用し、xrandrを使用する必要はありません または他のシステムコール。 Gdkの使用を改善する:

#!/usr/bin/env python3
import gi
gi.require_version("Gdk", "3.0")
from gi.repository import Gdk

allmonitors = []

gdkdsp = Gdk.Display.get_default()
for i in range(gdkdsp.get_n_monitors()):
    monitor = gdkdsp.get_monitor(i)
    scale = monitor.get_scale_factor()
    geo = monitor.get_geometry()
    allmonitors.append([
        monitor.get_model()] + [n * scale for n in [
            geo.x, geo.y, geo.width, geo.height
        ]
    ])

print(allmonitors)

出力例:

[['eDP-1', 0, 0, 3840, 2160], ['DP-2', 3840, 562, 1680, 1050]]

必要な情報に応じて、https://lazka.github.io/pgi-docs/Gdk-3.0/classes/Monitor.html

から選択できます。
Ubuntu
  1. CentosでSysstatを使用してシステムを監視する方法

  2. 末尾にスラッシュが付いたディレクトリをリストするためにLsを取得するにはどうすればよいですか?

  3. root を持つすべてのユーザーを一覧表示するにはどうすればよいですか?

  1. Xrandrで新しい解像度設定を保存する方法は?

  2. DNSSECでドメインを一覧表示する方法

  3. Osqueryを使用してLinuxサーバーのセキュリティを監視する方法

  1. PrometheusでKubernetesを監視する方法

  2. Ubuntu20.04でユーザーを一覧表示する方法

  3. GlanceコマンドでLinuxシステムを監視する方法