Não é realmente minha resposta, mas pode ser útil para outra pessoa também.
Ele vem do link e funciona no archlinux mais recente com o kde 5.7
loginctl lock-session
loginctl unlock-session
Eu uso o pam_usb e quero bloquear / desbloquear o computador quando o dispositivo USB é removido / inserido. Para o bloqueio eu uso qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
e funciona perfeitamente. Para desbloquear eu tentei uma série de comandos que eu encontrei (a maioria deles são agregados aqui ), mas eles não funcionam. Especificamente, se excluirmos aqueles com a sintaxe do KDE 4, eles se dividem em duas categorias: aqueles que usam qdbus (relevant path here, several variations exists) /MainApplication quit
, que suspendem completamente o Xorg, e aqueles que usam killall
contra o processo screenlocker, mas o processo é reiniciado instantaneamente depois disso! >
Então, minha pergunta é: como desbloquear a tela do KDE5 bloqueada com seu armário padrão programaticamente?
No moderno KDE Plasma, o comando é aparentemente:
qdbus --system org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/$session Unlock
O nome da sessão pode ser obtido em
qdbus --literal --system org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager \
org.freedesktop.ConsoleKit.Manager.GetSessions | sed 's/^.*\(Session[0-9]*\).*$//'
Cuidado, pois pode haver várias sessões!
Existem várias funções GetSession*
para diferentes casos de uso.
O problema é que todas essas funções , claro, requerem raiz!
Eu não sei como loginctl
contornaria isso, mas sugere que isso é possível. Caso contrário, talvez você possa usar sudo
e permitir que um script que faça isso seja executado sem inserir uma senha .
O bloqueio de tela está quebrado e o desbloqueio não é mais possível. Para desbloquear o switch em um terminal virtual (por exemplo, Ctrl + Alt + F2), faça o login e execute o comando: sessões de desbloqueio loginctl Depois volte para a sessão em execução (Ctrl + Alt + F7).
A mensagem acima aparece algumas vezes no meu laptop executando o Gentoo Stable com Plasma 5, OpenRC e ConsoleKit. O seguinte script que eu inicio do TTY1 desbloqueia com sucesso a sessão X11 no TTY7:
fitzcarraldo@clevow230ss ~ $ cat unlockKDEsession.sh
#!/bin/bash
# Screen locker broken in KDE with ConsoleKit
# See https://forums.gentoo.org/viewtopic-t-1046566.html
# and https://forums.gentoo.org/viewtopic-t-1054134.html
# Find which session is locked
session=Session$(ck-list-sessions | grep -B10 "x11-display = ':0" | grep -o -P '(?<=Session).*(?=:)')
# Create Bash script to unlock session
echo "#!/bin/bash" > /unlock.sh
echo "su -c 'dbus-send --system --print-reply --dest=\"org.freedesktop.ConsoleKit\" /org/freedesktop/ConsoleKit/$session org.freedesktop.ConsoleKit.Session.Unlock'" >> /unlock.sh
chmod +x /unlock.sh
# Run Bash script in another TTY
openvt -s -w /unlock.sh
Tags kde screensaver linux