#窗口管理器 #x11 #wm #终端

bin+lib umberwm

极简主义 X11 窗口管理器

33 个版本

0.0.34 2022 年 2 月 28 日
0.0.33 2021 年 11 月 22 日
0.0.31 2021 年 8 月 22 日
0.0.28 2021 年 7 月 30 日
0.0.13 2020 年 7 月 31 日

#797GUI

Download history 2/week @ 2024-03-07 19/week @ 2024-03-28 7/week @ 2024-04-04

83 每月下载量
用于 2 crates

MIT 许可证

66KB
1.5K SLoC

Rust 1.5K SLoC // 0.0% comments Rusty Object Notation 117 SLoC Shell 51 SLoC Python 30 SLoC // 0.1% comments

umberwm 🐏

Discord

基于 tinywm,受 qtile 启发,极简主义 X 窗口管理器。

UmberWM Screenshot

视频介绍 在 LBRY在 YouTube

使用 x11docker 的教程和演示

  1. 安装 x11docker
  2. 克隆此仓库
  3. cdumbertutor
  4. make

设计目标和特性

  • 极简:仅窗口管理(无任务栏、系统托盘等),复杂功能应使用其他程序完成(例如 rofi 等)
  • 配置可以是代码(类似于 qtiledwmxmonad),也可以是 RON,或者两者都是。
  • 默认为平铺布局(二进制空间划分)
  • 支持工作空间
  • 支持多显示器

先决条件

您需要带有 randr 扩展的 XCB 绑定。

Ubuntu: sudo apt install libxcb-randr0-dev

使用(二进制)

  1. 安装 rust 和 cargo
  2. cargo安装 umberwm
  3. 运行一次 umberwm
  4. 它将生成 ~/.config/umberwm.ron(使用 RON 文件格式
  5. 根据需要修改 umberwm.ron(有关每个字段的详细信息,请参阅 src/main.rs)
  6. 下次运行 umberwm 时,它将考虑您的配置

通过修改源代码使用

UmberWM 用 Rust 使用/配置,以下是使用方法

  1. 安装 rust 和 cargo

  2. 克隆此项目:git clone https://github.com/yazgoo/umberwm

    • 注意:如果您不想修改源代码,您可以将 umberwm 添加为依赖项到您自己的项目中。请参阅 将其作为依赖项使用
  3. 编辑 src/main.rs

  4. 根据需要编辑 umberwm-start。在这里,您可以在启动 umberwm 之前启动所需的任何程序。

  5. 运行 cargo build --release。二进制文件将在 target/release/umberwm 中可用。

  6. 可选地,运行 ./install.py。这将执行以下三件事

    1. target/release/umberwm 链接到 /usr/bin
    2. umberwm-start 链接到 /usr/bin
    3. umberwm.desktop 复制到 /usr/share/xsessions。这将允许显示管理器(如 GDM)找到 umberwm 并允许您启动它。
  7. 如果您不使用显示管理器,您需要将以下内容添加到您的 .xinitrc

    exec umberwm-start
    

作为依赖项使用

如果您不想修改源代码,可以创建自己的 rust 项目并将 umberwm 添加为 cargo 依赖项。

Cargo.toml:

# ...
[dependencies]
umberwm = "0.0.21"

然后您可以提供自己的 main.rs 而不是编辑现有的一个。建议您使用此存储库中的 main.rs 作为您的起点。

查看示例

请注意,如果您想使用它们,您必须手动设置 umberwm-startumberwm.desktop

热重载

热重载允许在保持其状态(即跟踪窗口和它们的相关工作区)的同时重新启动 umberwm。当您想更新您的配置时,这非常有用。

wm_actions: 中,动作 Actions::SerializeAndQuit 将序列化其所有窗口,然后以退出代码 123 退出。 umberwm-start 脚本检查退出代码 123 并重新运行 umberwm,从而实现平稳的重启。

依赖项

~2.7–4MB
~78K SLoC