Ubuntu用のpythonアプリケーションの開発に取り組んでいます。これにより、ユーザーはグラフィックドライバーを必要とせずに希望の解像度を得ることができます。
これを行うには、xrandr
を使用しました。これまでのところ、これは非常に便利です。
ただし、現在問題があります。モニター名を検出するにはどうすればよいですか? os.system
を介して端末コマンドを使用し、必要なモニター出力を取得するために端末出力を変更し、それをプログラム内に保存するつもりでした。残念ながら、多くの検索にもかかわらず、私はこれを行う方法を見つけることができませんでした。
これを行う方法はありますか?
まとめると:VGA1
やDVI-0
などのモニター名を提供する端末コマンドを探しています
アプリケーションにどのように適用するかわかりません("グラフィックスドライバーを必要とせずにユーザーが希望する解像度を使用できるようにする"?)、しかし:
xrandr | grep " connected " | awk '{ print$1 }'
これにより、次のような接続画面が表示され、さらに処理を行うことができます。
VGA-0
DVI-I-1
#!/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
との不一致を防ぐために必要です。
python
とpython
を使用して、接続されているモニター名を取得できます。
$ python3 -c 'from gi.repository import Gdk; screen=Gdk.Screen.get_default(); \
[print(screen.get_monitor_plug_name(i)) for i in range(screen.get_n_monitors())]'
DP1
LVDS1
Popenでbashコマンドを使用できます。
import os
list_display = os.popen("xrandr --listmonitors | grep '*' | awk {'print $4'}").read().splitlines()