Utilizo pam_usb y quiero bloquear / desbloquear la computadora cuando se extrae / inserta una memoria USB. Para bloqueo uso qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
y funciona perfectamente. Para el desbloqueo, he probado una serie de comandos que he encontrado (la mayoría de ellos están agregados). aquí ), pero no funcionan. Específicamente, si excluimos a aquellos con sintaxis de KDE 4, se dividen en 2 categorías: los que usan qdbus (relevant path here, several variations exists) /MainApplication quit
que cuelgan mi Xorg completamente, y los que usan killall
contra el proceso de screenlocker, pero el proceso se reinicia instantáneamente después de eso!
Entonces, mi pregunta es: ¿cómo desbloquear la pantalla KDE5 bloqueada con su casillero estándar mediante programación?
fuente
qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock
activa el protector de pantalla en modo "bloqueado" {puede reemplazar el último fragmento conorg.freedesktop.ScreenSaver.SetActive
true
para poner el ahorrador sin un candado} y, en cualquier caso, puede recuperar la pantalla con este último confalse
- pero el monitor (no toda la pantalla, ya que tengo dos monitores en un virtual ...kill `ps ax | grep "kscreenlocker" | grep -v grep | cut -d" " -f 1`
no va a ser de mucha ayuda para usted, aunque funciona en mi caso particular ...qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive false
no desbloquea la pantalla en mi Arch Linux con KDE PLasma 5.6.1... org.freedesktop.SetActive true
(es decir, en modo "ahorro") en lugar de a través de... org.freedesktop.Lock
(es decir, en el modo "bloqueo"). Por eso tuve que recurrir a usarkill
en cualquierkscreenlocker
procesos que se ejecutan bajo mi UID. kscreenlocker es lo que ejecuta los salvapantallas seleccionados al menos en mi configuración, sin embargo YMMV .Respuestas:
No es realmente mi respuesta, pero también podría ser útil para otra persona.
Viene de https://forum.kde.org/viewtopic.php?f=289&t=130691#p350000 y funciona en el último archlinux con kde 5.7
fuente
qdbus --system org.freedesktop.login1 /org/freedesktop/login1/session/self org.freedesktop.login1.Session.Lock
(yUnlock
similarmente - probablemente puedas hacer lo mismo condbus-send
, pero no estoy familiarizado con esa herramienta. En cuanto a los sistemas que no tienen systemd, todavía habrá una implementación logind porque la mayoría de los entornos de escritorio requieren logind en estos días.En el plasma de KDE moderno, el comando es aparentemente:
El nombre de la sesión se puede obtener de
¡Cuidado, ya que puede haber múltiples sesiones! Hay varios
GetSession*
Funciones para diferentes casos de uso sin embargo.El problema es ese todas estas funciones por supuesto requiere root!
No se como
loginctl
evitaría esto, pero sugiere que es posible. De lo contrario tal vez puedas utilizarsudo
y permitir que se ejecute un script que hace esto sin ingresar una contraseña .fuente
El bloqueador de pantalla está roto y ya no es posible desbloquear. Para desbloquear el cambio a un terminal virtual (por ejemplo, Ctrl + Alt + F2), inicie sesión y ejecute el comando: sesiones de desbloqueo loginctl Después, vuelva a la sesión en ejecución (Ctrl + Alt + F7).
El mensaje anterior aparece a veces en mi computadora portátil que ejecuta Gentoo Stable con Plasma 5, OpenRC y ConsoleKit. La siguiente secuencia de comandos que lanzo desde TTY1 desbloquea con éxito la sesión X11 en TTY7:
fuente