Як можна зачистити екран із командного рядка через SSH?


12

Мені потрібен спосіб показати чорний екран, запустивши команду в консолі, використовуючи з'єднання SSH. Монітор не повинен переходити в режим очікування, мені просто потрібен чорний екран, щоб приховати все, що є на екрані. Екран повинен бути чорним, поки я не дам ще одну команду для відображення вмісту екрана.

Доповнення: Було б добре, якби команда працювала в Ubuntu, Lubuntu та Xubuntu.

Додаток 2: У мене також є проектор, який потребує блокування. Я хочу використовувати SSH для підключення до свого сервера та показу порожнього екрану. Якщо я спробую вимкнути проектор, на екрані не відображається "Без сигналу".


Відповіді:


16

Коротка відповідь:

xrandr --output DVI-I-1 --brightness 0

де DVI-I-1назва вашого екрана

Навпаки:

xrandr --output DVI-I-1 --brightness 1

щоб знову встановити нормальну яскравість.

Щоб отримати ім’я екрана

Просто запустіть команду:

xrandr

У висновку ви знайдете ім'я екрана, у рядку, у тому числі connected

Невеликий сценарій, щоб або затемнити екран, або повернути його до нормального

Сценарій можна використовувати для встановлення (всіх) підключених екранів до чорного та навпаки. Сценарій автоматично знаходить ваші екрани.

#!/usr/bin/env python3
import subprocess
import sys

arg = sys.argv[1]

screens = [l.split()[0] for l in subprocess.check_output("xrandr").decode("utf-8").splitlines()
           if " connected" in l]

val = "0" if arg == "black" else "1"
for s in screens:
    subprocess.Popen(["xrandr", "--output", s, "--brightness", val])

Бігти

  • Скопіюйте скрипт у порожній файл, збережіть його як set_black.py
  • Запустити його або за допомогою:

    python3 /path/to/set_black.py black
    

    щоб затемнити екран, або

    python3 /path/to/set_black.py normal
    

    щоб знову встановити яскравість.


Хоча відповідь вище повинен працювати нормально на всіх дистрибутивах Ubuntu локально , питання виявляється на ssh / remote (інформація була відредагована у запитання).

У випадку віддаленої ситуації нам потрібно буде $DISPLAYправильно встановити змінну. Якщо змінна відображення, наприклад :0, нам буде потрібно запустити сценарій з:

DISPLAY=:0 python3 /path/to/script.py black

Змінна не обов'язково, :0хоча. Ця публікація на U&L здається чудовою, яка встановлює DISPLAYзмінну на віддаленій машині.


Але чи не доведеться вам сліпо вводити команду, щоб повернути її назад?
YouAGitForNotUsingGit

@AndroidDev Я припускаю, що це сценарій.
Яків Влійм

2
@JacobVlijm Схоже, що 'DISPLAY =: 0 xrandr' і 'DISPLAY =: 0 xrandr - вихідний HDMI1 - яскравість 0'. Дякую!
JPX

1
Але я встановив свій сценарій на + x
Terrance

1
@JPX Я використовував би повний шлях, оскільки ми не знаємо, де ми :)
Яків Влійм

3

Редагувати: Питання було змінено з моменту надання відповіді. Я дам цю відповідь, оскільки вона містить деяку інформацію, яка може бути корисною.

Якщо під консоллю ви маєте на увазі одну з віртуальних консолей комірки символів, то встановіть vlock:

sudo apt-get -y install vlock

Потім можна затемнити та заблокувати віртуальну консоль:

vlock

При розблокуванні консолі екран не відновлюється. Якщо ви не хочете втрачати вміст екрану, пропоную увійти на другу консоль; коли ви хочете заблокувати екран, перейдіть на цю другу консоль і введіть

vlock -a

Це заблокує всі консолі та запобіжить переключенню консолі. Після розблокування консолей ви можете переключитися назад на головну робочу консоль і знайти вміст екрану неушкодженим.


Кращим варіантом відновлення попереднього сеансу є використання термінального мультиплексора, наприклад tmux або екрана, і від'єднання сеансу, блокування консолі та повторне приєднання до попереднього сеансу. Бонус: ви можете повністю вийти з системи або від'єднатись від нього, а також продовжувати сеанс пізніше.
Девід Фоерстер

2

Просто запустіть:

gnome-screensaver-command -a

Примітка. Це також буде викликати блокувальний екран, якщо ви не відключите опцію "Блокування" в системних налаштуваннях:

введіть тут опис зображення


Це також викличе заблокований екран.
Яків Влійм

@JacobVlijm - Це не для мене.
YouAGitForNotUsingGit

@ AndroidDev Це дивно, Ubuntu 16.04 тут.
Яків Влійм

Це залежить від того, як ви налаштували "Налаштування системи → Яскравість та блокування". Налаштування "Блокування ON / OFF" і "Блокування екрана після ..." контролюють поведінку.
Байт-командир

@JacobVlijm - Відредаговано
YouAGitForNotUsingGit
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.