しばらくしてデスクトップロックが機能しなくなるのはなぜですか?


14

xautolock明らかに実行されています:

$ 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. 蓋を閉める
  2. コンピューターが休止状態になるのを待ちます
  3. ふたを開ける
  4. 電源ボタンを押す
  5. ログインパスワードを入力し、続けて Enter

そして

  1. デスクトップをロックする
  2. 上記と同じ手順

コードのトレース:

  1. エラーメッセージを出力する行error1 ("Could not locate a running %s.\n", progName);
  2. それが起こる場合messageToSendtruthyあるtype != XA_INTEGER
  3. 次のステートメントでtype設定されているように見えます:

    (void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False,
                               AnyPropertyType, &type, &format,
                               &nofItems, &after,
                               (unsigned char**) &contents);
    

これは、実行xautolockが検出されるかどうかがフォーカスされているウィンドウに依存することを意味しますか?また、この呼び出しがこの既知のバグに関連する可能性があるのではないかと思っています。

  1. -disable、-enable、-toggle、-exit、-locknow、-unlocknow、および-restartオプションは、Xサーバーへのアクセスに依存して動作します。これは、他のアプリケーションがすべてサーバーを取得した場合、それらが中断されることを意味します。

どちらも使用しているとxautolock競合する可能性xss-lockはありますslockか?xautolock上記の行に加えて、.xprofileにも次の行があります

xss-lock slock &

との両方xautolockxss-lock呼び出すことができるのでslock、問題は次のようになると思われます。

以来xss-lock、ラップトップ、睡眠を検出することができ、私の代わりにそれを使用したいのですxautolockが、私は作るように見えることはできませんxss-lockで仕事をnotify-send


どのUNIXを使用していますか?
カスペルド

私はこれと同じ問題に直面しています。あまり深く見たことはありませんが、答えも知りたいです。
HalosGhost

どうやって始めたの?起動時に同じことを最近見つけました.xinitrc--userサービスファイルに切り替えましたが、もう問題ではありません
...-jasonwryan

1
mpv(mplayerではない)でビデオを再生すると、問題が発生します。両方のプレーヤーの構成は空です。
jrm

1
このトリガーの次善策は、に追加するstop-screensaver=noこと~/.mpv/configです。もちろん、これは、mpvでビデオを再生するときにロックを手動で無効にする必要があることを意味します。
jrm

回答:


5

私にとって、xautolockプロセスはまだバックグラウンドで実行されていましたが、xautolock -locknowコマンドをリッスンしていませんでした。@jrmで述べたように、アプリケーションは「スクリーンセーバー」を抑制している必要があります。私たちの両方にとって、これはスクリーンセーバーを無効にするmpv(ビデオプレーヤー)によるものです。

mpvの場合、修正は次のものを~/.config/mpv/configor に追加することです~/.mpv/config

stop-screensaver=no

mpvを使用しない場合、別のアプリケーションがスクリーンセーバーを無効にしている可能性があります。一般的に使用されているものを試して、どれかを確認してください。


ビデオ再生中に自動画面ロック防止したい場合、一般的な方法の1つはxautolockの「コーナー」機能を使用することです。

xautolock -corners 000- -cornersize 30

上記のコマンドで、マウスカーソルを画面の右下(半径30ピクセル以内)に置くと、自動ロックは一時的に無効になります。


試すべきもう1つのことは、-resetsaverオプションです。

xautolock -resetsaver

または-detectsleepオプション:

xautolock -detectsleep

良いヒント、ありがとう!私は長年にわたってビデオプレーヤー(VLC)が画面ロックを無効にしていることを知っていましたが、正直に言って、この問題は過去にさかのぼるので、心がこの事実を単純に消したかどうかは思い出せません。とにかく、私は使用をやめたxautolockので、質問は今は少し意味がありません。これまでのところ、最も有用な回答として受け入れられているとマークします。誰かがまったく同じ問題を抱えている場合、重複を避けるためにこの質問を削除できます。
l0b0
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.