Como desbloquear a tela do script no KDE Plasma 5?

5

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?

    
por Ruslan Prokopchuk 27.02.2016 / 03:17

3 respostas

5

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
    
por 14.07.2016 / 12:57
0

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 .

    
por 18.03.2018 / 19:42
0

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
    
por 14.04.2018 / 09:39