私は通常、2つの状況で定期的にラップトップをスリープモードに切り替えます。
- 何かを読んだり話したりする短い時間(数分)
- ランチタイムと出退勤時間が長い場合(1時間以上)
makeおよびsetコマンドのようにラップトップをスリープモードに切り替えるときは、スリープモードを設定するか、またはに設定する必要があるかをdeep
判断できるツールまたはスクリプトがあるかどうか疑問に思います。s2idle
suspend_to_idle
suspend_to_deep
基本的にこれらの2つのオプションを切り替えるスクリプトを書くことができますが、/sys/power/mem_sleep
a)sudoが必要で、b)ファイルの変更がすぐに考慮されるかどうかわかりません(そうだと思いますが、どこで確認するのかわかりません)、ご存知の方は情報をいただきありがとうございます。 )
編集:理論的根拠は、ラップs2idle
トップがdeep
睡眠から目を覚ますときに15〜30秒間遅い動作を防ぐために短い睡眠時間を使用し、同時により長い睡眠時間でバッテリーを節約するために後者を使用することです。
答え1
変更がすぐに反映されたことを確認できるように移行を実行するスクリプトを作成しました。/sys/power/mem_sleep
少し退屈でしたが効果がありました。
fcontent=$(cat /sys/power/mem_sleep)
if [ "$fcontent" = "s2idle [deep]" ]; then
echo "s2idle" | sudo tee /sys/power/mem_sleep
else
echo "deep" | sudo tee /sys/power/mem_sleep
fi;
答え2
主な答えに対する代替案または追加事項:
~/bin
2つの別々のスクリプト(内)と2つの対応するランチャーを作成しました。
suspend_deep.sh
:
#!/bin/sh
echo deep | sudo tee -a /sys/power/mem_sleep
suspend idle
:
#!/bin/sh
echo s2idle | sudo tee -a /sys/power/mem_sleep
送信機の位置は次のとおりです~/.local/share/applications
。
[Desktop Entry]
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true ~/bin/suspend_deep.sh
Icon=system-suspend
Name[en_US]=Suspend deep
Name=Suspend deep
Type=Application
Terminal=false
そして:
[Desktop Entry]
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true ~/bin/suspend_idle.sh
Icon=system-suspend
Name[en_US]=Suspend idle
Name=Suspend idle
Type=Application
Terminal=false
現在の状態のみを変更するスイッチと比較して、このソリューションは以下のように現在の状態がわからない場合や期待どおりに機能しない場合に便利です。私にこれが起こりました。。
答え3
マザーボードとカーネルがs2idleとs2ramの両方をサポートしている場合は、これらのコマンドを実行してすぐにサスペンドをトリガーし、必要な状態を取得できます。
s2ramの場合:
echo "mem" > /sys/power/state
s2idleの場合:
echo "freeze" > /sys/power/state
システムによって異なる場合があります。どのオプションがあるかを確認してください。
cat /sys/power/state
ただし、root権限がないとこれを達成する方法はありません。