There should be an example config somewhere that you just copy over to ~/.kwm
If not, snag it from the GitHub page.
EDIT: I've never used it before, but Phoenix also seems interesting. It's configurable via JavaScript.
By the way check out Phoenix for keyboard driven OS X window management.
https://github.com/kasper/Phoenix (see the new 2.0 branch) https://github.com/kasper/Phoenix/tree/2.0
Check the wiki for example configs.
Hammerspoon (Hammerspoon.org) comes very close to mimicking AHK using LUA-based scripts (plus the modules are called "Spoons" - how cool is that?).
Also, Phoenix (https://github.com/kasper/phoenix) does simiar stuff via Java-based scripting.
Both free, both open-source - many shared resources available out there.
Basically, Phoenix provides a JavaScript API to interact with the Accessibility API in OS X. This means you can interact and control screens, apps and windows. By default, Phoenix doesn’t do anything.
You write your own JavaScript configuration that can for example bind keyboard shortcuts to position or resize windows on your screen to your liking. You could also bind to system events, such as app launches, and do something based on these events. Most people (“hackers”) use Phoenix to improve their workflow.
You are right that maybe there should be a visual demo for new users. Take a look at the API to get an idea what you can accomplish https://github.com/kasper/phoenix/blob/master/API.md.
You are probably looking for something like Phoenix. It's a little like wmutils for OS X. You can create all kinds of layouts, write custom functions and configure keybindings.
I use 2 things to fix this, DisplayPlacer which sets my monitors correctly and a framework called Phoenix for positioning my windows. I can't recommend Phoenix unless you want to write code but don't let DisplayPlacer scare you off, it's very easy to use.
Just configure your windows the way you want, run displayplacer list
in the terminal and it will output a command you run in the future to reconfigure your windows the same way. I originally used it because no other tool allowed for multiple external monitor setups (work and home for me) but continued using it because it's so easy to integrate with other automations.
1 thing missing (for me) is automation. E.g.: - when firefox starts and external monitor is connected - position it here; if only 1 screen - move it there.
I currently use phoenix for that (https://github.com/kasper/phoenix) but it requires coding skills and was a pain to setup everything perfectly.
I'd love to see some alternatives that would make this easier.
it’s still the best/fastest/configurable 3rd party switcher, and works on all currently supported versions of osx. here’s how i have it setup
if you’re after the most customizable setup, try amethyst or phoenix (depending on your programming language preferences)
It's possible, but with third-party programs.
I'm currently using Phoenix for this: https://github.com/kasper/phoenix
There are most probably more user-friendly tools for this, I just don't know anyone.
Something like this? Honestly the point of this and other endeavors is simply the popularity of the language. JS is extremely popular so in this specific case it makes total sense that you’d want to use something you already familiar with to script the rest of your daily life.
I’m not doing any JS these days, but the reality is that employers are looking for a common denominator and right now, that’s JS.
Sure! There are a few examples in the Wiki: https://github.com/kasper/phoenix/wiki/.
Most people implement their favourite Grid-based window management with Phoenix, i.e. moving and resizing windows based on a grid layout. Something very popular in the Linux side of the UNIX world. Others use Phoenix to organise and position windows (such as centering, moving windows between displays etc.). Phoenix is also an easy way to bind keyboard shortcuts for example to launch apps.
The focus is being a window (and app) manager. Obviously, it will not suit all people and in many parts AppleScript can do much more. So in no means is it competing with AppleScript directly.