Je travaille au développement d'une application python pour Ubuntu qui permet à un utilisateur de disposer de la résolution souhaitée sans nécessiter de pilote graphique.
Pour ce faire, j’utilise xrandr
, qui jusqu’à présent a été très utile
Cependant, j'ai maintenant un problème; Comment puis-je détecter le nom du moniteur? J'avais l'intention d'utiliser une commande de terminal via os.system
, de modifier la sortie du terminal pour obtenir la sortie de moniteur requise, puis de la stocker dans le programme. Malheureusement, malgré beaucoup de recherches, je n’ai pas pu trouver comment faire.
Y a-t-il un moyen de le faire?
Pour résumer: Je cherche une commande de terminal qui me donne le nom du moniteur, tel que VGA1
ou DVI-0
Je ne sais pas comment vous allez l’appliquer dans votre application ("permettre à un utilisateur d’avoir la résolution souhaitée sans nécessiter de pilote graphique"?), Mais:
xrandr | grep " connected " | awk '{ print$1 }'
Ceci vous donnera les écrans connectés pour un traitement ultérieur, comme:
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())
Ceci vous donnera également les écrans connectés, comme:
['VGA-0', 'DVI-I-1']
Notez les espaces autour de " connected "
dans la chaîne recherchée. Ils sont nécessaires pour éviter les discordances avec disconnected
.
Vous pouvez utiliser python
et seulement python
pour obtenir les noms de moniteur connecté:
$ 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
Vous pouvez utiliser la commande bash avec popen:
import os
list_display = os.popen("xrandr --listmonitors | grep '*' | awk {'print $4'}").read().splitlines()