web-dev-qa-db-fra.com

Définir un message à partir de la ligne de commande pour l'écran Verrouillage cannelle

J'essaie de créer un petit script pour définir un message aléatoire lorsque je verrouille l'écran de mon ordinateur.

Je dois donc pouvoir définir un message à partir de la ligne de commande et l'appeler quand j'exécuterai la fonction d'écran de verrouillage.

Je trouve la commande pour verrouiller l'écran: cinnamon-screensaver-command -l mais dans le man, il n'y a pas de détails sur la façon de définir le message d'écran verrouillé.

Si vous avez des idées ...

3
Etienne Prothon

L'économiseur d'écran Cinnamon propose le service DBus org.cinnamon.ScreenSaver, qui, entre autres, utilise la méthode suivante:

method void org.cinnamon.ScreenSaver.Lock(QString body)

Cette méthode est exactement celle qui est appelée lors du verrouillage de l’écran avec un message personnalisé. Si vous souhaitez appeler cela à partir d'un script bash, vous avez besoin d'une interface DBus, telle que gdbus ou qdbus.

Personnellement, je préfère qdbus car je n’ai pas encore compris la syntaxe de gdbus. Cependant, vous devrez peut-être d'abord installer qdbus avec

Sudo apt-get install qdbus

Cela peut installer d'autres bibliothèques Qt également. Une fois installé, vous pouvez appeler la méthode en utilisant

qdbus org.cinnamon.ScreenSaver / Lock "$message"

avec $message contenant votre message personnalisé. Cependant, cet appel de méthode ne fonctionnera pas si l'écran est déjà verrouillé. Si tel est le cas, la méthode bloquera jusqu'à ce que l'écran soit déverrouillé, puis reviendra sans verrouiller à nouveau l'écran.

1
s3lph

cinnamon-screensaver-command a maintenant une option "-m" ou "--away-message" pour cela, vous pouvez donc l'utiliser. J'ai un petit script Shell qui lit quelque chose comme:

#!/bin/sh

cinnamon-screensaver-command -l -m $(fortune -s)

2
Dave Cridland