web-dev-qa-db-fra.com

Comment créer un script qui interagit avec le verrouillage / déverrouillage de l'écran

J'ai besoin d'un script pour appuyer sur Ctrl + Alt + L (Écran verrouillé) J'ai bloqué ou éteint tous les ports USB et toutes mes interfaces réseau telles que eth0.

Lorsque je déverrouille, tout devrait revenir à la normale. j'ai essayé

echo suspend> / sys / bus / usb / devices / usb1 / power / level 

.. Mais je ne pouvais pas ..

Et aussi

dbus-monitor --session "type = 'signal', interface = 'org.gnome.ScreenSaver' 

pour interagir avec l'écran mais ne pouvait pas trop.

Y a-t-il une meilleure méthode? Ou quelque chose que je peux étudier pour créer ce script?

2
nullXOR

Comment exécuter des scripts ou des commandes sur les modifications en état de verrouillage

Selon cette réponse sur U & L, vous avez essayé une commande obsolète dbus. À partir de 14.04, vous pouvez utiliser:

dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6'" | \
(
  while read X; do
    if [[ "$X" =~ desktop-lock ]]; then
      SCREEN_LOCKED;
    Elif [[ "$X" =~ desktop-unlock ]]; then
      SCREEN_UNLOCKED;
    fi
  done
)

ce qui fonctionne bien sur mon système (16.04).
(Merci pour les améliorations apportées par @Serg et @muru)

Bien sûr, vous devez remplacer SCREEN_LOCKED et SCREEN_UNLOCKED par les commandes ou les scripts que vous souhaitez exécuter en cas de modification de l'état de verrouillage, mais que vous avez testé et que tout fonctionne correctement.

2
Jacob Vlijm