_$ ps wafux | grep [x]autolock
user 21410 0.0 0.0 20124 2628 ? S Nov05 0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
_
しかし、私がしようとすると ロックする :
_$ xautolock -locknow
Could not locate a running xautolock.
_
別のxautolock
を起動すると、うまくいきます:
_$ xautolock -time 10 -notify 30 -notifier "notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds'" -locker slock&
[2] 18828
$ ps wafux | grep [x]autolock
user 21410 0.0 0.0 20124 2628 ? S Nov05 0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
user 18828 0.0 0.0 20124 2708 pts/1 S 08:30 0:00 \_ xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
$ xautolock -locknow # Runs fine and locks the desktop
_
何ができますか?
これまでに、デスクトップとラップトップの両方でこれを見てきました。少なくともブート後の最初のロックは正常に機能することに注意してください。それが失敗し始めるのは、いくつかの未知の時間またはイベントの後だけです。
私はこれを確実に再現することができましたnot。つまり、私は私のラップトップで次のアプローチを試しました、そしてどちらの場合も screensaver shortcut/command は実際に後でデスクトップをロックします:
そして
コードの追跡:
error1 ("Could not locate a running %s.\n", progName);
messageToSend
が真実である場合 および _type != XA_INTEGER
_ が発生する次のステートメントでは type
is set のようになります。
_(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False,
AnyPropertyType, &type, &format,
&nofItems, &after,
(unsigned char**) &contents);
_
これは、実行中のxautolock
が検出されるかどうかが、フォーカスされているwindowに依存する可能性があることを意味しますか?この呼び出しがこれに関連している可能性があるかどうかも疑問に思っています 既知のバグ :
- -disable、-enable、-toggle、-exit、-locknow、-unlocknow、および-restartオプションは、Xサーバーへのアクセスに依存して作業を行います。これは、他のアプリケーションがサーバー自体をすべて取得した場合に、それらが一時停止されることを意味します。
xautolock
が_xss-lock
_と競合する可能性はありますか。どちらもslock
を使用していますか?上記のxautolock
行に加えて、これも 。xprofileの行 :
_xss-lock slock &
_
xautolock
と_xss-lock
_はどちらもslock
を呼び出すことができるため、問題は次のようになっているのではないかと疑っています。
xautolock
は、10分間何も操作しないとslock
を実行します。_xss-lock
_alsoは、10分後にslock
を実行しようとします :
_$ xset q | grep --after-context=2 --line-regexp --fixed-strings 'Screen Saver:'
Screen Saver:
prefer blanking: yes allow exposures: yes
timeout: 600 cycle: 600
_
slock
クライアントのみが生成されます。xss-lock
_は間違ったslock
を強制終了し、xautolock
がクラッシュまたは中止します。_xss-lock
_はラップトップのスリープを検出できるため、xautolock
の代わりにそれを使用したいのですが、_xss-lock
_を_notify-send
_で機能させることができません。
私にとって、xautolockプロセスはまだバックグラウンドで実行されていましたが、xautolock -locknow
コマンドをリッスンしていませんでした。 @jrmで述べたように、アプリケーションは「スクリーンセーバー」を抑制している必要があります。どちらの場合も、これはmpv(ビデオプレーヤー)がスクリーンセーバーを無効にしたことが原因でした。
Mpvの場合、修正は以下を~/.config/mpv/config
または~/.mpv/config
に追加することです。
stop-screensaver=no
Mpvを使用しない場合は、スクリーンセーバーを無効にしている別のアプリケーションである可能性があります。一般的に使用されているものをいくつか試して、どれであるかを確認してください。
ビデオ再生中の自動画面ロックを防止するにする場合、1つの一般的な方法は、xautolockの「コーナー」機能を使用することです。
xautolock -corners 000- -cornersize 30
上記のコマンドで、マウスカーソルを画面の右下隅(半径30px以内)に置くと、自動ロックが一時的に無効になります。
もう1つ試すことは、-resetsaver
オプションです。
xautolock -resetsaver
または-detectsleep
オプション:
xautolock -detectsleep