Je travaille sur un script qui afficherait à l'écran des informations système arbitraires. Pour cela, j'ai essayé d'utiliser le module pyosd
.
Considérez les 3 lignes suivantes:
import pyosd
p = pyosd.osd()
p.display("ASKUBUNTU")
Cela fonctionne bien avec l'interpréteur python 2.7, cependant, échoue lors de l'exécution à partir d'un script - aucune exception n'est levée, mais rien ne s'affiche non plus. Comment puis-je résoudre ce problème?
Je suis ouvert à d'autres suggestions, mais pynotify
ne fonctionne pas non plus pour moi, car les notifications qu'il soulève ne peuvent pas être placées dans une position arbitraire de l'écran. Notez également que gnome-osd-client
est également un outil utile, mais j'ai besoin d'un script autonome plutôt que d'utiliser une application externe. Le script serait destiné aux autres utilisateurs, et je ne veux pas qu'ils téléchargent des packages supplémentaires dont ils n'auront pas besoin
Comme indiqué dans http://ichi2.net/pyosd/
FAQ
Pourquoi puis-je afficher du texte de manière interactive, mais pas dans un script?
Le texte est affiché dans un fil différent, vous devez donc continuer à exécuter le programme assez longtemps pour voir le texte. Cela signifie généralement ajouter l'appel de fonction suivant à la fin de votre programme:
my_pyosd_obj.wait_until_no_display ()
Ainsi, la solution était de faire ceci:
#!/usr/bin/env python
import pyosd
p = pyosd.osd( )
p.display("HELLOOOOOOOOOOOOOOOOOOOOOOOOOO")
p.show()
p.wait_until_no_display()
Le 16.04 LTS semble avoir supprimé de nombreuses polices utilisées dans les versions précédentes. Après avoir installé les polices x11 avec Sudo apt-get install xfonts-75dpi
et redémarrez, le code fonctionne avec la police par défaut spécifiée dans pydoc pyosd
:
default_font = '-*-helvetica-medium-r-normal-*-*-360-*-*-p-*-*-*'