rift - a tiling window manager for macos

Rift - macOS 的平铺窗口管理器

Rift is a tiling window manager for macOS that focuses on performance and usability. Rift 是一款专注于性能和易用性的 macOS 平铺窗口管理器。

Features

功能特性

  • Multiple layout styles: Tiling (i3/sway-like), Binary Space Partitioning (bspwm-like), Floating (independent window frames with optional stacks), Master-stack (dwm-like), Scrolling columns (niri-style), Stack (accordion).

  • 多种布局样式: 平铺(类似 i3/sway)、二叉空间分割(类似 bspwm)、浮动(独立的窗口框架,可选堆叠)、主从堆叠(类似 dwm)、滚动列(类似 niri)、堆叠(手风琴式)。

  • Menubar icon: Opens a menu for switching workspaces, changing layouts, and accessing quick Rift controls.

  • 菜单栏图标: 提供一个菜单,用于切换工作区、更改布局以及访问 Rift 的快速控制功能。

  • Save and restore layouts: From the menu bar or CLI, with reusable layouts listed from a configurable folder.

  • 保存与恢复布局: 可通过菜单栏或命令行操作,并支持从可配置文件夹中加载可复用的布局。

  • Focus follows the mouse with auto raise.

  • 焦点跟随鼠标并自动置顶。

  • Does not require disabling SIP.

  • 无需禁用系统完整性保护(SIP)。

  • Performant animations (as seen in the demo).

  • 高性能动画效果(详见演示)。

  • Switch to next/previous workspace with trackpad gestures (just like native macOS).

  • 支持通过触控板手势切换上一个/下一个工作区(与 macOS 原生体验一致)。

  • Hot reloadable configuration.

  • 支持热重载配置。

  • Mach port based IPC: For communicating with rift from third-party programs (sketchybar, etc).

  • 基于 Mach port 的进程间通信(IPC): 用于与第三方程序(如 sketchybar 等)进行交互。

  • Works with “Displays have separate Spaces” enabled (unlike all other major WMs).

  • 支持在开启“显示器具有独立空间”功能的情况下运行(不同于其他主流窗口管理器)。

Quick Start

快速开始

Get up and running via the docs: config quick start. 通过文档快速上手:配置快速入门

Community

社区

Join #rift:matrix.org for discussion, support, and development. 加入 #rift:matrix.org 进行讨论、获取支持或参与开发。

Support

支持

If rift is part of your daily workflow, consider sponsoring its development. 如果 Rift 已成为你日常工作流的一部分,请考虑赞助其开发。

Motivation

开发动机

Aerospace worked well for me, but I missed animations and the ability to use fullscreen on one display while working on the other. I also prefer leveraging private/undocumented APIs as they tend to be more reliable (due to the OS being built on them and all the public APIs) and performant. For more on why rift exists and what rift strives to do, see the manifesto. Aerospace 对我来说很好用,但我怀念动画效果,以及在保持一个显示器全屏的同时在另一个显示器上工作的能力。此外,我更倾向于利用私有/未公开的 API,因为它们往往更可靠(操作系统本身就是基于这些 API 构建的,包括所有公共 API)且性能更好。关于 Rift 存在的意义及其目标,请参阅 宣言

Credits

致谢

Rift began as a fork (and is licensed as such) of glide-wm but has since diverged significantly. It uses private APIs reverse engineered by yabai and other projects. It is not affiliated with glide-wm or yabai. Rift 最初是 glide-wm 的一个分支(并遵循相应许可),但此后已产生重大差异。它使用了由 yabai 和其他项目逆向工程得出的私有 API。本项目与 glide-wm 或 yabai 无关联。