一定時間アイドル状態になったら、キーボードの照明を自動的に暗くしたいと思います。非アクティブ時間を検出する方法は?ところで、私はアーチ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。
これは、アイドル時間の時間、分、秒、およびミリ秒と単位/額面価格を選択するオプションスイッチを含むシェルスクリプトを提供します。