Bastien Dejean
7df593f4e8
Handle clients outside of every monitors
2013-11-28 11:32:20 +01:00
Steven Allen
e401b427b9
Don't schedule windows twice.
2013-11-09 12:32:31 -05:00
Bastien Dejean
4451d8f0e7
Asynchronously parse rule command output
2013-11-08 20:31:23 +01:00
Bastien Dejean
948b8046f7
Externalize rules
2013-11-05 20:09:24 +01:00
Bastien Dejean
de94ecb267
Add a floating state to desktops
...
Modifying the floating state of a desktop doesn't change the floating
state of the existing windows.
2013-11-03 23:01:31 +01:00
Bastien Dejean
c989aa7efc
Merge translate_position and translate_client
...
- Expand `underlying_monitor` into `monitor_from_client` to avoid
passing a NULL pointer to `translate_client`.
- Remove the `fit_monitor` setting (use the `--center` rule effect
instead).
- Don't remap a window in it's last location (node invisibility would be
the proper way to do this).
- Call `translate_client` after configure requests.
2013-10-27 11:25:34 +01:00
Steven Allen
344ab2d269
Relatively translate floating clients to the correct monitor
2013-10-26 15:36:05 -04:00
Bastien Dejean
d3c624e8f6
Handle remapped windows in manage_window
2013-10-23 22:53:18 +02:00
Bastien Dejean
ae1ed3b795
New setting: fit_monitor
2013-10-23 22:20:34 +02:00
Bastien Dejean
44ab9fc037
Express initial position in monitor referential
2013-10-22 16:06:47 +02:00
Bastien Dejean
dc805f9a6a
Consolidate fit_monitor
2013-10-20 20:33:34 +02:00
Bastien Dejean
229d5797dd
Simplify fit_monitor
2013-10-20 14:39:01 +02:00
Bastien Dejean
d396210f41
Revert "Initially center floating windows on their monitor"
...
In fact we can't do that, otherwise floating windows that do specify non
silly initial coordinates would be ignored.
2013-10-19 22:01:40 +02:00
Bastien Dejean
114881d958
Initially center floating windows on their monitor
...
And simplify fit_monitor along the way.
2013-10-19 21:31:34 +02:00
Bastien Dejean
6c51d8e3da
Merge stack and stack_under
2013-10-19 17:46:28 +02:00
Bastien Dejean
08e1c85ce0
Remove tags
...
Tags should generalize desktops.
To accomplish this, the main node attributes: (type, ratio) would have
to become a dictionary: ((tf1, (type1, ratio1)), (tf2, (type2, ratio2),
...). (`tf<n>` being a tag field.).
2013-10-19 10:56:34 +02:00
Bastien Dejean
6daf058c5d
Fix initial tagging of windows
2013-10-13 21:07:40 +02:00
Bastien Dejean
7334277454
Implement private windows
2013-10-12 21:16:51 +02:00
Bastien Dejean
6bc128554e
Implement frames
2013-10-10 18:24:21 +02:00
Bastien Dejean
d07391af91
Handle tags in control --toggle-visibility
2013-10-09 17:33:42 +02:00
Bastien Dejean
15695c066b
Add copyright header
2013-10-08 21:05:56 +02:00
Bastien Dejean
c5d4c6577d
Handle _NET_WM_STATE more carefully
...
After all, it seems (see spectrwm) that the window manager should
maintain that property.
2013-10-07 11:41:54 +02:00
Bastien Dejean
2fb21be70c
Don't set _NET_WM_STATE
...
The window manager shouldn't do this (cf. EWMH).
2013-10-06 21:42:34 +02:00
Bastien Dejean
35e9927ed9
Make sticky windows stick to their monitor
2013-10-06 16:58:02 +02:00
Bastien Dejean
a7b42fad6e
A vacant node can be visible
2013-10-06 10:20:37 +02:00
Bastien Dejean
a75979be62
Implement tags
2013-10-05 22:32:40 +02:00
Bastien Dejean
c6ceca7683
Support _NET_WM_STATE_STICKY client message
2013-10-01 19:34:38 +02:00
Bastien Dejean
ce25529e5c
Implement sticky windows
2013-10-01 18:04:18 +02:00
Bastien Dejean
f2a578de2b
Make the window border width a desktop setting
2013-10-01 14:15:50 +02:00
Bastien Dejean
bfded1effc
History is global and stacking is independent
...
The last desktop and monitor are now deduced from the history.
The stacking order is now independent from the history of the focused
nodes: this prevents hacks on both sides.
All windows are now considered in the stacking algorithm: it prevents
tiled windows from one monitor to appear above the floating windows of
another monitor.
Transfered windows are stacked below the windows of the same kind.
2013-10-01 10:48:03 +02:00
Bastien Dejean
d5b84c082a
Don't unmap windows in adopt_orphans
2013-09-22 21:46:41 +02:00
Bastien Dejean
70c6cada07
Make focus_follows_pointer work on empty desktops
2013-09-22 11:16:06 +02:00
Bastien Dejean
80caab4445
Make sure strings are null-terminated
2013-09-21 12:39:59 +02:00
Bastien Dejean
3dda8e7f6f
Move a few functions from tree to desktop/monitor
2013-09-20 11:57:09 +02:00
Bastien Dejean
85f67b2164
Remove a few useless header inclusion via deheader
2013-09-19 15:38:22 +02:00
Bastien Dejean
d168e919e3
Split types.c into {monitor,desktop,history}.c
2013-09-19 15:02:49 +02:00
Bastien Dejean
b1d793031b
Don't support ICCCM's WM_STATE
...
It seems that it might cause more harm than good.
E.g.: Skype.
2013-09-19 10:29:19 +02:00
Bastien Dejean
afcbf4795e
Consider unmapped windows as withdrawn
2013-09-18 12:38:44 +02:00
Bastien Dejean
84572b0204
Set the WM_STATE atom
...
`xkill` needs this work without the `-frame` option.
2013-09-18 12:07:55 +02:00
Bastien Dejean
5e00bfe688
Add --fullscreen and --locked to rule -a
2013-09-18 11:42:20 +02:00
Bastien Dejean
cc4492d9ca
Remove --float-upcoming
from control
...
The following:
bspc control --float-upcoming
can now be expressed as:
bspc rule -a \* --floating --one-shot
2013-09-17 11:40:18 +02:00
Bastien Dejean
9a9693545d
Add new option for control
: --float-upcoming
2013-09-16 13:36:52 +02:00
Bastien Dejean
a0b9199df5
Stack in terms of relative actions
...
This rewrite is based on a TODO comment for the *stack_refresh*
function of *awesome*:
It might be worth stopping to restack everyone and only stack `c'
relatively to the first matching in the list.
And on the concept of relative stacking (via XDG_CONFIG_WINDOW_SIBLING).
Additionally the `adaptative_raise` setting was removed because it
became obsolete when the choice was made of not raising windows when
focusing via `focus_follows_pointer`.
Windows of type *desktop* are now supported (but not managed).
2013-09-12 16:26:01 +02:00
Bastien Dejean
e14ce44333
Factorize client message sending
2013-09-10 10:39:25 +02:00
Bastien Dejean
e757323885
Don't trust WM_PROTOCOLS
...
Some clients (e.g.: Skype), have WM_TAKE_FOCUS in their WM_PROTOCOLS but
don't respond to it.
2013-09-07 10:14:14 +02:00
Bastien Dejean
f399fb8797
Revert "Don't trust WM_PROTOCOLS"
...
This reverts commit 2bfaefa08f
.
2013-09-06 11:02:50 +02:00
Bastien Dejean
2bfaefa08f
Don't trust WM_PROTOCOLS
2013-09-06 10:53:31 +02:00
Bastien Dejean
387ece3688
Implement ICCCM's WM_TAKE_FOCUS behavior
...
Additionally, the `apply_shadow_property` was renamed to
`apply_floating_atom`.
2013-09-05 15:37:54 +02:00
Bastien Dejean
ea49ed35d7
Compute colors on the fly
...
When drawing window borders, we must consider the color map of the
window to compute the correct color *pixel*.
2013-09-04 21:57:26 +02:00
Bastien Dejean
72b8431be0
Prevent input focus from being stolen
...
Example: if one chromium window is opened and a link is opened in
newsbeuter then chromium will steal the input focus (without explicitly
requesting focus via the proper EWMH message).
2013-07-30 14:53:44 +02:00