Brian Lovin
/
Hacker News
Daily Digest email

Get the top HN stories in your inbox every day.

hamasho

I 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/

dawnerd

One thing rectangle does that I absolutely love is todo mode. I don’t actually use it for todo but having a windows set to always be visible and have the full window shortcut adjust based on that, cheffkiss.

asimovDev

Shoutout to Rectangle for having Spectacle keybindings option. Maybe one day I will learn the normal ones but I am too used to them at this point

chrisweekly

Similar experience and pov here -- but w/ Divvy^1 (not Rectangle).

1. https://mizage.com/divvy/

mieses

So this app you recommend is not open source and does the same thing as Rectangle?

sunsetMurk

Divvy 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.

rwyinuse

I too recommend Rectangle. It made transition from Linux significantly less painful.

undefined

[deleted]

Etheryte

Maybe I misunderstand what you mean, on one hand you say you want a window manager that's feature rich, on the other you say you're tired of using very flexible software with tons of configs. Aren't those two at odds with one another?

pfg_

I wouldn't consider having good default configs and being feature-rich at odds with eachother. Ghostty is feature-rich but needs no config. There's no reason yabai needs to be so highly composable that it doesn't even have a hotkey listener by default and and instead points you to another piece of software that only translates hotkeys to shell commands and is no longer being maintained. i3 at least has a pretty usable default config.

exe34

flexible usually means "it does what I want".

tons of useless features means it does what other other people want.

reddit_clone

Yep. Another long time rectangle user. I use multiple desktops (Spaces) and arrange windows ( browser window, emacs frame, iterm widow) for each task.

This makes context switching bearable when working on several things.

malkosta

Rectangle+Apptivate made me stop looking for an i3 alternative, after years. The first for moving windows, the second for switching between them with super+number, just like i3.

piskov

With 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

If you indent your pasted stuff by four spaces, HN treats it as code. That might help.

bsnnkv

komorebi is coming to macOS[1] soon :)

[1]: https://youtu.be/u3eJcsa_MJk?si=UnHjFXBsWir4QiTz

xwowsersx

ooh 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

shelled

This 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/...

kace91

Is this Tahoe exclusive? I had never seen it before.

undefined

[deleted]

jiehong

no, those shortcuts also work on earlier versions

MaanuAir

Thank you, I had no idea it existed !

duanhjlt

I 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.

swapsCAPS

I 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

The 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

Why in the world would you get downvoted for this?

cipehr

Having 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?

lemontheme

They’re not, is the impression I get. I usually run into a shortcut conflict within the first few minutes of actual day-to-day use.

I switched to Aerospace about a year ago. I hide everything behind a leader key: alt+space. That brings me into Aerospace’s normal mode. I have a few alt-shortcuts there for quick access: e.g. alt-{hjkl} for moving between panes. But most things are in a dedicated mode. I have a ‘go-to’ mode and a ‘move-to’ mode. Once in either mode, pressing any letter or number will go to/move a pane to space corresponding to the letter/number. So for instance, if I want to move my terminal to space ‘t’ then I type `alt+space g t`. To move to the space I type `alt+space m t`.

I’ve been enjoying this setup because it feels like a natural extension of my terminal setup: zellij/tmux with leader key ctrl+space and helix (also modal) inside.

One thing I constantly struggle with in Aerospace, though, is its tendency to keep windows hidden after switching screens. You have to hunt for them in the bottom-right corner and just hope you can drag them back into view.

pulq

> One thing I constantly struggle with in Aerospace, though, is its tendency to keep windows hidden after switching screens.

I'm with you. Heres workaround: Instead of doing brute force, try toggling floating mode while the windows is focused.

epistasis

I 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

funnily i don't use alt much on emacs and this went smooth as butter.

acupofnope

I 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.

creakingstairs

Meh (ctrl alt shift) and hyper (ctrl alt shift cmd). And I bind caps lock to meh on long press and esc on tap.

This gives me plenty of easily reachable hot keys. Eg I can switch between spaces with meh + number. I have terminal hot window bound to meh + space. Moving focus between windows is meh + hjlk.

ahamez

Note that using Hammerspoon, you can build your own window manager.

Personally, I really like how 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).

Thought it would be interesting to share this approach!

MomsAVoxell

I 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

I'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?

cloudking

Pretty cool, but nothing beats Swish if you're using a Macbook trackpad https://highlyopinionated.co/swish/

chrisweekly

"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/

cloudking

For me it's about the least amount of hand/wrist movement. Trackpad + Swish feels natural and reduces strain.

seivan

[dead]

fiddlerwoaroof

I 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

Moom 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__

What features do you like in Moom?

piskov

It 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

Is there an equivalent for Linux?

rcarmo

The 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

@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.

rcarmo

On the other hand, no window manager I know of (on Mac) lets you switch to the adjacent windows using just the keyboard.

masihyeganeh

I 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

Literally 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

If 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

> 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.

tonytamps

I won't speak to "needing" a tiling window manager but "just making the app full screen and switch between windows with 4 finger swipes does the job beautifully" - you you.

I have disabled most gestures, animations, and multiple desktops (spaces?) in macos. The swiping between each of these full screen apps is painfully slow to me. It's compounded by needing to pass through an app to get to one on the other side, meaning it could be 2 or 3 swipes before the app I need is the one on screen. When I see someone swipe the wrong direction and quickly swipe back it makes me cringe.

When I want an app on screen I don't want to perform mental calculation for how many steps away, nor do I ever want to have to pass through an app to get there.

graemep

Not on MAcOS, but I imagine the reason is the same as mine for using tiling on Linux.

If you are using a small laptop your argument holds.

However, the larger your monitor the more the benefits of having things side by site. I do it all the time. A document I am writing an email about and the email open side by site. Editor, terminal and VCS GUI open at the same time. Documentation and code open side by side. Template and web browser. Accounting software and bank statement. File manage and absolutely anything. Chat window and whatever you are discussing.

I find it easier and more productive most of the time.

nu11ptr

There are definitely times it is useful. For example, a web browser with docs next to an IDE, or perhaps some other workflow where you are transcribing from one app to another. I will agree most of the time I do prefer full screen and use virtual desktops to swap back and forth, but it depends on the scenario. Also, some apps just don't need that much screen real estate (like my terminal, spotify, discord, chatgpt, etc.) and often look perhaps even odd full screen, so I just tile them into quarters on one virtual desktop.

shinycode

I used to switch spaces but it’s worst for mental load than having everything on the same screen for big screens. I have 3 32inch screens (2 vertical on each side) and full screen apart from IDE like does not often makes sense. So splitting is like having smaller screens at all time and remove the need to find back which virtual screen has which apps. Like there is chrome on several virtual spaces if you cmd-tab on chrome it does not always choses one one you want. You have to get back manually at the screen which is cumbersome. When I use only the MacBook I tile less and use more virtual screens to organize the windows because there is less real estate. Slack, several chrome (render of code, doc, clickup etc), terminal, IDE, postman, datagrip all within a shortcut of being focused and without changing the whole screen. I guess that depends on your needs but having the equivalent of 8 screens the size of the MacBook at all time it’s really awesome and makes me really productive, r-cmd allows me to focus on app app with a shortcut so it’s really fast. No more switch between desks is a relief to find back where my windows are

chrysoprace

Nobody needs anything, it's all about preference. I keep apps side-by-side all the time, but by using the same style of window manager across each OS I use (I use Mac, Win, and Linux) I'm able to keep a similar workflow, instead of needing to cater to each OS' prescribed workflow.

aldanor

All the time. 49'' screen is built for that.

The usual setup = terminal is the central half with nvim being one half of that, sometimes also split into two side by sides, sometimes not; two terminal tabs in the right pane (zellij). Browser = left quarter. Right quarter is whatever, slack, gmeet etc.

leipert

Animations take too long with the swiping. Having apps on the same virtual desktop all the time.

On a larger screen: Opening a terminal alongside the editor or a browser. Or opening two browser windows when working on two documents.

fellowniusmonk

I'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

What do you use to manage window arrangements?

sgt

Never 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.

tolerance

Yeah but, have you seen a French cleat storage system?

I’m at a point where my preferred arrangements are pretty static. Either full screen, split in half, or one window on left and two others top/bottom on the right. Some apps on MacOS have opinionated minimum window sizes that can obscure parts of the GUI so in a pinch top or bottom half sizes become necessary. At this point it seems warranted for me to disclose that I too use rcmd.

A setup allowing me to shuffle across these arrangements and automatically place new windows according to them would be nice. I think it’s possible with tools like Aerospace but I never felt the drive to try it out until I saw those French cleats!

fellowniusmonk

I 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

Do you have a repo anywhere? Would love to give your setup a go. I use a mish mash of yabai + Amethyst + skhd + karabiner.

swoorup

Does 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.

Daily Digest email

Get the top HN stories in your inbox every day.

Show HN: Rift – A tiling window manager for macOS - Hacker News