
$ 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
何が起こったのですか?
今までに、デスクトップとラップトップの両方でこの現象を確認しました。少なくともブートロック後の最初の 1 回は正常に動作することに注意してください。不明な時間またはイベントが発生した後にのみ、動作しなくなります。
私は持っているないこれを確実に再現することができた。つまり、私は自分のラップトップで以下のアプローチを試したが、どちらの場合もスクリーンセーバーのショートカット/コマンド実際にその後デスクトップをロックします:
- 蓋を閉める
- コンピュータが休止状態になるまで待ちます
- 蓋を開ける
- 電源ボタンを押します
- ログインパスワードを入力し、Enter
そして
- デスクトップをロックする
- 上記と同じ手順
コードのトレース:
- エラーメッセージを出力する行:
error1 ("Could not locate a running %s.\n", progName);
- 発生します
messageToSend
真実ならそしてtype != XA_INTEGER
それは次のようになります
type
設定されている次の文では:(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False, AnyPropertyType, &type, &format, &nofItems, &after, (unsigned char**) &contents);
これは、ランニングxautolock
が検出されるかどうかは、窓集中しているのでしょうか?この電話はこれに関係しているのでしょうか?既知のバグ:
- -disable、-enable、-toggle、-exit、-locknow、-unlocknow、および -restart オプションは、その動作を実行するために X サーバーへのアクセスに依存します。つまり、他のアプリケーションがサーバーを独占している場合、これらのオプションは一時停止されます。
xautolock
が と競合する可能性はありますか?xss-lock
どちらも を使用していますかslock
?上記の行に加えて、xautolock
これもあります.xprofile の行:
xss-lock slock &
xautolock
とはどちらもxss-lock
を呼び出すことができるためslock
、問題は次のようになるのではないかと疑っています。
xautolock
slock
10 分間操作がないと実行されます。-
$ xset q | grep --after-context=2 --line-regexp --fixed-strings 'Screen Saver:' Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600
- 実際に生成されるクライアントは1 つだけです
slock
。 xss-lock
間違ったものを殺しslock
、xautolock
クラッシュや諦めを引き起こします。
はxss-lock
ノートパソコンのスリープ状態を検出できるので、 の代わりに使用したいのですが、では動作xautolock
しないようです。xss-lock
notify-send
答え1
私の場合、xautolock プロセスはバックグラウンドで実行されていましたが、xautolock -locknow
コマンドをリッスンしていませんでした。@jrm が述べたように、アプリケーションが「スクリーンセーバー」を抑制している必要がありますどちらの場合も、これは mpv (ビデオ プレーヤー) がスクリーン セーバーを無効にしていたために発生しました。
~/.config/mpv/config
mpv の場合、修正するには、またはに以下を追加します~/.mpv/config
。
stop-screensaver=no
mpv を使用していない場合は、スクリーンセーバーを無効にしている別のアプリケーションである可能性があります。よく使用されるアプリケーションをいくつか試して、どれが原因か確認してください。
あなたがしたい場合はビデオ再生中の自動画面ロックを防ぐ一般的な方法の 1 つは、xautolock の「コーナー」機能を使用することです。
xautolock -corners 000- -cornersize 30
上記のコマンドを使用すると、マウス カーソルを画面の右下隅 (半径 30 ピクセル以内) に置くと、自動ロックが一時的に無効になります。
もう一つ試してみるとよい-resetsaver
オプションは次の通りです:
xautolock -resetsaver
または-detectsleep
オプション:
xautolock -detectsleep
答え2
xdg-screensaver lock
動作していないときでも使用できる場合がありますxautolock -locknow
。