Как заблокировать экран рабочего стола через командную строку?

Ответы:

82

Вы можете заблокировать компьютер, запустив gnome-screensaver-commandс -lфлагом , как так:

gnome-screensaver-command -l

Однако это будет работать, только если у вас запущен Gnome Screensaver для вашего сеанса (должен быть - если вы его не отключили), вы можете запустить его из командной строки с помощью:

gnome-screensaver
Марко Чеппи
источник
10
cinnamon-screensaver-command -lдля корицы! ;))
4
Аналогично, используйте mate-screensaver-command -lдля рабочего стола MATE.
alanaktion
28
gnome-screensaver-command -l

Если вы находитесь в другом (настольном) сеансе (например, виртуальная консоль, переключился на другой вход в систему, SSH), укажите отображение явно ( :0это отображение по умолчанию):

DISPLAY=:0 gnome-screensaver-command -l

Чтобы разблокировать, используйте опцию -d( --deactivate).

надрез
источник
1
Вы можете уточнить мне опцию DISPALY =: 0?
Renjith G
1
Извините за мой английский ... DISPLAY - это переменная, определяющая, в каком окне отображается программа системы X Window (это может быть другой монитор). В TTY эта переменная пуста. По умолчанию первое отображение «: 0.0». Так что используйте DISPLAY =: x перед вашей командой, указывает на каком дисплее запустить команду. И используйте DISPLAY =: 0 или DISPLAY =: 0.0 указывает: запустите программу на первом дисплее.
Снип
@RenjithG это совершенно ясно, если вы об этом думаете, также, пожалуйста, не будьте грубым с автором предыдущего комментария.
ζ--
Это работает отлично, спасибо! Теперь я могу добавить сочетание клавиш, чтобы исправить сломанную команду блокировки экрана.
Домих
18

gnome-screensaver-command --lock сделаю это.

mgunes
источник
8

В более новых версиях GNOME 3 gnome-screensaverбольше нет.

Общее решение, кажется,

xdg-screensaver lock

Вы также можете напрямую вызвать dbus ( источник ):

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

Кроме того , кажется , что они отняли возможность оон блокировки экрана из командной строки.

Мэриан
источник
да. очень хороший ответ. одна команда, чтобы управлять ими всеми! :-)
solsTiCe
4

Под KDE dm-tool lockбудет работать (у меня на Kubuntu 15.04).

pbhj
источник
1

Вот длинный способ сделать это (добавив более быстрый способ ниже):

чтобы сделать его еще проще, вы можете добавить исполняемый скрипт к пути к исполняемому файлу, назовите его «lock», и тогда блокировка экрана будет так же проста, как и «lock» в командной строке.

Вот как это сделать:

mkdir ~/bin

vim ~/bin/lock

#!/bin/bash
gnome-screensaver-command -l

сохранить и выйти

chmod +x ~/bin/lock

не забудьте добавить ~ / bin в ваш ~ / .profile - отметьте точку в начале имени файла одним словом предостережения об этом, убедитесь, что вы добавили его в нужный файл. Вот что .profile говорит об этом:

# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.

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

vim ~/.profile # or one of the the other files if they exist

добавить в конце следующее:

# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"

в этот момент вы можете запустить следующий ярлык из

you@yourUbuntu:~$ lock

[EDIT] Вот простой и быстрый способ сделать это: добавьте псевдоним в ваш файл ~ / .bashrc, который выполняется при каждом открытии оболочки, таким образом гарантируя, что псевдоним сохраняется:

vim ~/.bashrc
# set lockscreen
alias lock="gnome-screensaver-command -l"

результат тот же, но быстрее

Георгий Могилевский
источник
0

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

Например:

Алоис Махдал
источник