19 个版本

使用旧的 Rust 2015

0.8.1 2018年11月22日
0.8.0 2018年1月24日
0.7.0 2017年12月24日
0.6.2 2017年8月15日
0.1.1 2016年3月10日

#1212 in GUI

每月 39 次下载

MIT 许可证

1.5MB
14K SLoC

Way Cooler Crates.io 下载

开发

Way Cooler 是一个基于 Rust 编写的、用于 Wayland 的可定制的窗口管理器,使用 Lua 进行配置。

它深受 i3 的分割窗口管理和 awesome 的扩展性启发。

  • 虽然 Lua 用于运行时配置(如 awesome),但 Way Cooler 的扩展作为完全独立的客户端程序实现,使用 D-Bus
  • 目前我们支持 3 个官方扩展:
  • wc-bg: 为 Way Cooler 绘制背景。

wc-grab: 允许用户截取屏幕截图。

Way Cooler 目前处于公测阶段。核心功能已添加,目前处于可用状态,但未来版本中将会有一些不兼容的更改,可能需要用户进行一些干预。

一旦 Way Cooler 达到 1.0 版本,我们将保证配置文件和 D-Bus 接口的向后兼容性。

以下是 Way Cooler 当前的图片示例

动机

我们想要获得 Rust 的经验,并发现当前的 X11 窗口管理器没有我们想要的所有功能。

目前,在 Wayland 生态系统中几乎没有完全功能的堆叠窗口管理器,因为大部分精力都用于将 Gnome 和 KDE 移植过来。尽管 Wayland 仍在早期开发阶段,且与现有的 X11 工具不兼容,但我们想投入其中,为未来的堆叠窗口管理器用户提供支持。

当前功能

  • i3 风格的堆叠
    • 水平/垂直布局
    • 标签/堆叠布局
    • 不同布局的嵌套容器
    • 每个工作空间浮动窗口
  • 通过 D-Bus IPC 支持客户端应用程序
    • 请看这里的一个示例应用程序 这里。它以某种有组织的格式显示树,实际上对调试树和理解子容器的工作方式非常有帮助。
    • 启用运行时动态配置,无需重新加载配置文件
    • 允许扩展窗口管理器作为独立程序通过 IPC 通信存在
  • 为简化扩展 Way Cooler 而设计的 Lua 53 环境
    • Lua 是配置格式,允许用户以任何方式增强他们的窗口管理器。
    • 包含帮助与 Way Cooler 通信的实用程序库
  • 通过 XWayland 支持的 X 程序
  • 容器周围的边框
  • 容器之间的间隔
  • 基本的 X11 栏支持(例如 lemonbarpolybar
  • 屏幕抓取/截图
  • 锁屏

计划中的功能

  • 通知支持
  • AwesomeWM 兼容性(更多信息请参见 此问题
  • 专用状态栏
    • 状态栏应该是可交换的,这样用户就可以实现自己的或使用不同的一个。
  • 更多自定义设置

在我们的 问题部分 跟踪这些功能的开发,或者如果您想帮忙,请查看我们的 贡献指南

安装

在 AUR 上

@vinipsmaker 和 @timidger 维护我们的 AUR 包

way-cooler

way-cooler-git

NixOS

@miltador 维护我们的 NixOS 包

openSUSE

@jubalh 维护我们的 openSUSE 包。使用以下命令安装:

zypper ar -f obs://X11:windowmanagers windowmanagers
zypper in way-cooler

安装脚本

对于使用上述提到的 Linux 发行版的用户,我们提供了一个简单的安装脚本,您可以在终端中运行它来安装 Way Cooler。

请访问我们的 网站下载页面 以下载 Way Cooler。

从源码构建

您需要在机器上安装以下依赖项才能安装 Way Cooler

  • Wayland
    • 包括服务器和客户端库
  • wlc
  • Weston(可选)
    • 初始化文件默认使用 weston-terminal 作为默认终端模拟器
  • Cargo
    • Rust 使用的包管理器/构建系统
  • Cairo

最后,要安装Way Cooler,只需运行以下cargo命令:

cargo install way-cooler

您可以在X环境中运行它进行测试,或者切换到TTY并作为独立程序运行。

初始化文件

所有键盘快捷键都可以通过初始化文件进行配置。建议的策略是将默认配置文件复制到$XDG_CONFIG_HOME/way-cooler/init.lua,然后从那里进行编辑。

贡献者

Way Cooler由@Timidger和@SnirkImmington发起,但以下这些优秀的人们也帮了我们很多忙:

  • @Dcelemeno负责创建标志
  • @platipo负责创建官方背景
  • @vinipsmaker创建了(并维护)AUR包
  • @miltador创建了NixOS包
  • @starfys创建了way-cooler桌面文件
  • @toogley修复了一个链接
  • @paulmenzel修复了一个错别字
  • @thefarwind使kill way-cooler命令可重新绑定
  • @bluss将我们的PetGraph使用更新为StableGraph
  • @Abdillah
  • @hedning修复了tiling代码中的未签名字符串溢出问题
  • @jubalh创建了openSUSE包

当然,还要感谢Rust社区和wlc的开发者。

贡献

有关更多信息,请查看贡献指南

如果您发现错误或对代码有任何疑问,请提交问题在gitter上联系我们

依赖项

~18MB
~363K SLoC