Note
This is a fork of rift that fixes some fundamental issues that otherwise is not usable at all for me. Scroll down to see more about the changes and why this fork exists
- added border for focused window (auto corner radii supported)
- dwindle layout (like hyprland)
- no longer have any ghost windows with cmd+w
- if cmd+w happens on the last window, it will try to focus any window that is nearest to it
- auto switch to the workspace when open an app that has rule that moves to another workspace
- auto switch to the workspace when moving window to another workspace
- when first launching, it will try to stay on the same workspace of the current focused window
- when quiting rift, it will try to move all the windows (including hidden) to its position, so that we can use it right away
- when wake from sleep, everything should still be the same as before sleep (layouts, arrangments, windows, etc)
- added ability to resize windows with mouse
- performance improvements on race conditions
- fixed
--validateflag to actually validate the config file instead of the restore file - disabled animation by default
- added more tests
- fix every clippy warnings
- There's no binary release for this yet, to not confuse anyone
- You can clone this repo and build it yourself with rust
- I normally just use this in my nix-darwin with home manager, just search
riftin my nix-darwin repo here - No configuration changes, exact same
riftconfiguration will still work
- I don't mind to contribute back to the original repo, as these are the fundamental fixes that makes it usable or replace aerospace for me.
- However, I am not inclined towards splitting out the codebase, cherry-picking the fixes, go through pull request, do changes and all the hassle to get them merged.
- If upstream accepts full changes as it is, I can just create a PR directly to the original repo.
- Anyone are welcome to take these code and pick them and contribute back to upstream too, I don't mind.
- The only reason this fork exists is to make it work for me if i want to use rift as my twm.
- Probably not, especially there's lots of code changes since then, I am not sure if I have the time to do rebasing for it.
- For now probably not, but if upstream has all of the fixes that I can live with it, I will just use the upstream instead.
- I don't know, as most part are from the original repo and they owns the credit.
- There's no new features being added as for now, but just fixes.
- One day if it drifted away from the original repo direction, probably thats the time.
- Multiple layout styles
- Tiling (i3/sway-like)
- Binary Space Partitioning (bspwm-like)
- Menubar icon that shows all of the workspaces and the layouts within
- MacOS-style mission control that allows you to visually navigate between workspaces
- Focus follows the mouse with auto raise
- Drag windows over one another to swap positions
- Performant animations (as seen in the demo)
- Switch to next/previous workspace with trackpad gestures (just like native macOS)
- Hot reloadable configuration
- Interop with third-party programs (ie Sketchybar)
- Requests can be made to rift via the cli or the mach port exposed (lua client here)
- Signals can be sent on startup, workspace switches, and when the windows within a workspace change. These signals can be sent via a command(cli) or through a mach connection
- Does not require disabling SIP
- Works with “Displays have separate Spaces” enabled (unlike all other major WMs)
Get up and running via the wiki:
Rift is in active development but is still generally stable. There is no official release yet; expect ongoing changes.
Issues and PRs are very welcome.
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
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.