J'utilise pam_usb et souhaite verrouiller / déverrouiller l'ordinateur lorsque la clé USB est retirée / insérée. J'utilise le verrouillage qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
et cela fonctionne parfaitement. Pour le déverrouillage, j'ai essayé une série de commandes que j'ai trouvées (la plupart d'entre elles sont agrégées ici ), mais ils ne fonctionnent pas. Plus précisément, si nous excluons ceux avec la syntaxe KDE 4, ils tombent dans 2 catégories: ceux qui utilisent qdbus (relevant path here, several variations exists) /MainApplication quit
qui pendent complètement mon Xorg, et ceux qui utilisent killall
contre le processus de l'écran, mais le processus redémarre immédiatement après cela!
Ma question est donc la suivante: comment déverrouiller par programmation l’écran de KDE5 verrouillé avec son casier standard?
la source
qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock
active l’écran de veille en mode "verrouillé" {vous pouvez remplacer le dernier fragment parorg.freedesktop.ScreenSaver.SetActive
true
mettre en place l’économiseur sans verrou} et, dans les deux cas, l’écran peut revenir avec ce dernier avecfalse
- mais le moniteur (pas tout l'écran car j'ai deux moniteurs dans un virtuel ...kill `ps ax | grep "kscreenlocker" | grep -v grep | cut -d" " -f 1`
ne vous sera pas d'une grande aide même si cela fonctionne dans mon cas particulier ...qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive false
ne déverrouille pas l'écran sur mon Arch Linux avec KDE Plasma 5.6.1... org.freedesktop.SetActive true
(c'est-à-dire en mode "économiseur") plutôt que via... org.freedesktop.Lock
(c'est-à-dire en mode "verrouillé"). C’est pourquoi j’ai dû recourir àkill
sur toutkscreenlocker
processus en cours d'exécution sous mon UID. kscreenlocker est ce qui exécute le ou les écrans de veille sélectionnés au moins dans ma configuration, cependant YMMV .Réponses:
Pas vraiment ma réponse, mais cela pourrait aussi être utile à quelqu'un d'autre.
Ça vient de https://forum.kde.org/viewtopic.php?f=289&t=130691#p350000 et cela fonctionne sur le dernier archlinux avec kde 5.7
la source
qdbus --system org.freedesktop.login1 /org/freedesktop/login1/session/self org.freedesktop.login1.Session.Lock
(etUnlock
de même) - Vous pouvez probablement faire la même chose avecdbus-send
, mais je ne connais pas cet outil. En ce qui concerne les systèmes dépourvus de systemd, il y aura toujours une implémentation de logind car la plupart des environnements de bureau exigent une logind de nos jours.Sur le plasma KDE moderne, la commande est apparemment:
Le nom de la session peut être obtenu à partir de
Attention, il peut y avoir plusieurs sessions! Il y a plusieurs
GetSession*
fonctions pour différents cas d'utilisation cependant.Le problème est que toutes ces fonctions bien sûr besoin de racine!
Je ne sais pas comment
loginctl
contournerait cela, mais cela suggère que c'est possible. Sinon peut-être que vous pouvez utilisationsudo
et autoriser l'exécution d'un script qui le fait sans entrer de mot de passe .la source
Le casier d'écran est cassé et le déverrouillage n'est plus possible. Pour déverrouiller le basculement vers un terminal virtuel (par exemple, Ctrl + Alt + F2), connectez-vous et exécutez la commande: loginctl unlock-sessions Revenez ensuite à la session en cours (Ctrl + Alt + F7).
Le message ci-dessus apparaît parfois sur mon ordinateur portable sous Gentoo Stable avec Plasma 5, OpenRC et ConsoleKit. Le script suivant que je lance à partir de TTY1 déverrouille avec succès la session X11 sur TTY7:
la source