8

すると、10 分間何も操作しないxset dpms 600 3600 7200と画面がブランクになります。

質問

  • X11 はどのくらいの時間アイドル状態だったかをどのように認識し、このアイドル時間にプログラムでアクセスするにはどうすればよいですか?
  • xprintidleX11 に XIDLE 拡張機能がなくなったため、インストールできませんでしたか?

グーグルは「man xscreensaver」を見ることを提案しましたが、そこに役立つものは何も見つかりませんでした.

4

1 に答える 1

10

スクリーン セーバー拡張機能、QueryInfo リクエスト。xlib を使用している場合 - XScreenSaverQueryInfoにあります(Xss とのリンク)

node-x11を使用した JavaScript の例

var x11 = require('x11');
x11.createClient(function(err, display) {
    var X = display.client;
    X.require('screen-saver', function(err, SS) {
        SS.QueryInfo(display.screen[0].root, function(err, info) {
            console.log('Idle time', info.idle);
        });
    });
    X.on('error', console.error);
});

c の例:

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

int main() {
    Display *display = XOpenDisplay(0);
    if (display != 0) {
      XScreenSaverInfo *info = XScreenSaverAllocInfo();
      XScreenSaverQueryInfo(display, DefaultRootWindow(display), info);
      if (info)
      {
        printf("%lu\n", info->idle);
        XFree(info);
        return 0;
      }
      return -1;
    }
    return -1;
}
于 2012-08-09T20:29:40.610 に答える