如何在 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 来计算系统空闲。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)