Show HN: Phoenix 2.6 – a macOS window and app manager scriptable with JavaScript
github.com
github.com
It's easy to customize, there are gifs in the readme, and it comes packed with features, I hope you'll like it:
My personal configuration is written in TypeScript and I maintain typings for Phoenix as well. I try to find ways to improve my every-day and implement them in Phoenix, things like: moving/resizing windows, coffee timer, monitor brightness, terminal hotkey, etc. In the past I've used it to track what applications I spend my time in or to automatically switch Karabiner-Element profiles based on which monitor is connected. If you're looking for inspiration, feel free to have a look:
It is not scriptable but gets the job done.
I've tried most of the simpler, GUI-based window managers for macOS but I haven't found one that let's me set window sizes explicitly in pixels yet. With hammerspoon I figure out the width of the terminal app I want, and adjust the windows accordingly.
From a user higher up in the thread. Nice example.
- The wm is working with me to use the entire screen.
- You can always revert to making windows float if you need it.
- You can use supporting terminal with no title bar which saves space (see here https://www.dropbox.com/s/0f08qa0dbhhc6nv/Screen%20Shot%2020...)
It is occasionally annoying when something doesn't behave as expected but its a fun tool to use in general.
I've looked at some links to examples in the wiki: https://github.com/kasper/phoenix/wiki#examples
...and Garrow Bedrossian's config: https://github.com/garrow/phoenix-configurations
...is da bomb!
Others look very good too.
That said, Phoenix has an event for when the screens change, you can use it to react, enumerate the new screens, etc. Something like:
Event.on('screensDidChange', () => { const sizes = Screen.all().map(s => s.flippedVisibleFrame()); })
Hope that helps!
I think it would be great to have custom names for spaces, and assign various apps to each space, and then be able to log the time spent in each space to a text file.