特定のアクティビティや、より大きなファイルのダウンロードやフルスクリーンビデオの視聴など、長時間実行されるタスクの間、コンピューターを起動したままにしておきたいと思います。
ディスプレイがスリープ状態にならないようにすることで、Caffeineを使用してコンピューターがスリープ状態にならないようにします。これは私のMacではうまくいきましたが、Ubuntuではうまくいきません。
これどうやってするの?
Caffeineがコンピューターをスリープ状態にしない理由はわかりません。 Ubuntuのアイドル時間はキーボードまたはマウスでユーザーアクティビティが検出されない時間と同等であるためだと思われます。
Caffeineがするように(そうするべきです)コンピューターをスリープ状態に保つためのソリューションを探している場合、以下のソリューションが機能するはずです。 14.04でテストしました。 1つの同じスクリプトに一緒に保存する必要がある2つの小さなスクリプトが存在します。キーの組み合わせを使用して、オンまたはオフに切り替えることができます(トグル)。一度押すと、メッセージに現在の状態が表示されます:
または:
基本的には、マイナーなユーザーアクションをシミュレートする小さなバックグラウンドスクリプト(キープレス Ctrl)アイドル時間が定義された時間を超えた場合、コンピューターがスリープ状態になったり画面がブランクになったりするのを防ぎます。キープレス自体は無意味であり、フルスクリーンでビデオを再生するのに影響はありません。
xprintidle
およびxdotool
をインストールする必要があります。
Sudo apt-get install xprintidle xdotool
(inotify-tools
はデフォルトでbuntにインストールする必要がありますが、Xu-またはLubuntuには当てはまらない場合があります)
以下のスクリプトは、オン/オフを切り替え、空のファイルにコピーし、insomnia.py
(名前をそのままにして)として保存し、実行可能にします(!)
#!/usr/bin/env python3
import os
import subprocess
script_dir = os.path.dirname(os.path.abspath(__file__))
try:
pid = subprocess.check_output(["pgrep", "-f", "caf.py"]).decode("utf-8").strip()
subprocess.Popen(["kill", pid])
subprocess.Popen(["notify-send", "Computer doesn't stay awake..."])
except:
subprocess.Popen(["/bin/bash", "-c", script_dir+"/"+"caf.py"])
subprocess.Popen(["notify-send", "Computer stays awake..."])
caf.py
(名前をそのままにして)として保存し、実行可能にします(!)#!/usr/bin/env python3
import subprocess
import time
seconds = 120 # number of seconds to start preventing blank screen / suspend
while True:
curr_idle = subprocess.check_output(["xprintidle"]).decode("utf-8").strip()
if int(curr_idle) > seconds*1000:
subprocess.call(["xdotool", "key", "Control_L"])
time.sleep(10)
両方のスクリプトを同じフォルダーに保管することが重要です!
次に、カフェインの置き換えのオンとオフを切り替えるキーボードショートカットを追加します。「システム設定」>「キーボード」>「ショートカット」>「カスタムショートカット」
コマンドを追加します。
/path/to/insomnia.py
お好みのキーの組み合わせへ
それでおしまい。
また、ここでは、ネットワークアクティビティまたはフォルダーサイズの変化に基づいてアクティビティを判断するため、よりインテリジェントなスクリプトソリューションをいくつか利用することもできます。
たとえば、バックアップまたはトレントクライアントの動作中にコンピューターを起動したままにする場合は、dhiyaによるリンクの2番目のソリューションを使用します。ネットワークトラフィックをチェックし、トラフィックが停止するまで起動し続けます。ワイヤレスLANではなくイーサネットを使用している場合は、コードで「wlan0」を「eth0」に変更することを忘れないでください。
2015年9月17日更新:ネットワークトラフィックまたはユーザーアクティビティに基づいてシステムを起動状態に保ち、強制的に中断するために、下のリンクからdhiyaのコードを変更しましたデスクトップセッションがネットワークトラフィックなしでロック/ログイン画面で終了する場合。プログラムは、すべてをログファイルに記録します。ログファイルを管理するための構成も提供されています。私はプログラムに「Keep Awake」という名前を付けました。
Jacob Vlijmの非常に役立つスクリプトを出発点として使用して、構成オプション、バッテリー認識などを備えた本格的なアプリに変えました。
GitHubで取得する ができます。インストールは不要です。ただ:
.tar.gz
をダウンロードして、ファイルを展開します(gitユーザーの場合はmasterブランチを複製します)。 $PATH
にそれを置くことはnot必要ではありません。依存関係をインストールします。
Sudo apt install xdotool xprintidle
ラップトップを使用している場合は、acpi
も必要になります。
sleep_inhibit
を実行します。cleanup.py
を実行して、すべての質問に必ずyesと答えてください。その後、ディレクトリを削除すると、すべてのトレースが削除されます。