Как разблокировать экран в Ubuntu 14.04 LTS с помощью командной строки

Вопрос или проблема

Когда я использую Ubuntu 12.04, после нажатия кнопки “Заблокировать” в панели состояния на desktop, на экране появляется заблокированное окно.
Я использую другой компьютер, чтобы подключиться по SSH к этому заблокированному компьютеру. И использую команду

export DISPLAY=:0    
gnome-screensaver-command -d

чтобы разблокировать экран. Это работает хорошо.

Но теперь я обновил Ubuntu с 12.04 до 14.04. Когда я нажимаю кнопку “Заблокировать” из панели состояния, на экране появляется новый экран блокировки, который выглядит как unity-greeter.
Затем я использую ту же команду, что и раньше:

export DISPLAY=:0    
gnome-screensaver-command -d

Ничего не происходит~ Я не могу разблокировать экран с помощью команды.

Это выглядит как ошибка в Ubuntu. https://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/1307163

Но есть ли какое-либо решение для этой проблемы?

[обновление]

Я нашел, что если мы используем команду блокировки экрана из SSH

export DISPLAY=:0
gnome-screensaver-command -l

это отобразит классический экран блокировки gnome, как в Ubuntu 12.04.
И команда gnome-screensaver-command -d может разблокировать экран.

Есть ли способ переключиться на классический экран блокировки gnome при нажатии кнопки блокировки в панели состояния?

PS, я пробовал CompizConfig Settings Manager, но там нет опции для изменения экрана блокировки~~

Одно из решений – использовать альтернативный экран блокировки, например классический Linux xscreensaver.
это можно деактивировать с помощью командной строки с

xscreensaver-command -deactivate

Чтобы заблокировать экран через терминал (для Ubuntu 14.04 и 16.04) я использую:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

Поэтому, чтобы разблокировать, подойдет следующая команда:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Unlock

К сожалению, у меня не установлен SSH, чтобы это протестировать. Я могу протестировать это из терминала, когда экран уже разблокирован, и оно не выдает сообщения об ошибке.

Я нашел другой пост, где это должно работать:

dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call --print-reply --reply-timeout=20000 /org/gnome/ScreenSaver org.gnome.ScreenSaver.SetActive boolean:false

Здесь заявляется, что не требуется вводить пароль для разблокировки экрана. Полная тема здесь: (Разблокировать gnome-screensaver вместо деактивации)

Не уверен, как переключиться на классический экран блокировки gnome, однако ошибка gnome-screensaver-command обход определенно работает:

Сначала включите экранную клавиатуру:

gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true

Экранная клавиатура появляется, когда вы впервые входите в систему, но вы можете её закрыть.
Заблокируйте экран (это должно происходить после активации экранной клавиатуры)
Теперь gnome-screensaver-command -d работает для разблокировки экрана.

Должно работать с 14.04 из SSH:

export DISPLAY=:0
gnome-screensaver-command -d

Для 16.04 нужно также установить сессию dbus:

export DISPLAY=:0
export $(cat /proc/`pidof compiz`/environ | tr '\0' '\n' | grep DBUS_SESSION_BUS_ADDRESS )
gnome-screensaver-command -d

Или лучше просто используйте loginctl, который не требует никаких обходных путей:

loginctl unlock-sessions

Ответ или решение

Как разблокировать экран в Ubuntu 14.04 LTS с помощью командной строки

В процессе работы с операционной системой Ubuntu 14.04 LTS у пользователей может возникнуть необходимость разблокировать экран компьютера, когда он был заблокирован. Этот процесс отличается от предыдущих версий, таких как Ubuntu 12.04, из-за изменений в способах управления экранами. В данной статье мы рассмотрим различные методы, которые позволят вам разблокировать экран с помощью командной строки.

1. Использование dbus-send

Одним из наиболее эффективных способов разблокировки экрана в Ubuntu 14.04 LTS является использование команды dbus-send. Эта команда позволяет напрямую взаимодействовать с демоном D-Bus, что делает процесс управления сессиями более гибким:

export DISPLAY=:0
dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Unlock

Эта команда отправляет сигнал на разблокировку экрана, но требуется, чтобы сессия D-Bus была активна.

2. Использование gnome-screensaver-command

Если вы хотите использовать команду gnome-screensaver-command, сначала убедитесь, что система использует классический экранный блокировщик, так как в Ubuntu 14.04 он заменён на unity-greeter, который может быть менее удобен. Выполните следующие команды:

Заблокировать экран

export DISPLAY=:0
gnome-screensaver-command -l

Разблокировать экран

export DISPLAY=:0
gnome-screensaver-command -d

Имейте в виду, что при первой блокировке экрана после этого процесса, вам может понадобиться включить экранную клавиатуру, чтобы разблокировка работала:

gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true

3. Установка альтернативного экранного блокировщика

Если вы не удовлетворены состоянием gnome-screensaver, вы можете рассмотреть установку альтернативного экранного блокировщика, такого как xscreensaver. Он может быть установлен и настроен следующим образом:

sudo apt-get install xscreensaver

После установки вы сможете разблокировать экран с помощью:

xscreensaver-command -deactivate

4. Применение loginctl

Для более новых версий Ubuntu рекомендуется использовать loginctl, что обходится без дополнительных настроек и позволяет разблокировать сессии следующим образом:

loginctl unlock-sessions

Заключение

Разблокировка экрана в Ubuntu 14.04 LTS может потребовать дополнительных шагов по сравнению с предыдущими версиями, однако, используя описанные методы, вы сможете эффективно решать эту задачу. Если вы столкнулись с проблемами, рекомендуем обратиться к официальной документации или сообществу Ubuntu для получения дополнительной помощи и информации.

Оцените материал
Добавить комментарий

Капча загружается...