#window-manager #status-bar #ipc #x11 #client #marswm #rusty

libmars

用于构建窗口管理器和相关工具的库

9 个不稳定版本 (3 个破坏性更新)

0.5.3 2023年12月19日
0.5.2 2023年11月29日
0.5.0 2023年6月23日
0.4.1 2023年4月20日
0.2.0 2023年2月10日

#777 in GUI


用于 3 crates

自定义许可证

160KB
3.5K SLoC

MARSWM 项目

marswm 旨在成为 moonwm 的 Rusty 后继者。除了窗口管理器外,这个仓库还包括其构建的库,一个伴随的 ,一个伴随的 状态栏 和一个 ipc 客户端,用于从外部脚本控制窗口管理器。

您可以在 crates.ioGithub 仓库 中找到如何配置窗口管理器的文档

免责声明:尽管已经可以使用,但这仍然处于开发中。库 API 以及窗口管理器本身可能会频繁更改。

组件

marswm

marswm 的目标是拥有一个简单的平铺窗口管理器,用于我的个人需求。

特性

  • dwm 风格布局
  • 工作区(类似于 i3 或 bspwm)
  • 使用 X11 原子进行 IPC(mars-relay
  • YAML 用于配置和键绑定

libmars

libmars 的目标是通过一个漂亮的 Rusty 接口来暴露 xlib 的丑陋一面,这使得实现自定义窗口管理器更加容易。它仍然不够成熟,主要针对满足 marswm 的需求,但随着 API 的稳定和文档化,它应该非常适合编写简单的、个人的窗口管理器。虽然目前没有计划,但由于库的模块化概念,可以实现 Wayland 后端(以及其他后端)。

mars-relay

mars-relay 允许您控制符合 EWMH 的 X11 窗口管理器,可以用作 marswm 和许多其他窗口管理器的 IPC 客户端。

安装(使用包管理器)

请参阅installation.md

有关如何使用 marswm 作为基础设置工作桌面的指南,请参阅快速入门指南

从源代码构建

您必须本地安装以下库:libX11libXftlibXineramalibXrandr

然后您可以使用 cargo 构建二进制文件。

# development build
cargo build
# release build
cargo build --release

二进制文件将位于target/debugtarget/release,具体取决于您的构建类型。

依赖关系

~0.4–1MB
~20K SLoC