マウスの不活性を検出する方法

マウスの不活性を検出する方法

一定時間アイドル状態になったら、キーボードの照明を自動的に暗くしたいと思います。非アクティブ時間を検出する方法は?ところで、私はアーチLinuxを使用しています。

答え1

Debianベースのシステムにはxprintidle次のxprintidleコマンドがあります(https://github.com/g0hl1n/xprintidle/)は標準出力にアイドル時間をミリ秒単位で印刷します。

$ sleep 2; xprintidle
1925

これにより、他の答えと同様にAPIを使用するltraceことがわかります。XScreenSaverQueryExtension()XScreenSaverQueryInfo()また、一部のサーバーの極端なケースで発生する特定の問題に対するいくつかの回避策を追加しました。

答え2

コンパイルして実行すると、アイドル時間はミリ秒単位で表示されます。

#include <X11/extensions/scrnsaver.h>
#include <stdio.h>

int main(void) {
    Display *dpy = XOpenDisplay(NULL);

    if (!dpy) {
        return(1);
    }

    XScreenSaverInfo *info = XScreenSaverAllocInfo();
    XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), info);
    printf("%u\n", info->idle);

      return(0);
}

答え3

これもC(Makefileを使用して)として実装されています。https://github.com/mjml/xidle

これは、アイドル時間の時間、分、秒、およびミリ秒と単位/額面価格を選択するオプションスイッチを含むシェルスクリプトを提供します。

関連情報