Блокировка экрана через CLI?

8

Есть ли способ, которым я могу заблокировать экран в стиле CLI? Я пытаюсь ориентироваться на как можно больше менеджеров рабочего стола (в основном LightDM, но GDM, KDM, SLiM, XScreensaver и т. Д. Тоже подойдут), но я могу копать только для GDM и XScreensaver.

Для GDM это будет:

gnome-screensaver-command -l

Для XScreensaver:

xscreensaver-command -lock

Есть ли подобная команда для KDM и LightDM?

смеситель
источник
Можете ли вы запустить заставку и ssh в и ps и посмотреть, какая заставка работает, и определить, какую команду запустить? (как я нашел команду gnome-screensaver)
полином
1
man lightdmне выглядит слишком многообещающе ... moleberry.com/man/l/lightdm.1.html
jasonwryan
Возможно, вы можете попытаться управлять ими через d-bus (используя dbus-sendдля отправки соответствующего сообщения блокировки).
andcoz
@andcoz: Я видел несколько dbus-sendвещей, пока гуглил, но, к сожалению, ни одна из них не сработала. Я даже посмотрел на справочник по LightDM API для решения, но даже в этом ничего нет. Черт, я даже пытался взглянуть на источник пользовательской панели переключения Ubuntu (извините, не могу прочитать как 1 000 000 C). Я мог бы попытаться отправить список разработчиков по электронной почте за помощью ...
Blender
@polynomial: Это похоже на хорошее решение (может быть, опубликовать его в качестве ответа?). У меня нет второго компьютера для SSH, но я могу пытаться распечатывать список процессов каждую секунду или около того, чтобы понять, что происходит.
Блендер

Ответы:

10

Я немного погуглил / послал по электронной почте и получил эти две команды.

Чтобы заблокировать экран:

xflock4

Чтобы активировать переключение пользователей:

gdmflexiserver

Для Lightdm этот файл находится в странном месте (по крайней мере в Arch Linux):

/usr/lib/lightdm/lightdm/gdmflexiserver

Я объединил их в диалог кнопки выхода XFCE на случай, если кому-то интересно, так что патч доступен здесь: https://aur.archlinux.org/packages.php?ID=52816

смеситель
источник
Xflock4 должен иметь гном-заставку
Prvt_Yadav
4

Вы можете заблокировать все заставки на X, используя xdg-screensaver

xdg-screensaver lock

Это позаботится о кровавых деталях.

Эван Кэрролл
источник
1

Есть несколько DM-независимые, простые решения , такие как alock , тушить или xtrlock ( страница руководства ). Обратите внимание, что они могут даже не отображать окно ввода, запрашивающее пароль - вы просто вводите пароль, когда на экране ничего нет, и нажимаете Enter ( slockпо крайней мере, так).

Если вы хотите, чтобы шкафчик , чтобы иметь возможность отображать заставку и показать настраиваемое приглашение на не-блокировки, попробуйте xlockобеспечены xlockmore пакета (см эту информацию и справочную страницу ).

rozcietrzewiacz
источник
Я не ищу экран блокировки (у меня есть свой plock, для этого: P). Я ищу способ вызвать экран блокировки (что бы это ни было).
Блендер
1
Затем xautolock(который является частью xlockmore ) предоставляет эту функцию - взгляните на последние две ссылки, которые я разместил, и на xautolockстраницу руководства .
rozcietrzewiacz
1

Для приложения блокировки среды, не зависящего от среды, i3lockтакже есть возможность установить фон экрана блокировки.

Для LightDM вы можете работать light-lockerкак фоновый процесс в вашей сессии. Он заблокирует ваш сеанс, как только заставка запустится / система возобновит работу из режима ожидания.

Рохит
источник
0

Это не симпатичное, но рабочее решение для разблокировки сессии kde или lightdm из заставки через cli (командная строка):

qdbus | grep kscreenlocker_greet | xargs -I {} qdbus {} /MainApplication quit
Murz
источник