返回

文章详情

Yserver:用Rust编写的现代X11服务器

Hacker News2026年6月14日 19:10

Yserver是从头开始用Rust编写的现代X11服务器。目标不是克隆Xorg,而是提供一个实用的X11服务器,可以在现代Linux上运行真实的桌面环境、窗口管理器和应用程序,同时去除遗留负担(多个屏幕、非真彩视图、间接GLX、DDX驱动ABI、字节序交换的客户端等)。请查看docs/high-level-design.md以获取完整的设计和范围。名称yserver是一个“工作”名称,这是我在启动项目时脑海中第一个冒出来的想法。但在GitHub上有多个项目使用这个名称(但没有X11服务器),名称可能会改变。目前不是优先考虑的事项。状态yserver(独立DRM/KMS)现在可以运行完整的MATE/XFCE/Cinnamon桌面。其他已测试的窗口管理器包括FVWM3、e16和wmaker。我们支持以下扩展:BIG-REQUESTS Composite DAMAGE DPMS DRI3 GLX Generic Event Extension MIT-SCREEN-SAVER MIT-SHM Present RANDR RENDER SHAPE SYNC X-Resource XFIXES XInputExtension XC-MISC XKEYBOARD XTEST GLX_EXT_texture_from_pixmap已在AMD、英特尔、Asahi和高通上实现和测试。它不能(请注意:绝对无法)在Nvidia专有驱动程序上工作,并且在我拥有的唯一Nvidia显卡(GTX 1050)上,nouveau驱动程序甚至不能启动Xorg。Nouveau可能在其他显卡上工作,但未经过测试。演示随着TFP的实现,我们现在支持compiz,演示视频在这里:compiz-720p.mp4硬件测试yserver(独立DRM/KMS)已在MATE/xfce4/Cinnamon桌面上进行端到端测试,测试的硬件包括:AMD — Ryzen 9 6900HX(Rembrandt,RDNA2,RADV);i9 13900k + RX580(Polaris/GCN4,RADV)。英特尔 — i5-7200U(Kaby Lake,ANV)iGPU。NVIDIA — i5 6500搭配GTX 1050(专有驱动程序)。Snapdragon X1 X1E80100(Adreno X1,Turnip)。Apple M1 MBA,M2 MBP在Asahi Linux上(apple-drm KMS + asahi GPU,Mesa AGX-V)。虚拟 — virtio-gpu在virtme-ng中(Venus直通)。运行独立DRM/KMS服务器yserver使用libseat进行座椅管理(如果可用)。它还可以直接驱动原子KMS,但这时您的用户需要访问/dev/dri/和/dev/input/。它需要最新稳定的Rust工具链和以下依赖项:Arch sudo pacman -S just gcc seatd libxshmfence libxkbcommon libinput shaderc systemd-libs fontconfig Ubuntu sudo apt install just gcc libseat-dev libxshmfence-dev libxkbcommon-dev libinput-dev glslc libudev-dev libfontconfig-dev Alpine export RUSTFLAGS= " -C target-feature=-crt-static " apk add gcc musl-dev fontconfig-dev freetype-dev libxshmfence-dev libxkbcommon-dev libinput-dev libseat-dev shaderc在显示管理器(lightdm)中使用lightdm可以将yserver作为其X服务器进行图形登录(其X服务器命令是可配置的,不像gdm/sddm)。安装二进制文件(需要sudo):just install(将其安装在/usr/local/bin/yserver)。将lightdm指向它 — 创建/etc/lightdm/lightdm.conf.d/99-yserver.conf : [Seat:*] xserver-command =/usr/local/bin/yserver 从一个空闲的TTY,重启lightdm:sudo systemctl restart lightdm 。欢迎界面出现后,您登录,lightdm的PAM堆栈会解锁登录密钥环。直接在TTY上使用 ## 切换到一个空闲的TTY,然后运行:just startx 将启动yserver,然后执行您的~/.xinitrc(或者回退到/etc/X11/xinit/xinitrc)一些便利的快捷键可用:Ctrl-Alt-Backspace: 关闭服务器,返回控制台 Ctrl-Alt-Enter: 创建屏幕快照/扫描输出当前工作目录中的帧缓冲区 Ctrl-Alt-D: 将所有可绘制对象作为PPM文件转储到当前工作目录使用xts5和rendercheck进行回归覆盖我们运行X.Org X测试套件(xts5)以评估协议的完整性。每个场景的最新通过数字保存在docs/test-status.md。许可证本项目依据MIT许可证进行授权。请查看LICENSE。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡