Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как заблокировать экран из терминала?  (Прочитано 14741 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gernot Bastian

  • Автор темы
  • Активист
  • *
  • Сообщений: 259
    • Просмотр профиля
Хочу сделать горячие клавиши для ждущего режима. Всё почти получилось, но экран не блокируется, после редактирования sudoers (разрешил без пароля выполнять pm-suspend для своего пользователя). Горячую клавишу нажимаю - комп выходит в ждущий режим, а когда я его активирую, то появляется мой рабочий стол. Мне это не особо нравится - вдруг дети решат побаловаться или ещё чего...хочу написать скриптик bash, который будет выполняться при нажатии горячих клавиш для ждущего режима, но не нашёл ответа в инете, какой командой можно вызвать блокировку экрана (запрос пароля).
И да, при выходе в ждущий режим с помощью штатной менюшки в правом верхнем углу - всё получается нормально, с запросом пароля. Но мне хочется настроить горячие клавиши...
есть идеи?
Невежество недолговечно, знание - навсегда.
Debian 9.0 (GNOME)

Оффлайн maks05

  • Старожил
  • *
  • Сообщений: 6787
    • Просмотр профиля
Re: Как заблокировать экран из терминала?
« Ответ #1 : 15 Октября 2013, 21:38:54 »
А на клавиатуре разве нет специальной функции?

Давно не работал в KDE, но по-моему, можно сделать проще: прыться в настройках системы и установить функцию запроса пароля при выходе из любогоражима. А в сам режим вводить по наведению мышки в угол экрана.
« Последнее редактирование: 15 Октября 2013, 21:42:15 от maks05 »

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Как заблокировать экран из терминала?
« Ответ #2 : 15 Октября 2013, 21:43:51 »
roiii, стандартная команда для блокировки экрана почти во всех DE - Ctrl+Alt+L

Оффлайн Gernot Bastian

  • Автор темы
  • Активист
  • *
  • Сообщений: 259
    • Просмотр профиля
Re: Как заблокировать экран из терминала?
« Ответ #3 : 15 Октября 2013, 22:31:21 »
А на клавиатуре разве нет специальной функции?

Давно не работал в KDE, но по-моему, можно сделать проще: прыться в настройках системы и установить функцию запроса пароля при выходе из любогоражима. А в сам режим вводить по наведению мышки в угол экрана.
У меня Unity, а не KDE. Забыл уточнить.
roiii, стандартная команда для блокировки экрана почти во всех DE - Ctrl+Alt+L
Нет, это не то. Если я нажму Ctrl+Alt+L, я просто заблокирую экран, но не перейду в ждущий режим. Мне нужна блокировка экрана, но такая, чтобы можно было выполнить через терминал (для bash-скрипта).

P.S. Задумка такова: я нажимаю некую комбинацию клавиш (допустим, Ctrl+Esc, но не суть...), комп вначале должен заблокировать экран (действие эквивалентное Ctrl+Alt+L), а затем перейти в ждущий режим, при успешной блокировке - то есть, в моём скрипте я хочу сделать такую схемку:
#!/bin/bash
sudo [ЗАБЛОКИРОВАТЬ ЭКРАН] && sudo pm-suspend
« Последнее редактирование: 15 Октября 2013, 22:38:11 от roiii »
Невежество недолговечно, знание - навсегда.
Debian 9.0 (GNOME)

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Re: Как заблокировать экран из терминала?
« Ответ #4 : 15 Октября 2013, 22:37:52 »
У меня Gnome-fallback Ubuntu 12.04.3

Ctrl+Alt+L блокирует экран, и через время экран выключается вовсе, если потревожить, что нибуть, то выскакивает введите пароль. После ввода пароля, я в системе.

Ничего не настраивал, само так работает.
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн Gernot Bastian

  • Автор темы
  • Активист
  • *
  • Сообщений: 259
    • Просмотр профиля
Re: Как заблокировать экран из терминала?
« Ответ #5 : 15 Октября 2013, 22:43:50 »
У меня Gnome-fallback Ubuntu 12.04.3

Ctrl+Alt+L блокирует экран, и через время экран выключается вовсе, если потревожить, что нибуть, то выскакивает введите пароль. После ввода пароля, я в системе.

Ничего не настраивал, само так работает.
В Ubuntu 13.04 всё точно так же. Но мне нужно, чтобы системный блок не работал, а уходил в ждущий режим.

Короче, решил свою проблему с помощью askubuntu. В скрипт залил следующее (для тех, кто не особо в английском):
dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Suspend

После этого можно забиндить удобную для вас комбинацию клавиш для быстрого ухода в Ждущий режим. Причём, что порадовало:
1) редактировать sudo visudo вовсе не надо, т.к. скрипт работает без root`a
2) после выхода из ждущего режима появляется окошко ввода пароля.
Единственное что разочаровало, так это сам скрипт - для меня похож на китайскую грамоту (нет простоты). Прям как какая-то магия))) - ничего не понятно, но всё работает. Наверное, с помощью этого dbus`a можно делать очень много интересных вещей...надо бы как-нибудь почитать мануальчик по нему.

Вопрос решён. Всем спасибо!

Нашёл более простое и стройное решение:
#!/bin/bash
gnome-screensaver-command --lock
sudo pm-suspend
В данном случае, gnome-screensaver-command --lock - и есть искомая изначально мною консольная команда для блокировки экрана.
Только у него есть один недостаток: нужно добавить в sudoers режим NOPASSWD для пользователя, использующего pm-suspend - а иначе придется постоянно вводить пароль для выхода в ждущий режим.
« Последнее редактирование: 16 Октября 2013, 00:46:35 от roiii »
Невежество недолговечно, знание - навсегда.
Debian 9.0 (GNOME)

 

Страница сгенерирована за 0.017 секунд. Запросов: 21.