X11-详细说明

X.Org Project 官网

介绍

X11, 也称 X Window System, 这个名称的由来还是别有含义的: X 在英文字母表在 W(indow) 后面, 寓意着下一代窗口. 而 11 表示 X Window System 的第 11 版本, 该版本的使用迄今为止最为广泛.

X11 是一个 C/S 架构的图形用户界面的显示协议, 可以在一台机器上运行程序 (X Client), 并将图形输出显示到另一台机器 (X Server).

相关概念

X Server

X Server 运行在用户本地机器 (比如自己的笔记本或主机), 负责处理输入设备 (如键盘鼠标), 和输出设备 (显示器).

X Client

指运行在远程服务器上的 GUI 程序, 通过网络将显示请求发送给 X Server.

工作模式

X Client 会将所有的绘图请求 (如窗口, 按钮等) 发送给 X Server. X Server 负责在显示设备上绘制这些图形元素.

会话

X11 用 :x (x 是一个数字, 比如 1, 2) 这种格式标识会话, 可以通过设置 DISPLAY 环境变量指示 X11 将图形输出到哪个会话, 默认是 :0:

1
export DISPLAY=:0

安装

X11 Client

安装 xauth 和可用的 X11 client, 可以先安装 x11-apps 测试, 在 ubuntu 上如:

1
sudo apt install -y xauth x11-apps

X11 Server

需安装 xorg, 在 ubuntu 上如:

1
2
sudo apt install -y xorg openbox
startx
  • 如果没有安装 kde, gnome 等图形界面, 可以装 openbox

驱动安装

先查看自己的显卡是啥:

1
lspci -v | grep -A1 -e VGA -e 3D

输出如:

1
2
3
4
5
00:02.0 VGA compatible controller: Intel Corporation CometLake-H GT2 [UHD Graphics] (rev 05) (prog-if 00 [VGA controller])
Subsystem: Lenovo Device 3fa8
--
01:00.0 VGA compatible controller: NVIDIA Corporation TU106M [GeForce RTX 2060 Mobile] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Lenovo Device 3fa8

一般可直接选择安装 xf86-video:

1
sudo pacman -S xf86-video

使用

启动 X11 Server

一般 Xorg (也就是 X) 不会自动启用, 而是由 display manager 或 xinit (即 startx) 启动.

(display manager 的示例)

启用新的 X11 会话

启用并指定新的编号, 需要在 tty 界面运行:

1
X :1 &

不然会报错:

1
/usr/lib/Xorg.wrap: Only console users are allowed to run the X server

其不会启用一个桌面环境, 而仅仅是启用了一个 X server, 此时, 可以用 Ctrl+Alt+F3 切换到另一个 tty, 然后:

1
startx -- :1

指定前面开启的会话. (这样似乎会 broken…)

配置

在 Archlinux 上, 一部分配置文件位于 /usr/share/X11/xorg.conf.d/ 目录下, xorg.conf 或以 .conf 结尾的文件都会在启用时自动读取. 读取顺序根据 ASCII 字符, 且必须以 XX- (两位数字) 开头, 注意 xorg.conf 会在最后读取 (越后的其实权限越大), 比如:

1
2
3
4
5
6
7
8
cd /usr/share/X11/xorg.conf.d/
tree -L 1
.
├── 10-nvidia-drm-outputclass.conf
├── 10-quirks.conf
├── 40-libinput.conf
├── 70-synaptics.conf
└── 70-wacom.conf

另外还可编辑 /etc/X11/xorg.conf/etc/xorg.conf 文件, 可以先用:

1
Xorg :2 -configure

/root/ 下生成一个 xorg.conf.new 文件, 可以把这个拷贝到上面两个路径.

认证

X11 使用一种称 X11 cookie 的机制来进行身份验证, 可以用 xauth 来生成, 添加和管理这些 cookie.

1
xauth list

X11-详细说明
http://example.com/2024/10/24/X11-详细说明/
作者
Jie
发布于
2024年10月24日
许可协议