检查至少一个Wayland会议是否正在运行
Check if at least one Wayland session is running
我正在使用QT,想检查是否正在运行Wayland会话。
目前,我只有用于测试代码,可以按预期工作:
QProcess process;
process.setProgram("bash");
process.setArguments({"-c", "loginctl list-sessions --no-legend | awk '{print $1}'"});
process.start();
process.waitForFinished();
const QByteArrayList sessionsList = process.readAll().split('n');
foreach (const QByteArray &sessionID, sessionsList) {
if (sessionID.isEmpty())
continue;
process.setArguments({"-c", "loginctl show-session " + sessionID});
process.start();
process.waitForFinished();
if (process.readAll().contains("Type=wayland"))
qDebug() << "At least one Wayland session is running";
}
是否可以摆脱Qprocess并使用Linux C API?
您可以尝试连接到Wayland。如果您可以连接到Wayland Composer,则运行否则未运行,或者有人无法正确设置环境变量并未使用默认名称。
#include <wayland/wayland-client-core.h>
bool isWaylandRunning(){
auto display = wl_display_connect(nullptr);
if (display){
wl_display_disconnect(display);
return true;
} else {
return false;
}
}
相关文章:
- 如何在 clang 的自动会议中检查支持编译标志
- Gtk::带有set_icon_name的窗口图标集在 wayland 上不起作用
- wxWidgets 自动会议设置未将包含目录设置为 -Isystem,而是设置为 -I
- 使用 Wayland 在 Linux 上获取 Capslock 状态
- 我如何知道 Linux 系统使用的是 Wayland 还是 X11?
- uinput 在 wayland/weston 下模拟 LWIN + S
- 接口会议派生的类功能而无需铸造
- 检查至少一个Wayland会议是否正在运行
- 在Linux中制作程序,OpenGL,Wayland和Qt如何适应图片
- 自动会议中的库版本字符串
- 为什么我会从我的职能部门收到一份会议声明
- 调用"会议::会议()"没有匹配函数
- MinGW缺少系统会议(_SC_NPROCESSORS_ONLN)