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.
This makes context switching bearable when working on several things.
tons of useless features means it does what other other people want.
Isn’t that a very subjective and personal preference. Why do you feel people’s reasons are not valid? You don’t have to convince everyone.
That implication is what's wrong, while his subjective experience of "I prefer Mac OSX" is obviously not wrong, the reason he's citing just don't hold up to critical analysis, hence my own statement that I wish apple enthusiasts in general would be more honest with themselves about their preferences - instead of phrasing it in a way that makes it clear that anything other then MacOS is something for juvenile people that don't have any life experience yet.
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~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
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?
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.
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...
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.
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.
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!
This means I can put things where I need it in milliseconds.
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.
I might try this later.
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.
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.
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.
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.
On a larger screen: Opening a terminal alongside the editor or a browser. Or opening two browser windows when working on two documents.
You sound like you're asking me why my favourite colour is red, because it's perfectly fine to have blue as a favourite colour. Of course it is fine, I just like red better.
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.
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.
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.
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!
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
- 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
[1]: https://www.raycast.com/core-features/window-management
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.
I see from the animated gif Rift is like this, and Rectangle is too.
Compiling rift-wm v0.1.0 (/Users/bartvk/Developer/github.com/rift)
error[E0554]: `#![feature]` may not be used on the stable release channelNow 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.
What’s the difference between this and yabai or aerospace?
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
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
However if I close the 2nd Finder tab, then Calendar maximizes below Finder.
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
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.
Apple does some things best in class but the core design of windowing & using applications is just awful imo.
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.
Don't get used to this. Because of private API use, this project will break at some point after some macOS update.
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).
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.
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.