- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
因此,我进行了一些 Google 搜索,发现这方面的知识很少。什么是检测是否正在使用 X11 或 Wayland 的有效且万无一失的方法,最好是在编译时使用 CMake?我需要将它应用到我的 C++ 项目中。
最佳答案
接受的答案非常不准确且危险。它只是运行 loginctl
来转储大量用户 session ,并用用户名或与当前用户名匹配的其他字符串对每一行进行 gres,这可能会导致误报和多个匹配行。调用 whoami
也是一种浪费。所以它是有害的,而且不准确。
这是获取用户 session 详细信息的更好方法,方法是查询您的确切用户名详细信息并获取他们的第一个 session 范围的 ID。
这是一种与 Bash/ZSH 兼容的单行解决方案:
if [ "$(loginctl show-session $(loginctl user-status $USER | grep -E -m 1 'session-[0-9]+\.scope' | sed -E 's/^.*?session-([0-9]+)\.scope.*$/\1/') -p Type | grep -ic "wayland")" -ge 1 ]; then
echo "Wayland!"
else
echo "X11"
fi
我真的希望 loginctl 有一个“只为特定用户列出所有 session ”的功能,但它没有,所以我们不得不求助于这些技巧。至少我的技巧更强大并且应该总是有效!
关于c++ - 检测 X11 与 Wayland 的有效方法,最好使用 CMake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45135228/
我想网络上并没有“wayland 服务器编程初学者指南”,而 weston 的源代码看起来令人望而生畏。 是否有一个准系统 Wayland 服务器可以让我了解从哪里开始?我可以在 X 下运行我可以确认
显然这不是核心 Wayland 协议(protocol)的一部分,但我正在使用 Weston 并且 xdg-shell 扩展似乎有必要的方法: xdg_surface_set_window_geome
我正在做一个基于这个例子https://gitlab.gnome.org/-/snippets/39的项目。我更改了此函数:。对此:。根据XDG文档和对OBS Studio源代码的一些浏览,我现在应该
我有两个属于同一个 Wayland 显示的 EGL 窗口。 Windows 仅全屏显示。鼠标和键盘事件进入显示屏。如何判断事件属于哪个窗口? 在我看来,似乎是在 Wayland TOPLEVEL 窗口
有什么方法可以在 Wayland 中获取指针(鼠标)坐标,AFAIK Wayland 不允许在应用程序窗口外获取指针位置。 跟踪手势指针坐标的守护进程怎么样。 我有点想为 gnome Wayland
我使用 sway 合成器。 当我在控制台中更改用户时,我无法显示 wayland 图形界面(它适用于 X 应用程序) $ su - otherUser $ ./myApplicationWayland
我最近在我的开发笔记本电脑上安装了 Ubuntu 22.04 LTS。以前我运行的是 18.04,所以这是我第一次体验 Wayland。我在新光盘上进行了全新安装。我在重新安装 gitkraken 和
我见过这个问题:Can't a Wayland compositor do the window decorations like on X? ,但我想知道这个: 假设我使用纯 wayland 编写了
Wayland 中有剪贴板 API 之类的东西吗?或者我应该在哪里以编程方式将内容粘贴到剪贴板? 我在 Wayland 上运行 Fedora 24。 如果我觉得有一个剪贴板完全没问题,那么有代码示例(
当我尝试在线教程中的 wayland 代码时,它工作正常,并且在下面的代码中 *pixel++ = 0xffff; 行显示段错误, static void paint_pixels_A(void *t
如何使用新的默认显示服务器 Wayland 在 Ubuntu 17.10 上枚举桌面上的所有顶级窗口(并进一步获取其标题和其他属性)? 之前我们使用 X11/XLib 来实现这一点,但现在有了 Way
是否有将现有 WM 从 X11 移植到 Wayland 的示例?例如,将轻量级 WM(例如 dwm 、 wmii 、 awesome )移植到 Wayland。也许,移植 dwm到wayland 就是
我正在使用 Qt 并想检查是否有任何 Wayland session 正在运行。 现在我有这个只是用于测试代码,它按预期工作: QProcess process; process.setProgram
由于项目限制,我必须使用Wayland ver1.0.3。我将使用 Wayland 在嵌入式系统上开发应用程序。我不知道这个Wayland版本是否支持触摸操作,是否可以管理多窗口。desktop-sh
Wayland 服务器何时会 ping 客户端以检查它是否正在接收事件? 最佳答案 Wayland 服务器可以随时 ping,因此这取决于实现。它很可能会在它认为客户端应该确认事件的任何时候这样做。
所以我意识到这是一个似乎存在争议的问题。我听说人们对 Wayland 将有客户端窗口装饰感到不安,我恰好同意。这听起来根本不是个好主意。但是切换到 Wayland 的好处之一不是它更灵活吗?我不明白为
我想在我的系统中包含 Java GUI 支持,它只支持 Wayland 后端。我试图包含 OpenJDK-7-jre 包,但它似乎具有 X11 依赖性。我成功编译了“Openjre-8”包并包含在我的
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我从我的网络接收到 xy 数据,我想在 wayland 上使用 linux 控制鼠标位置。 我见过许多使用 X 库或 X 应用程序的源代码,但它无法在 Wayland 上运行。我也查看了 libinp
背景:我正在开发一款名为 ActivityWatch 的软件。记录您在计算机上所做的事情。基本上是尝试解决以下问题:RescueTime、selfspy、arbtt 等。 我们所做的核心工作之一是记录
我是一名优秀的程序员,十分优秀!