6 ms·
Show HN: Rift – A tiling window manager for macOS
- deleted 1y ago[deleted]
- tra3 1y agothis is cool, I love multiple options on macOS. What’s the difference between this and yabai or aerospace?
- atticus_ 1y agoyabai uses native macos spaces and generally requires sip to be disabled to have a good experience(windows can't be moved between spaces without) rift is essentially aerospace but implemented in a yabai style. yabai style meaning using low level, private apis and generally focusing more on performance. whereas aerospace prides itself on only using one private api. usage wise, aerospace and rift both use a virtual workspace system where all of your (work)spaces are in one macos space so no red tape has to be cut in order to move windows from ws -> ws and so forth
- mgrandl 1y agoDoes rift handle native MacOS tabs like the ones ghostty and finder use? I might give it a shot. I have been having a couple of issues with Aerospace lately.
- yongyongyong 1y agoSame. That's the worst part of Yabai
- bartvk 1y agoNo, rift also has problems. For example, if I have Calendar on the left, and Finder on the right, and I open a tab in Finder, then it looks like it works. However if I close the 2nd Finder tab, then Calendar maximizes below Finder.
- mgrandl 1y agoAlso I am wondering if you could estimate how difficult it would be to implement something like Niri? I much prefer the scrolling style tiling, but none of the MacOS WMs seem to be going that route (other than PaperWM.spoon which is not for me).
- malnourish 1y agoI'm pretty new to Mac and didn't know Paper had a port, what isn't to your liking?
- mgrandl 1y agoJust not a fan of this just being a Hammerspoon thing instead of a proper WM.
- atticus_ 1y agoto answer both comments: i've been working on a way to handle tabs but it's hard to find a solution that isn't half-baked due to the lack of info on tabs given by the os (there are no events or anything, just on a11y attribute that give info on tabs) as for a scrolling layout, its possible, but does not fit that well with rifts layout, even thought you can get something similar using trackpad swipes to switch between workspaces
- mgrandl 1y agoAerospace readme says they have a solution for tabs in mind based on their big refactor. Haven’t looked into what this looks like, but understandable that it hasn’t made its way to rift yet. I will be trying out rift and report any issues on Github.
- autrilla 1y agohttps://github.com/karinushka/paneru https://github.com/karinushka/paneru does that
- mgrandl 1y ago
- __mharrison__ 1y agoI'm using aerospace. If I'm fine with performance, does rift provide anything else?
- 0x6c6f6c 1y agoSame boat, but vs amethyst. It's worked very well for me the last few years.
- cipehr 1y agoAfter playing with it for all of 30 seconds, my thoughts are: 1. It's ridiculously fast. Not that it matters that much, Aerospace is fine for me. 2. I somehow doesn't require any accessibility permissions... so it "just works" after running the CLI... 3. One thing I immediately noticed, is that it looks like moving a window to be accordion can be done in the same workspace? So far I'm very impressed... not sure if I'm impressed enough to switch yet though... but being in rust does make it slightly easier for me to contribute
- fiddlerwoaroof 1y agoI used to be a big user of tiling window managers but, more recently, I’ve discovered that the workflow of something like Moom is nicer in more situations.
- paularmstrong 1y agoMoom is an absolute crucial piece of software that I've gladly paid for upgrades to over time to support it. There's also BetterSnapTool, which I used to use, but I think switched to Moom for specific features at one point in time. It's even cheaper and still receiving updates to continue working.
- __mharrison__ 1y agoWhat features do you like in Moom?
- piskov 1y agoIt doesn’t force you with tiles (on 6k xdr tiles are a joke). Its two-stage popup is a game changer. Ie you show it via caps-a, then press one letter to move window anywhere. And it allows you to specify any arbitrary size and position and save that to the specific one letter. It’s a shame I can’t find a single screenshot of this killer feature and I write this from a phone.
- bsder 1y agoIs there an equivalent for Linux?
- rcarmo 1y agoThe main reason I use Moom is being able to move and resize windows using nothing but the keyboard, which is something most tiling window managers completely ignore.
- Oscar_Hall 1y ago@rcarmo Totally agree on keyboard-first workflow. It's interesting how different tools optimize for different input methods. Some prioritize trackpad gestures, others keyboard shortcuts. Would love to see more hybrid approaches.
- cloudking 1y agoPretty cool, but nothing beats Swish if you're using a Macbook trackpad https://highlyopinionated.co/swish/ https://highlyopinionated.co/swish/
- chrisweekly 1y ago"Highly opinionated" indeed ;) One reason I prefer Divvy^1 is that my custom keyboard shortcuts are usable whether typing directly the on laptop w/ trackpad, or (more frequently) on external keyboard. 1. https://mizage.com/divvy/ https://mizage.com/divvy/
- cloudking 1y agoFor me it's about the least amount of hand/wrist movement. Trackpad + Swish feels natural and reduces strain.
- seivan 1y ago[dead]
- fellowniusmonk 1y agoI've moved from window managers to deterministic app switching with Rcmd mapped to capslock and dual cmd being tied to some window arrangement and screen swapping karabiner commands. I've switched to what I consider a french cleat system where I have task specific app/window sets and only keep a single task open at a time. Similar to how french cleat walls are for general storage but then you can arrange all tools for a project on a specific cleat for the duration of the project. How many apps must a person use in reality that rcmd+letter isn't sufficient for deterministic switching? Any web app that isn't just general browsing I have mapped to a safari app now, gmail, llms, etc. chrome's tab management is just a joke.
- tolerance 1y agoWhat do you use to manage window arrangements?
- fellowniusmonk 1y agoI mostly full-screen each app, deterministic switching means I only real need alt layouts if something forces a cross window dnd. But I just use capslock+cmd and jkl; plus a few other keys to handle any adhoc positioning I need. j is left quarter, jk left half, jkl left 3/4, kl middle half, l fullscreen, etc, hitting them again cycles to top half bottom half. So with left hand caps+cmd and right hand home row I can basically do any of 1/4 2/4 3/4 4/4 increment combos with one chord and hit them again for top half bottom half. I don't really do single quarters ever except on far left or right so that's why l is mapped fullscreen. it works very well, was a long time user of btt before I got tired of it randomly failing. a karabiner script handles the key chords and dumps them to yabai
- MarcelOlsz 1y agoDo you have a repo anywhere? Would love to give your setup a go. I use a mish mash of yabai + Amethyst + skhd + karabiner.
- sgt 1y agoNever understood this.. Window arrangements depends on what I'm doing inside those app, and where I want it. That's not a static thing. I use rcmd as well, but I usually like to keep the app I am using in the middle of the screen. Perhaps with something on the side (since I have a large 4K) as there's plenty room for it.
- piskov 1y agoWith 5k/6k displays ordinary tiling is a joke: windows are too big. So apps like moon are far better option. On Windows there is no such thing as Moom, so I use tiling manager like komorebi. As a person switching between different OSs and devices, it’s a shame that rift seems to not use well-established key binding like alt+hjkl. Also for 5k+ display (or ultrawide) this kind of window tiling is a must (which komorebi has) +-----+-----------+-----+ | | | | | | +-----+ | | | | | | +-----+ | | | | +-----+-----------+-----+ ~Welp, I tried, but HN seems to render this not like I paste it~
- Ygg2 1y agoIf you indent your pasted stuff by four spaces, HN treats it as code. That might help.
- bsnnkv 1y agokomorebi is coming to macOS[1] soon :) [1]: https://youtu.be/u3eJcsa_MJk?si=UnHjFXBsWir4QiTz https://youtu.be/u3eJcsa_MJk?si=UnHjFXBsWir4QiTz
- xwowsersx 1y agoooh nice. I'll have to check this out. I tried yabai and it just wasn't stable enough to use. Messed around with a few others and eventually gave up on the idea of a TWM on Mac altogether
- hamasho 1y agoI used to be a heavy user of i3. It's very flexible and configurable, and you can do much more than just moving windows. But after I switched to Mac, I couldn't find a tiling window manager that was both feature-rich and stable. After trying several options, I just use Rectangle[1]. It's not a window manager; it only provides shortcuts for window placements like simply moving windows to left/right/top/bottom or splitting the screen into 3/4/6 sections and place windows. It covers 80% of my needs and there are no pitfalls or unexpected behavior, so now I'm happily using it. Another reason is that I'm getting old and tired of using very flexible software with tons of custom configs. [1] https://rectangleapp.com/ https://rectangleapp.com/
- chrisweekly 1y agoSimilar experience and pov here -- but w/ Divvy^1 (not Rectangle). 1. https://mizage.com/divvy/ https://mizage.com/divvy/
- mieses 1y agoSo this app you recommend is not open source and does the same thing as Rectangle?
- sunsetMurk 1y agoDivvy has a pretty UI to choose the size and location of windows, and puts little buttons in the top corner of windows to change their size and location. Rectangle provides hot keys and an icon in the menu bar to set window size and location. I use rectangle now, but have used divvy in the past and I think is better for people who like to use their mouse vs hot keys.
- chrisweekly 1y agoDivvy has custom hot keys! My prev comment's main point was "keyboard only FTW".
- deleted 1y ago[deleted]
- seivan 1y agoA killer feature that none of the tiling managers for macOS will ever implement for reasons I don’t know why: Make it so I can double tap the cmd key to see outlines of windows and allow me to swipe using the touch board to shift windows around into pockets space.
- cipehr 1y agoHaving just gone through really yak shaving Aerospace into a spot that I'm happy with, I'm curious how folks on here manage having so many overlapping keyboard shortcuts? Maybe it's just me, but I want to map to many things to some combination of hjkl just for the ergonomics... Aerospace's modal feature sort helps solve that shortcut conflict... How are others dealing with this?
- acupofnope 1y agoI did something similar. I use Karabiner and I mapped the right Option key on my external keyboard to Option+Shift (A1), and right Control key to Control+Option+Shift (A2). I've configured Aerospace such that if I want to change focus, I use `A1 + hjkl` to move the focus around, and if I want to move windows around, I use `A2 + hjkl`. I use `A1 + ui` to switch workspaces, and `A2+ui` to move windows between workspaces. For shifting focus between monitors its `A1+m,` and moving between them `A2 + m,` By far these are the shortcuts I use most often and if there are apps with conflicting shortcuts, I change those to something else. I haven't thought about it much but I'm sure I can extend this pattern further for better ergonomics. It works great so far.
- epistasis 1y agoI tried Aerospace but the default was to map all alt keys to 26 different workspaces, eradicating all the built in emacs-like key shortcuts available in every app. That plus there's zero tutorial on the basic key mapping, just a bunch commands and no hints about where to look for how to use it... It is the most hostile piece of software I have encountered in years and I just spend the past few weeks mucking with sway and hyprland on Linux, and mucking in Linux bootloaders so that I can enter the disk encryption password both by serial port and the physical keyboard. So I solved it by deleting aerospace and waiting to try a different rolling window manager, which will be Rift. I suspect in the end I'll just write my own tiling window manager. It certainly seems like there's one for every person who has ever had the whim to do so...
- lucyjojo 1y agofunnily i don't use alt much on emacs and this went smooth as butter.
- acehinnnqru 1y agoThere got a lot of tiling window manager for macOS. People create another and another and another new ones.
- Hammershaft 1y agoI think the root cause is that the default window manager was just horribly designed for a long time. Instantiating new windows of an App is still a horribly designed, deeply frustrating workflow on Mac OS that is just seamless and easy on Linux and Windows. I ended up linking Aerospace to some godawful Applescript just to be able to open a new Safari window without being flung across spaces to an existing Safari window first. Apple does some things best in class but the core design of windowing & using applications is just awful imo.
- saispas 1y agoUnless I've misunderstood what you're asking for (in which case, apologies…) then there's a setting in `Settings > Desktop & Dock > Mission Control` to govern this behaviour. Turn off `When switching to an application, switch to a Space with open windows for the application` and then you'll be able to create a new Safari window in the current Space, not the 'existing Safari space'. The specific path is for Tahoe, but the setting itself has been there for a long time, I think.
- shelled 1y agoThis might not be sufficient for a lot of folks and I do notice sometimes a bit of struggle here and there, but for someone like me who mostly uses one widnow at a time on the Mac, or two screens when I have a external monitor setup along wiht my laptop, this thing kinda does it for me (but then I have never been a heavy "tiling" user at all) – https://support.apple.com/en-in/guide/mac-help/mchl9674d0b0/mac https://support.apple.com/en-in/guide/mac-help/mchl9674d0b0/...
- MaanuAir 1y agoThank you, I had no idea it existed !
- torben-friis 1y agoIs this Tahoe exclusive? I had never seen it before.
- jiehong 1y agono, those shortcuts also work on earlier versions
- deleted 1y ago[deleted]
- swapsCAPS 1y agoI wanted to build my own window manager at some point, but was quickly scared away by the lack of a proper API on MacOS. You basically need to hack your way around it by using the accessibility API instead. I see this project uses Objective C bindings and the accessibility API and am wondering how easy it was to debug, write features and what kind of tooling was used for this.
- bsnnkv 1y agoThe Accessibility framework is not what I would call a "hack" personally. It was quite well thought out and fully featured I've spent the last month working on something similar in Rust with various macOS framework bindings and it's not really that scary You don't really need anything other than a Rust dev env, rust-analyzer and a browser window with the Apple docs website and the objc2 crate docs.rs site open - no special XCode craziness required
- palata 1y agoWhy in the world would you get downvoted for this?
- udev4096 1y agoI have been using aerospace which provides very similar window managing to i3 and so far I have had no issues. I personally don't like the animations or the typical "ricing". Installing random, unmaintained software just for the looks sounds extremely reckless to me
- SirHumphrey 1y agoI used to use tiling window managers on macOS and in the end it got a bit tiring that after every update something broke. It seems like all of them are fighting the system in some very brittle ways. In the end I just learned some shortcuts that Apple provides for moving windows around. I still much prefer working on Linux, but this is at least usable and i do not have to fix it that often.
- Zababa 1y agoI've tried using i3-likes on MacOS but the lack of a mod key is really hurting usability for me. Also, they tend to not be like dwm where each screen has its own virtual desktops, which is not how I'm used to work.
- atticus_ 1y agoin rift each screen/space has its own virtual workspace manager so they are fully isolated from eachother!
- marliechiller 1y agoI use aerospace combined with karabiner, the latter of which allows me to set caps lock - a key I never really use, to meh & hyper. Worth checking out if youre missing a mod key
- rcarmo 1y agoAnother one for my collection: https://taoofmac.com/space/apps/window_managers https://taoofmac.com/space/apps/window_managers
- p2hari 1y agoI have been using Loop(https://github.com/MrKai77/Loop https://github.com/MrKai77/Loop) after trying some of the alternatives listed here and wanted to post that as it was not mentioned. It is something that solves what I was looking for in window management on macos and just putting it out here :).
- sparky4pro 1y agoYep, Loop does all I need and is not in my way.
- kreako 1y ago[dead]
- thenthenthen 1y agoHow did OP get semi rid of the macos top menu bar?!
- nomilk 1y agoWhat is quite upsetting about macOS tile managers is they only seem to work with windows in 'maximum' mode rather than 'full screen', so you always end up wasting screen real estate at the top. (ghastly!) I see from the animated gif Rift is like this, and Rectangle is too.
- nu11ptr 1y agoI personally hate full screen mode. Not sure why it bothers me so much to not see window decorations and menus, but it drives me crazy. I go out of my way to ensure they fill full screen, but just a maximum size, not full screen mode. To each their own I guess.
- masihyeganeh 1y agoI don't get it. Why anyone would need to use tile manager in macOS? How often do you need to have apps side by side? In most cases, just making the app full screen and switch between windows with 4 finger swipes does the job beautifully. Enlighten me please
- viraptor 1y agoLiterally all the time. Slack on the right quarter. The rest is browser / terminal / ide / others in various combinations depending on the task. Quite often it's browser + log tailing. Every app also has subdivisions: vs code can be multi-file + terminal. Terminal itself is multiplexed. Browser is Zen with side-by-side pages quite often.
- masihyeganeh 1y agoIf you ask me, this will cause more distraction than being productive. In your example, would Slack be needed all the time, so it would worth keeping a quarter of the screen? Then IDEs for example have a lot of menus, panes, buttons and everything. You would have much less space for the actual code if you not have it in full screen mode. It might be personal style, but I find having 3 full screen windows and swtiching between them (with the most used, browser, in the middle) with a quick swipe is the most productive.
- viraptor 1y ago> would Slack be needed all the time For my work - mostly yes. If it's not needed, it's not there. > Then IDEs for example have a lot of menus, panes, buttons and everything. I've got them all closed. Whatever panes are needed, they're only open then.
- cdaringe 1y agoYou cant think of any reason you’d want two windows in a viewport at the same time? Not one?
- 1y ago
- duanhjlt 1y agoI get why full-screen plus trackpad gestures feel great on macOS—if you mostly work in a single window, that’s enough. But when the workflow becomes multi-window (terminal, editor, browser DevTools, logs, docs), predictable layouts start to matter. Tiling tools aren’t just “put two windows side by side”—they: - Cut context-switching overhead: focus moves and rearrangements happen via keyboard without breaking flow. - Create reusable “work panels”: replicate the same layout across projects/spaces, so you don’t keep “placing windows.” - Make high-res displays useful: on 5K/6K or ultrawide, precise partitioning beats full-screen. My compromise on mac is “light management” (Rectangle/Moom with a handful of shortcuts) for ~80% of needs; when I need stronger workspace semantics, I use Aerospace/Rift. Not everyone needs tiling, but once window count and switching frequency rise, its value becomes obvious.
- d4rkp4ttern 1y agobeen using magnet for a long time, it lets you map custom key-combos to put windows in specific slots https://magnet.crowdcafe.com/ https://magnet.crowdcafe.com/
- bartvk 1y agoI'm getting an error during compiling. I did a "brew install rust", cloned the project then did "cargo build --bins --release" and got the error Compiling rift-wm v0.1.0 (/Users/bartvk/Developer/github.com/rift) error[E0554]: `#![feature]` may not be used on the stable release channel Now I get I may have to switch to some beta rust version, so I did a "brew install rustup" and tried again "cargo build --bins --release" but same error. It'd greatly help if there was a step-by-step installation guide. I'm not into rust, so I'm getting a bit lost here.
- regenschutz 1y agoNot sure why it doesn't install automatically, but you should be able to install nightly with `rustup toolchain install nightly`.
- bartvk 1y agoI think the problem is, that I installed rustup with homebrew. When I installed rustup in the official way, with the shellscript, I was able to compile according to instructions. Might be my installation though.
- ahamez 1y agoNote that using Hammerspoon, you can build your own window manager. Personally, I really like how Divvy (https://mizage.com/divvy/ https://mizage.com/divvy/) uses a modal (press cmd-alt-ctrl-x, then press a single key to chose a layout for the frontmost window), but it's no longer maintained. Thus, using OpenAI's Codex, I generated a modal window manager (https://github.com/ahamez/dot_hammerspoon/blob/master/wm.lua https://github.com/ahamez/dot_hammerspoon/blob/master/wm.lua). Thought it would be interesting to share this approach!
- MomsAVoxell 1y agoI use MiroWindowsManager (Hammerspoon plugin) to get what I need for window management on MacOS: the ability to position any window in any quadrant by 3 different variations of chord division, at will .. with the same hotkeys. This means I can put things where I need it in milliseconds.
- sporkland 1y agoI've been using divvy, had no idea it isn't maintained... but I'm not sure if I'd need any more features outside of what it already does. What items do you want to see them add?
- self_awareness 1y ago> It uses private APIs reverse engineered by yabai and other projects Don't get used to this. Because of private API use, this project will break at some point after some macOS update.
- atticus_ 1y agoThis is not true. The private api's we use are not hacks to work around macos spaces and are actually the basis of how appkit and the os in general works. They are essentially guaranteed to be stable and also not to be removed because they have been in use for many many years with no change. The private api's that have been broken (as experienced by yabai) are strictly related to things that rift does not interact with like moving windows between macos spaces(since we use a virtual workspace system).
- self_awareness 1y agoOnly in abandonware software private APIs stay the same. In current, living technologies, they always change. Apple can simply issue an update to all consumers of the API so that they start using different symbols. If you have the energy to play this game, then it's fine. Just remember that Apple doesn't have any problem with killing the whole kernel extension market (this among lots of other things). At my work I'm also forced to use private APIs on macOS and it's always a mess. Each update is a source of stress. Sometimes there's no work to be done, sometimes I need to spend a month to figure out what's happening. I generally discourage people from using private API and I always say that if the platform doesn't allow doing some kind of software using public API, then don't do this software for this platform. Select a different platform. Use feedback forms to request functionalities. But using private APIs is asking for trouble. Again, if you want to play the game then it's fine. But if you offer software for users, then you're in some way responsible for those users as well.
- swoorup 1y agoDoes anyone have nix flake for this? I am trying out several window managers after yabai. Aerospace is just laggy sometimes, not sure if it is to do with the events I emitted for it to display nice workspaces in sketchybar. I might try this later.
- bromanko 1y agoHere you go: https://github.com/bromanko/nix-config/blob/main/packages/rift.nix https://github.com/bromanko/nix-config/blob/main/packages/ri...
- AstroBen 1y agoIf you're at the point of installing tiling window managers on MacOS.. Linux is what you want
- jrks11o 1y agohttps://github.com/nikitabobko/AeroSpace https://github.com/nikitabobko/AeroSpace
- lancer 1y agoLongtime former Spectacle and now Rectangle user here. An ancillary issue I'm curious how people deal with is efficiently getting the mouse pointer from one display to another. When working with two apps on two screens, constantly dragging the mouse all the way across one display to the next and back is tedious. I found Keymou [1] years ago to solve this with hotkeys but am wondering if there are other tricks or apps to help. 1. https://manytricks.com/keymou/ https://manytricks.com/keymou/
- Leftium 1y agoI just discovered RayCast's window manager[1]. - The "cycle 1/2, 2/3, and 1/3" feature is amazing. - As well as optional (CapsLock as) HYPER key[2]. (Still using Magnet for the activation areas) The one thing Rift offers that I needed was: "Focus follows the mouse with auto raise" I managed to find it here: https://github.com/sbmpost/AutoRaise https://github.com/sbmpost/AutoRaise [1]: https://www.raycast.com/core-features/window-management https://www.raycast.com/core-features/window-management [2]: https://manual.raycast.com/hyperkey https://manual.raycast.com/hyperkey
- sporkland 1y agoI currently use divvy and effectively a desktop per app. It's not perfect but gets me most of the way there.
- pcunite 1y agoI'm new to macOS, long time Windows dev. What I'm really missing is taskbar. A way to see, visually, that I have application running that are minimized and yet able to be positioned by sliding them around. Is there anything like this for macOS 15.7?
- pcunite 1y agoSomething like sidebarapp.net?