首页 > 解决方案 > 如何在 Wayland 上的 Ubuntu 中计算系统空闲时间?

问题描述

我已经实现了以下代码来计算 xorg 上 ubuntu 中的系统空闲时间,它工作正常:-

#include <X11/extensions/scrnsaver.h>
#include <stdio.h>
#include <X11/Xatom.h>
#include <X11/Xlib.h>
#include <X11/extensions/Xinerama.h>
#include <thread>
#include <chrono>
#include <iostream>
 
using namespace std;

 uint getSystemIdleTime()
 {
    Display *dpy = XOpenDisplay(nullptr);
    if (!dpy) {
        return(0);
    }
    std::this_thread::sleep_for(std::chrono::milliseconds(5000));
    XScreenSaverInfo *info = XScreenSaverAllocInfo();
    XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), info);
    uint idletime= info->idle / 1000;
    XFree(info);
    XCloseDisplay(dpy);

    return idletime;
}

int main()
{  
    int ans = getSystemIdleTime();
    cout << ans << endl;
}

但我无法在 Wayland 上的 ubuntu 中找到任何方法/API 来计算系统空闲。

标签: c++linuxubuntuwayland

解决方案


推荐阅读