turn focusnext into dwm's focusstack
restrict focusnext to the same monitor
add selclient() helper
This may get inlined later, but it's nice for now. The focused client
if any should always be both at the top of fstack and visible on selmon.
continue to focus monitor under mouse cursor
focus monitor under mouse cursor initially
grabbed_client was too long a name
inline moveresize
There were only two lines left in common
grabsx/y are only used by move now
calculate resize based just on cursor/window
This eliminates the need for grab_height and grab_width.
Don't change tiling order in focusnext()
Use the focus stack instead to determine which client is focused
add separate list of clients for focus order
Previously, clicking a client to focus it would change where it was in
the tiled layout as well.
layouts: tile and floating
Behavior's still a little wonky but positioning is there.
"root" color was easy to make configurable
fix rendering on scaled monitors
I have no idea why this takes the raw unscaled resolution, and then we
have to multiply by the scale *again* in render(), but that's life.
introduce rules for monitor configuration
(with dwm, this would already have been done by the X server)
no need to manage unmapped clients
is there?
consistent naming for coordinate variables
x and y are reserved (inasmuch as it's dwl's choice) for coordinates
relative to the layout. ox and oy are used for output-relative
coordinates. sx and sy are surface-relative. dx and dy are deltas.
figuring this out the first time was kind of a Thing... just don't pay
attention to what happens in render and you should be fine.
inline xytosurface in xytoclient
It was a simpler function than it looked