☰
告别传统桌面:driftwm如何用无限画布重新定义Wayland合成器
2026/10/11 20:36:42 网站建设 项目流程

【免费下载链接】driftwm

A trackpad-first infinite canvas Wayland compositor.

项目地址:https://gitcode.com/gh_mirrors/dr/driftwm
点击查看免费下载

还在为窗口堆叠、分屏挤压而头疼吗?driftwm是一款以触控板手势为核心的Wayland 合成器,它用一块无限 2D 画布彻底取代了传统桌面的工作区思路:窗口按原生尺寸"漂浮"在画布上,你的屏幕只是一台可以随时平移、缩放、甩动的相机。没有平铺、没有工作区切换,窗口重叠只发生在你想让它发生时。

一、driftwm 是什么:一张无限画布 + 一台相机

传统窗口管理器要么把窗口堆叠(层叠式合成器),要么把它们挤压到固定格子(平铺式合成器)。driftwm 换了个思路:

  • 窗口不贴屏幕,而是贴在画布上,位置、大小都保留原生值;
  • 显示器只是相机的取景框,向左平移、捏合放大,窗口依然稳稳停在原处;
  • 灵感来自 vxwm,构建在 Smithay 之上,核心实现细节借鉴了 niri。

你可以把整个桌面想象成一张没有边界的白纸:应用往哪儿开就往哪儿摆,相机负责"看哪里"。

二、触控板优先:三指四指手势取代繁琐快捷键

driftwm 是为笔记本触控板设计的第一方合成器,小屏幕反而成了无限画布的优势。核心操作都能用手指完成:

手势作用
三指滑动平移画布(带甩动惯性,轻扫一下画布会平滑滑行到静止)
两指 / 三指捏合缩放画布
三指双击 + 滑动移动窗口
四指滑动跳到任意方向的最近窗口
四指捏合内收(Mod+W)缩放到适配,一眼看全所有窗口
四指捏合外扩(Mod+A)回到"家"(画布原点),四指捏合外扩的 Quickshell 仪表盘就停在这里

小触控板可以统一用Mod+ 三指代替四指手势。触屏设备同样全部可用——单指平移、双指缩放、三指双击适配窗口,操作和触控板完全一致。

常用键盘快捷键(默认Mod为 Super 键):

  • Mod+Return打开终端,Mod+d打开启动器,Mod+q关闭窗口;
  • Alt+Tab循环窗口(MRU 顺序,按住再确认);
  • Mod+M适配窗口(最大化替代),Mod+F全屏。

三、窗口吸附与隐式集群:摆在一起,就是一组

这是 driftwm 最有意思的机制:当两个窗口互相靠近,它们会自动吸附对齐,形成一个"集群"——不需要手动分组,也不需要管理分组。

  • 吸附后,邻居会留在视野边缘作为空间参照;
  • 按住Shift再移动 / 缩放 / 适配,操作对象就是整个集群:一次拖动重排一整排布局,成比例缩放一整行窗口;
  • 把窗口拖到取景框外,画布会自动跟随平移,拖多远都不迷路;
  • 拖动窗口的同时还能按Mod+1-4跳书签、Mod+A回家,被拖住的窗口会跟着相机一起走。

四、无限背景、多显示器与会话恢复

1. 背景也是画布的一部分

背景不是贴死在屏幕上的,而是跟着视口一起滚动、缩放。内置五种模式(详见 docs/shaders.md):

  • default:内置点阵网格,零配置即用;
  • shader:程序化 GLSL 壁纸,可动画、可贴图,自带素材在 extras/wallpapers/;
  • tile:PNG/JPG 无限平铺,还支持金字塔 TIFF 打造十亿像素壁纸;
  • wallpaper:经典全屏壁纸(不随画布滚动);
  • none:交给 swaybg、swww 等外部壁纸守护进程。

2. 多显示器 = 同一张画布上的多个相机

多台显示器是互相独立的取景框,屏幕上会显示其他屏幕的取景范围轮廓;鼠标自由跨屏,被拖拽的窗口会"瞬移"到目标视口对应的画布位置。Mod+Alt+ 方向键可把窗口发到相邻显示器。

3. 关窗口不留遗憾:挂起与恢复

  • suspend-window关闭窗口时留下一张同位置同尺寸的占位卡,按Enter应用就原地复活;suspend_on_close可让所有关闭自动挂起;
  • [session].restore_windows会持续保存整张画布,下次启动时完整还原(休眠状态,不自动拉起应用),restore_camera连每个屏幕的取景位置一起恢复。

详见 docs/session.md。

五、快速上手:一键安装 driftwm

Arch Linux(AUR),最快方式:

yay -S driftwm

NixOS:仓库自带 flake.nix 与 nix/nixos-module.nix,在配置中一行programs.driftwm.enable = true;即可启用,X11 应用通过 xwayland-satellite 透明支持。

源码构建:需要 Rust 1.88+,装好发行版对应的 libseat、libinput 等依赖后:

git clone https://gitcode.com/gh_mirrors/dr/driftwm cd driftwm make build sudo make install

直接运行driftwm,它会自动识别是嵌套会话(已有 Wayland 环境内)还是真实 TTY,无需额外配置。

六、配置文件与生态工具

配置文件位于~/.config/driftwm/config.toml,部分配置与内置默认值自动合并——只写你想改的项即可,官方提供全量选项参考 config.reference.toml,逐项文档见 docs/config.md,还可用driftwm --check-config校验语法。

两个对新手非常实用的配置项:

  • 窗口规则(docs/window-rules.md):按app_id/ 标题匹配窗口,自由组合位置、大小、透明度、模糊、无边框等;widget = true把窗口钉在画布上当桌面小部件,pinned_to_screen = true钉在屏幕上(画中画、通话工具栏)。
  • IPC 控制(docs/ipc.md):通过 Unix socket 用driftwm msg脚本化操作合成器,支持截屏、录屏、摄像头等 40+ Wayland 协议。

想一键拥有完整桌面体验,跑一下 extras/install.sh 即可——它带了一套钉在画布原点的 Quickshell 主页仪表盘(时间、电池、Wi-Fi、蓝牙、媒体控制、电源菜单)、GLSL 壁纸主题和 spotlight 脚本,详见 extras/README.md。

七、写在最后:实验性,但方向很新

driftwm 目前仍是实验性软件(官方提示其主要由 AI 辅助构建),日常使用请留意 dev/docs/caveats.md 中的注意事项。但它代表了一条和 tiling / 堆叠截然不同的路径:让窗口待在你想让它待的地方,把"找地方"的成本交给相机。如果你受够了工作区切换和平铺挤压,driftwm 的无限画布值得你花十分钟一试。

【免费下载链接】driftwm

A trackpad-first infinite canvas Wayland compositor.

项目地址:https://gitcode.com/gh_mirrors/dr/driftwm
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询