📜  linux 检查是否使用 wayland 或 x11 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:17:23.362000             🧑  作者: Mango

Linux 检查是否使用 Wayland 或 X11

在 Linux 系统中,我们通常会使用一种图形服务器来管理图形界面的显示。目前常用的两种图形服务器是 Wayland 和 X11。但是如何确定当前系统使用的是哪一种?

以下是不同发行版下的检查方式:

Ubuntu

在 Ubuntu 上,我们可以使用以下命令:

$ echo $XDG_SESSION_TYPE

如果输出 x11,则表示当前使用的是 X11 服务器;如果输出 wayland,则表示使用的是 Wayland 服务器。

Fedora

在 Fedora 上,使用以下命令:

$ loginctl show-session $XDG_SESSION_ID -p Type

如果输出 Type=x11,则表示当前使用的是 X11 服务器;如果输出 Type=wayland,则表示使用的是 Wayland 服务器。

Debian / Mint / Arch

在 Debian / Mint / Arch 等发行版中,我们可以通过检查 XDG_SESSION_TYPE 变量来确定当前使用的是哪一种服务器:

$ echo $XDG_SESSION_TYPE

同样,输出 x11 表示使用 X11 服务器,输出 wayland 表示使用 Wayland 服务器。

总结

无论使用哪个发行版,我们都可以通过检查 XDG_SESSION_TYPE 变量来确定当前使用的是 Wayland 还是 X11 服务器。

为了方便程序中的使用,我们可以编写一个 Shell 脚本来实现这个功能:

#!/bin/bash

if [ "$XDG_SESSION_TYPE" = "x11" ]; then
  echo "当前使用的是 X11 服务器"
elif [ "$XDG_SESSION_TYPE" = "wayland" ]; then
  echo "当前使用的是 Wayland 服务器"
else
  echo "无法确定当前使用的服务器"
fi

使用该脚本,将输出当前系统使用的服务器类型。