В Ubuntu 14.04 появился новый экран блокировки , похожий на экран входа в систему.
Я все еще могу заблокировать экран с помощью команды gnome-screensaver-command --lock
(как я всегда делал раньше), которая под 14.04 блокирует экран, но:
- Если вы запускаете его с рабочего стола, он блокирует экран с помощью нового экрана блокировки.
- Если вы запускаете его с виртуальной консоли или через SSH, он блокирует экран, используя старый экран блокировки .
Я также пытался использовать xdg-screensaver lock
, но он работает так же, как gnome-screensaver-command --lock
и (только использует новый экран блокировки, когда он запускается с рабочего стола).
Запуск light-locker-command --lock
не работал, так как light-locker
не установлен.
Я предполагаю, что должны быть некоторые различия между выполнением одной и той же команды с рабочего стола и выполнением ее через SSH / виртуальную консоль, но я не смог найти никакой разницы в переменных среды.
Итак, мой вопрос: как я могу заблокировать экран, используя новый экран блокировки Unity, а не старый экран блокировки из командной строки?
Этот вопрос , вероятно, связан с тем, что он запрашивает новую команду, которую нужно использовать, поэтому вот еще один вопрос: почему выполнение одной и той же команды блокировки дает разные результаты?
Обратите внимание, что gnome-screensaver
больше не используется в 14.04, согласно этому сообщению об ошибке :
Это не ошибка гнома-скринсейвера, этот компонент перестал использоваться в верном.
источник
dm-tool lock
приближается: оно блокирует экран, но (в отличие от экрана блокировки Unity по умолчанию) также позволяет переключать пользователей.dm-tool lock
и,dm-tool switch-to-greeter
кажется, делает то же самое: возвращает вас к экрану входа в систему (приветствие), который очень похож на экран блокировки.Ответы:
Я не
gnome-screensaver
установил, и единственная команда, которую я могу найти, которая работает, - это:источник
qdbus org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
gsettings set org.gnome.desktop.lockdown disable-lock-screen false
gsettings get org.gnome.desktop.lockdown disable-lock-screen
возвращаетсяfalse
. Теперь при запуске dbus-send нет вообще никакого вывода. Может, гном-скринсейвер нужен, чтобы это работало?org.gnome.ScreenSaver
интерфейса dbus, так что, вероятно, лучше общаться с интерфейсом Unity dbusПринятый ответ имеет правильную идею, за исключением того, что экран блокировки связан с панелью единства, хотя
org.gnome.ScreenSaver
, очевидно, является схемой типа Gnome, поэтому он может работать или не работать.Однако для Unity существует интерфейс dbus, и все, что нам нужно, это вызвать этот метод
com.canonical.Unity.Session.Lock
следующим образомПримечание стороны :
Доказательство того, что это связано с панелью единства, простое: когда экран заблокирован, процесс
/usr/lib/unity/unity-panel-service
изменится на/usr/lib/unity/unity-panel-service --lock-mode
tty1.источник
DISPLAY
переменной, но с dbus. Я не знаю, есть ли поверх ssh Unity сессия dbus или нет, поэтому я не могу помочь вам в этой части. Я спрошу вокруг, но пока это столько, сколько я могу сказать.dbus-launch --exit-with-session gnome-terminal
до этого. serverfault.com/a/411326Я недавно узнал, что это
xdg-screensaver lock
работает хорошо, и это тоже довольно простое решение!источник
Вы всегда можете отправить нажатия клавиш:
xdotool key super+l
.источник