'send_to' was broken, '--next' and '--prev' can't be options, and I
don't want to restrain the name of the desktops with 'send_to
DESKTOP_NAME|next|prev [--follow]' or handle multiple options: 'send_to
(DESKTOP_NAME|(next|prev --relative)) [--follow]' so I just created new
messages.
It seems that pointer motion events are not sufficient to enforce
'focus_follows_pointer': some windows grab the pointer and catch those
events (e.g.: *zenity*), preventing *bspwm* from receiving them. So we
need to listen to enter notify events too.
'focus_follows_mouse' is renamed to 'focus_follows_pointer'.
The aforementioned option is now handled by motion notify events.
sxhkd is now required to achieve window move/resize actions through
the new '*_pointer' messages as bspwm is not grabbing the pointer anymore.
This teaches the send_to_monitor command to send a client to either the
next/prev monitor rather than having to always specify a named monitor.
Such options are useful to be able to send clients to monitors relative to
their own position.
It will facilitate debugging and also provide an exhaustive
representation of the current state that might be used to reconstruct
the layout of each desktops. While doing so, it occurred to me that the
*born_as* attribute of the *node_t* structure was only used for leaves,
so I changed it into a *client_t* attribute.
It looks as though commit f37c14902f
introduced a regression in the way urgency borders are rendered. Because
each window is considered across all desktops for monitors, we must now
augment the checking of an urgent client when looking up the border colours
for focused windows also.
Without this, a single window on a desk on an unfocused monitor will be
correctly set as having an urgent hint, but its borders will not pick up on
any urgent border colour settings.