web-dev-qa-db-ja.com

SSH経由でコマンドラインから画面を空白にするにはどうすればよいですか?

SSH接続を使用してコンソールでコマンドを実行し、黒い画面を表示する方法が必要です。モニターがスタンバイ状態にならないようにする必要があります。画面上にあるすべてのものを隠すには黒い画面が必要です。画面の内容を表示する別のコマンドを与えるまで、画面は黒になっているはずです。

追加:コマンドがUbuntu、Lubuntu、およびXubuntuで機能するのであれば良いでしょう。

追加2:ブランキングを必要とするプロジェクターもあります。 SSHを使用してサーバーに接続し、空白の画面を表示したい。プロジェクターの電源をオフにしようとすると、画面に「信号がありません」と表示されます。

12
JPX

簡潔な答え:

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とは限りません。 &Lに関するこの投稿 は、リモートマシンでDISPLAY変数を設定する優れたもののようです。

16
Jacob Vlijm

編集:この回答を提供してから質問が変更されました。役に立つかもしれないいくつかの情報を提供するので、私はこの答えを立てさせます。

コンソールで文字セル仮想コンソールの1つを意味する場合、 vlock をインストールします。

Sudo apt-get -y install vlock

その後、仮想コンソールをブラックアウトしてロックできます。

vlock

コンソールのロックを解除すると、画面は復元されません。画面の内容を失いたくない場合は、2番目のコンソールにログインすることをお勧めします。画面をロックする場合は、that2番目のコンソールに移動して入力します

vlock -a

これにより、すべてのコンソールがロックされ、コンソールの切り替えが防止されます。コンソールのロックを解除した後、メインの作業コンソールに切り替えて、画面の内容をそのまま見つけることができます。

3
AlexP

単に実行する:

gnome-screensaver-command -a

注:これは、システム設定で「ロック」オプションを無効にしない限り、ロック画面も呼び出します。

enter image description here

2
Android Dev