答え1
クイックチェックソースコード現在のバージョンのPythonではこの機能をサポートしていないとマークされていますが、これについて少し知ってプログラミングする方法を知っていれば、直接xautolock 2.2
実装することは難しくありません。C
X
その理由は次のとおりです。何かの状態を知りたい時はxautolock
いつでも欲しい状態もわかります。したがって、xautolock -disable
オフにしたい場合は解放すればよく、xautolock -enable
その逆の場合も同様です。これはxautolock
他のすべての設定には影響しません。
提案どおりに状態を直接追跡することも可能ですが、やや信頼できず、エラーが発生しやすいです。
答え2
ほとんどのメディアプレーヤーに組み込まれている機能を使用して管理でき、xautolock
Lockerと効果的に機能します。
ユーティリティ車両そしてプレイヤーどちらにもスクリーンセーバーのオプションがあります。
--スクリーンセーバーを停止、--スクリーンセーバーを停止しない 起動時にスクリーンセーバー(またはスクリーンブレーカーなどのメカニズム)をオフにしてから再度オンにします。 終了時に再度開きます(デフォルト:はい)。プレイヤーがプレイしているとき、スクリーンセーバーは常に再びアクティブになります。 一時停止しました。 すべてのビデオ出力またはプラットフォームがこの機能をサポートしているわけではありません。実装する場合もあり、 しかし、うまくいきません(GNOMEで頻繁に発生します)。以下を使用してこの問題を解決できます。 --heartbeat-cmdの代わりに。
以下の行を含むこの機能を有効にできます~/.mpv/config
。
stop-screensaver=yes
中断のないビデオ再生をお楽しみください。
使用しているメディアプレーヤーにこれらの基本機能がない場合は、単純なラッパーを使用して同じ効果を得ることができます。
#!/usr/bin/env bash
# wrapper to prevent screen blanking when files are played from ~/Videos
usage() {
printf "%s\n" "Usage: ${0##*/} /path/to/file"
exit 1
}
case $# in
1) if [[ $1 =~ Videos ]]; then
xset dpms 0 0 0
xautolock -disable
vlc "$1"
xautolock -enable
xset dpms 900 900 900
else
usage
fi
;;
*) usage
;;
esac
答え3
私はOPが要求したことを行いましたが、ショートカットにバインドされた私のi3設定にはすべて含まれています(下記参照)。したがって、Mod + oを使用して画面をロックし、Mod + Shift + oを使用して自動画面ロックを切り替えます。ここで、xautolockの「状態」に応じて、「ロック」または「ロック解除」を知らせる通知が表示されます。私はこれを使用して、xautlock -exit
追加ファイルで状態を管理する必要なしに実行されていることを確認します。
スイッチング状態を個別に処理するスクリプトは次のとおりです。
if xautolock -exit
then (notify-send -u normal -t 100 -- 'LOCK OFF') 2> /dev/null
else
notify-send -u normal -t 100 -- 'LOCK on'
xautolock -time 2 -locker 'slock' -notify 10 -notifier "notify-send -u normal -t 100 -- 'LOCKING screen ...'"
fi
xautolock -time ...
スクリプトを呼び出す場所に応じて、スクリプトがバックグラウンドで実行されていることを確認する必要があります(例:を追加して&
)。
私の.i3/config
ファイルから:
exec --no-startup-id xautolock -time 2 -locker 'slock' -notify 10 -notifier "notify-send -u normal -t 10000 -- 'LOCKING screen'"
bindsym $mod+o exec --no-startup-id xautolock -locknow
bindsym $mod+Shift+o exec --no-startup-id "if xautolock -exit; then (notify-send -u normal -t 100 -- 'LOCK OFF') 2> /dev/null; else notify-send -u normal -t 100 -- 'LOCK on'; xautolock -time 2 -locker 'slock' -notify 10 -notifier \\"notify-send -u normal -t 100 -- 'LOCKING screen ...'\\"; fi"