28 个版本
0.9.1 | 2024年3月20日 |
---|---|
0.8.4 | 2023年6月5日 |
0.7.0 | 2023年2月12日 |
0.3.3 | 2022年12月29日 |
0.0.1 | 2022年3月31日 |
#38 在 GUI 中
1,339 每月下载量
用于 4 个crate(直接使用2个)
135KB
3K SLoC
描述
此库封装了来自外部依赖和显示服务器的布局计算,以便它可以由X.Org、Wayland或其他窗口管理器使用。它全部关于分割矩形,库中没有“窗口”的概念。
提供了一些默认布局,但也可以定义自定义布局。自定义布局定义提供了一些灵活性,但设计上仍然相当有限,因为此库的目标受众是 基于列表 / 动态平铺 窗口管理器(如 leftwm
、dwm
等),而不是像 i3
这样的手动平铺器。
功能
- 已提供广泛使用的默认布局
- 可以定义自定义布局
- 支持多个主窗口
- 超宽显示器友好
- 无依赖(如果你忽略serde 👀)
预定义布局
以下布局由库提供。
堆叠 / 单列
这些布局只有一个堆叠,没有主列。
单眼显示器
+-----------+
| | only ever displays
| | one window at
| | maximum
+-----------+
水平均匀分布
+--+--+--+--+
| | | | |
| | | | |
| | | | |
+--+--+--+--+
垂直均匀分布
+-----------+
|-----------|
|-----------|
|-----------|
+-----------+
网格
+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | +---+
+-----+-----+ | +---+---+ +---+---+---+ +---+---| |
| | | | | | | | | | | | | +---+
| | | | | | | | | | | | | | |
+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+
4 windows 5 windows 6 windows 7 windows
主和堆叠 / 双列
这些布局有一个主列和一个堆叠列
主和Deck
+-------+-----+
| | | only ever displays
| | | two windows at
| | | maximum
+-------+-----+
main stack
主和垂直堆叠
+-------+-----+
| | |
| +-----+
| | |
+-------+-----+
main stack
主和水平堆叠
+-------+--+--+
| | | |
| | | |
| | | |
+-------+--+--+
main stack
右侧主和垂直堆叠
+-----+-------+
| | |
+-----+ |
| | |
+-----+-------+
stack main
斐波那契
+-------+-----+
| | |
| +--+--+
| |--| |
+-------+--+--+
main stack
减少
+-------+-----+
| | |
| +--+--+
| | |--|
+-------+--+--+
main stack
中心主 / 三列
这些布局的主列位于中心,两侧有堆叠列。
中心主
+-----+-----------+-----+
| | | |
| | +-----+
| | | |
| | +-----+
| | | |
+-----+-----------+-----+
1st main 2nd
stack stack
+-----------+-----------+
| | |
| | | unoccupied
| | | space is
| | | taken over
| | |
+-----------+-----------+
1st stack main
+-----------------------+
| |
| | unoccupied
| | space is
| | taken over
| |
+-----------------------+
main
平衡中心主
+-----+-----------+-----+
| | | |
| | | |
+-----+ +--+--+
| |__| | |__|
| | | | | |
+-----+-----------+--+--+
1st main 2nd
stack stack
+-----------+-----------+
| | |
| | | unoccupied
| | | space is
| | | taken over
| | |
+-----------+-----------+
1st stack main
+-----------------------+
| |
| | unoccupied
| | space is
| | taken over
| |
+-----------------------+
main
流体中心主
1st 2nd
stack main stack
+-----+-----------+-----+
| | | |
| | +-----+
| | | |
| | +-----+
| | | |
+-----+-----------+-----+
1st main 2nd
stack stack
+-----+-----------+-----+
| | |.....|
| | |.....| unoccupied
| | |.....| space is
| | |.....| reserved
| | |.....|
+-----+-----------+-----+
1st main
stack
+-----+-----------+-----+
|.....| |.....|
|.....| |.....| unoccupied
|.....| |.....| space is
|.....| |.....| reserved
|.....| |.....|
+-----+-----------+-----+
main
构建
构建和测试项目
注意 需要 Rust >= 1.56.0
make
运行演示应用程序
注意 运行演示需要您安装GTK (
gtk3
) 和 pango (?
)
make dev
依赖关系
~0.4–1MB
~22K SLoC