Я решил это с помощью скрипта, привязанного к сочетанию клавиш: CTRL + SUPER + DELETE.
Создайте скрипт в / usr / local / bin и назовите его что-нибудь вроде lock_and_suspend:
$ sudo gedit /usr/local/bin/lock_and_suspend
Вот сценарий:
#!/bin/bash
xscreensaver-command -lock
sleep 2
xfce4-session-logout --suspend
Обновите его разрешения:
$ sudo chmod a+x /usr/local/lock_and_suspend
$ sudo chmod 711 /usr/local/lock_and_suspend
$ sudo chown yourusername /usr/local/bin/lock_and_suspend
И запустите его, просто набрав lock_and_suspend в командной строке. Или привяжите lock_and_suspend к сочетанию клавиш с помощью SettingsManager> Keyboard> сочетания клавиш приложения.
Это работает, просто заблокировав экран перед приостановкой системы. Команда sleep необходима, потому что блокировка экрана требует времени для вступления в силу. Приостановить остановит его до его завершения, если между ними нет паузы.
Вам может понадобиться установить xscreensaver. Экран блокировки обычно выполняется xlock4. Но xlock4 просто перебирает возможные блокировщики экрана, такие как xscreensaver, и выбирает тот, который работает. Я не помню точно, почему я это сделал. Достаточно сказать, что это не сработало, когда я попытался заблокировать экран с помощью xflock4 (с использованием сочетания клавиш по умолчанию CTRL + ALT + DEL) перед приостановкой системы.
В любом случае, дело в том, что вы на самом деле делаете три вещи: блокировка экрана, приостановка системы, закрытие крышки. Исходя из опыта, вы должны убедиться, что система заблокирована и приостановлена, прежде чем закрывать крышку, потому что часто случается так, что когда вы полагаетесь на какую-либо настройку блокировки и приостановки при закрытии крышки, иногда происходит сбой, и вы ' Мы не можем проверить, не открыв крышку. Но поскольку открытие крышки выводит систему из режима ожидания, как вы узнаете, приостановлена ли она? (Это случай кота Шредингера или мыши Фурдана). Единственный способ убедиться, что вы заблокировали и приостановили работу системы перед тем, как закрыть крышку. И единственный удобный способ сделать это с помощью одной комбинации клавиш (CTRL + SUPER + DEL).
Возможно, вам придется закрыть бэкдор для блокировки экрана xscreensaver .
В какой-то момент я мог установить light-locker и настроить его для блокировки экрана . Я не помню, было ли это на самом деле необходимо.
$ sudo apt install light-locker
$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command --lock" --create -t string
Также может потребоваться включить xscreensaver и диспетчер питания в меню «Настройки»> «Сессия и запуск»> «Автозапуск приложения». И возможно удалить / отключить gnome-screensaver.
Возможно, вы захотите установить xfce4-power-manager и настроить его (используя менеджер настроек или xfce4-power-manager --customize
) для «приостановки», «когда крышка ноутбука закрыта». В этом случае вам может потребоваться настроить диспетчер питания для правильной обработки события закрытия крышки . Но я был склонен заблокировать + приостановить, прежде чем закрывать крышку.