编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Ziglang编程实践- zig river 使用 zig 编写的窗口管理器

wxchong 2024-08-07 02:00:10 开源技术 87 ℃ 0 评论

river

River 是一款动态平铺的 Wayland 合成器,具有灵活的运行时配置。

从软件包管理器安装 - 在 irc.libera.chat 上的 #river 加入我们 - 阅读我们的手册和 wiki

注意:river 目前处于早期开发阶段。请注意,river 目前仍处于开发初期,可能会出现破坏性改动和功能缺失。不过,目前还很少出现 Bug,如果你遇到了 Bug,请随时提交问题。

设计目标

  • - 行为简单、可预测,河流应易于使用,认知负荷低。
  • - 基于视图和标签堆栈的窗口管理。
  • - 动态布局由用户编写的外部可执行文件生成。提供默认的 rivertile 布局生成器。
  • - 通过自定义 Wayland 协议和独立的 riverctl 二进制实现脚本配置和控制。

构建

克隆版本库时,还必须启动和更新子模块,例如

git submodule update --init

要编译 river,首先要确保安装了以下依赖项。如果适用于您的发行版,则需要 "开发 "版本。

  • zig 0.11
  • wayland
  • wayland-protocols
  • wlroots 0.17.1
  • xkbcommon
  • libevdev
  • pixman
  • pkg-config
  • scdoc (optional, but required for man page generation)

运行

zig build -Doptimize=ReleaseSafe --prefix ~/.local install

要启用实验性 Xwayland 支持,还需通过 -Dxwayland 选项。

如果要打包发布 river,请参阅 PACKAGING.md 。

用法

River 可以嵌套在 X11/Wayland 会话中运行,也可以使用 KMS/DRM 直接从 tty 运行。只需运行 river 命令即可。

启动时,如果 $XDG_CONFIG_HOME/river/init 中存在可执行文件,River 将运行该文件。如果没有设置 $XDG_CONFIG_HOME,则会使用 ~/.config/river/init 代替。

通常,这个可执行文件是一个调用 riverctl (1) 的 shell 脚本,用于创建映射、启动布局生成器或状态栏等程序,以及执行其他配置。

这里的示例目录中提供了一个具有合理默认值的启动脚本示例。

完整文档请参见 river(1) 、riverctl(1) 和 rivertile(1) 的手册。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表