web-dev-qa-db-ja.com

画面(モニター)をオフにせずにロックする方法は?

最近の bug が原因で、画面がオフになるたびに、元に戻すことができません。

現在、コンピューターがロックされた後に画面がオフになります。これは、コンピューターを完全に再起動するまでロックできないことを意味します。

ロックする方法はありますが、モニターはスリープ/オフになりませんか?

4
jcora

画面が眠らないようにする解決策が必要または必要であるが、しばらくしてdoes画面を暗く/ロックする場合、別の解決策があります:システムの独自のdim/lockオプションの代わりに、以下のスクリプトを使用してバックグラウンドで実行します。 xprintidleをインストールする必要があります。

設定方法:

  • システム設定ですべての薄暗い/ロックオプションを無効にします。 (明るさとロックで[〜#〜] and [〜#〜]「エネルギー」設定で)

  • xprintidleをインストールします。

    Sudo apt-get install xprintidle
    
  • スクリーン名を見つけます。ターミナルで実行:

    xrandr
    

    「接続済み」と表示されている行で名前を探します。あなたのスクリーン名は例えばVGA-1またはDVI-I-1

  • 以下のスクリプトをコピーし、正しいscreen_name、画面をロック/暗くするまでのアイドル時間を設定し、空のファイルに貼り付けます。名前を付けて保存lock_dim.py

スクリプト

#!/usr/bin/env python3

import subprocess
import time

seconds = 600 # number of seconds to wait before lock/dim the screen
screen_name = "DVI-I-1" # example, replace it with your screen's name

awake = True

while True:
    curr_idle = subprocess.check_output(["xprintidle"]).decode("utf-8").strip()
    if awake == True:
        if int(curr_idle) > seconds*1000:
            command1 = "gnome-screensaver-command -l"
            command2 = "xrandr --output "+screen_name+" --brightness 0.1"
            subprocess.call(["/bin/bash", "-c", command1])
            subprocess.call(["/bin/bash", "-c", command2])
            awake = False
        else:
            pass
    Elif awake == False:
        if int(curr_idle) > seconds*1000:
            pass
        else:
            command3 = "xrandr --output "+screen_name+" --brightness 1"
            subprocess.call(["/bin/bash", "-c", command3])
            awake = True
    time.sleep(2)

端末を開いてスクリプトをテストし、次を入力します。

python3 /path/to/lock_dim.py

希望どおりに機能する場合は、スタートアップアプリケーションに追加します。ダッシュ> [スタートアップアプリケーション]> [追加]を開き、コマンドを追加します。

python3 /path/to/lock_dim.py
2
Jacob Vlijm