
Window Manipulation Utilities - bloat
https://wmutils.io/about.html
======
isomorphic
If anyone should wander into this thread looking for Mac OS X equivalents, I
thought I would note: Apple provides window-manipulation APIs via its Open
Scripting Architecture (OSA). Previously that meant you had to use AppleScript
for best results--I won't comment on AppleScript except to say that as of
Yosemite, Apple treats JavaScript as a first-class OSA citizen.

This means, essentially, that one can write JavaScript window-manipulation
scripts and run them with via shebang with "osascript". See here:
[https://github.com/dtinth/JXA-Cookbook](https://github.com/dtinth/JXA-
Cookbook)

One can query an application's windows, then directly manipulate their
position, size, and so forth in JavaScript.

I have some hacked-up stuff I use for my personal setup. I've found it works
better for me than any of the other Mac OS X utilities for the purpose.
Unfortunately I haven't extracted a common pattern for a general-purpose
utility, but I can point people in the right direction if they want to roll-
their-own.

~~~
daurnimator
See also: Mjolnir:
[https://github.com/sdegutis/mjolnir](https://github.com/sdegutis/mjolnir)

~~~
rz2k
Hammerspoon is a fork that has enough community to keep the mailing list
somewhat active. It sounded like Mjolnir might turn into the basis for a less
low level, more polished commercial product, but there is little news.

Anyway, both use Lua for configuring OS level controls of the environment and
user interface.

------
lmilcin
I'm using i3 window manager which allows as much and even more than wmutils.

For example, this simple script allows me for an instant assigning of
workspaces to outputs on my dual monitor setup:

i3-msg "move workspace to output VGA1; workspace $1"

i3-msg "move workspace to output HDMI2"

What it does, is it moves current workspace from primary to secondary output
and then brings up requested workspace on primary output.

The beauty is that by quickly requesting 2 workspaces I can immediately assign
workspaces to both outputs. After some usage muscle memory kicks in and now I
can instantly set up whatever I want on both of my monitors without even
thinking or fumbling with mouse.

~~~
AndrewUnmuted
I like your style. I have started an open source project
[recently]([https://github.com/SacredData/COMPUTER](https://github.com/SacredData/COMPUTER))
which allows users to execute such commands with voice commands. It's
incredible that after all these years, window managers, even those as powerful
as i3, still require users to think.

------
TurboHaskal
Slightly off topic, but somewhat related as I happened to ack "i3" on this
thread.

I used to spend time configuring the hell out of xmonad and i3 until I
realized that life is too short not to use a window manager with sane defaults
while treating both the keyboard and the mouse as first class citizens.

wmii (for single monitor setups), cwm and dwm are good examples of that. Most
mainstream desktops are also good.

Windows is excellent out of the box and the contextual file manager offers an
unmatched experience across all operating systems.

OSX needs third party tools.

------
dawnbreez
A WM in a Bash script? Sounds like my kind of heaven.

