Commit graph

164 commits

Author SHA1 Message Date
Bastien Dejean
1795fbb78d Remove apply_floating_atom setting
It is trivial to emulate this setting by subscribing to events.
2015-11-13 12:10:39 +01:00
Bastien Dejean
d98c3d17ae Document and homogenize subscriber events 2015-11-09 15:00:47 +01:00
Bastien Dejean
2f93d90d3d Add class and instance names to bspwm's windows 2015-10-31 22:19:17 +01:00
Bastien Dejean
40cdd64a7b Rewrite the stacking engine
Stacking now involves 3 layers: BELOW, NORMAL and ABOVE.

In each layers, floating windows are stacked above tiled windows.

The *stack* function is now extremely simple: it just inserts an item in
a sorted list, relying on *stack_cmp* to compare clients.

Fullscreen windows are no longer special.
2015-10-26 20:56:56 +01:00
Bastien Dejean
645ad38885 Unlink the socket before binding
This is a recurring request (the probability of removing an important
file is probably low).

Also: don't start the X setup unless we have a working socket.
2015-08-17 10:14:07 +02:00
Bastien Dejean
639763c906 Reinstate the motion recorder for FFP
Because many clients (e.g. termite) prevent us (maybe unknowingly) from
capturing motion events on their windows, we're forced to create a
window for this sole purpose.

Grabbing the pointer isn't an option, because it forces us to consider
some of the enter notify events we should be ignoring.
2015-06-12 22:05:22 +02:00
Bastien Dejean
8821c69527 Only honor FFP in reaction to pointer motion events
It appears that unmapping windows might generate undesirable enter
notify events. It can lead a very nasty bug where the focus constantly
switches between two desktops ad infinitum (cf. #268).
2015-06-09 20:39:00 +02:00
Bastien Dejean
56895ab9ab Implement focus_follows_pointer via enter notify events
The implementation based on a motion recorder had bad side effects.
2015-06-06 18:25:20 +02:00
Bastien Dejean
9dd581faaf Allow subscribers to choose what they listen to 2015-05-09 21:12:19 +02:00
Bastien Dejean
5c1f76fdd6 Be verbose regarding broken connections 2015-02-09 13:56:46 +01:00
Bastien Dejean
28e04dced1 Use explicit screen number in socket path template 2014-11-23 15:38:49 +01:00
Bastien Dejean
c49bc92d12 Use generic BSD 2-clause license
Fixes #176
2014-10-22 11:53:03 +02:00
Bastien Dejean
73905a6223 Load default settings before adding desktops 2014-05-07 11:00:18 +02:00
Bastien Dejean
ab6b6c5e36 Use proper function names 2014-05-05 11:35:06 +02:00
Bastien Dejean
42a0fdd253 Refactor error reporting
Fixes #123
2014-02-17 11:55:34 +01:00
Bastien Dejean
b8f9e567b9 Add a --get-status option to the *control* command
Fixes #120.
2014-02-11 18:40:34 +01:00
Bastien Dejean
b9dcab1900 Remove trailing spaces in headers 2014-01-19 14:41:37 +01:00
Bastien Dejean
c231e8cf41 Indentation: convert spaces to tabs
http://lea.verou.me/2012/01/why-tabs-are-clearly-superior/
2014-01-18 16:30:00 +01:00
Bastien Dejean
ad5d5a9390 Handle SIG{INT,HUP,TERM} signals 2014-01-01 10:36:01 +01:00
Bastien Dejean
6d2f407da3 Remove obsolete opacity atom 2013-12-28 14:42:48 +01:00
Bastien Dejean
986825a118 Just quit when the connection is closed 2013-12-23 20:39:14 +01:00
Bastien Dejean
a7fe634bf0 Incorporate the display name into the default socket path
Fixes #105
2013-12-23 11:41:10 +01:00
jvvv
2341efd48d Whitespace fix. 2013-12-15 20:27:33 -05:00
John Vogel
923e2d10ef Add xinerama support back in. 2013-12-15 20:24:21 -05:00
Bastien Dejean
cd97a3290a Reinstate the *rule* command
External rules are truly optional. At last.
2013-12-12 14:38:48 +01:00
Daniel Walter
abb4094ce2 Fix endless loop due to missing cast
On armv7 bspwm startup hangs during startup
due to a missing cast.
2013-12-04 12:07:55 +01:00
Bastien Dejean
3f23255a59 Handle zombies via SIGCHLD 2013-11-09 11:08:36 +01:00
Bastien Dejean
4451d8f0e7 Asynchronously parse rule command output 2013-11-08 20:31:23 +01:00
Bastien Dejean
40f7a438a6 End status lines by a new line 2013-11-07 17:58:22 +01:00
Bastien Dejean
493eaa78aa Print status informations via control --subscribe 2013-11-07 14:28:39 +01:00
Bastien Dejean
948b8046f7 Externalize rules 2013-11-05 20:09:24 +01:00
Bastien Dejean
343759bf77 Handle _NET_CLOSE_WINDOW 2013-10-26 18:06:04 +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
6bc128554e Implement frames 2013-10-10 18:24:21 +02:00
Bastien Dejean
15695c066b Add copyright header 2013-10-08 21:05:56 +02:00
Bastien Dejean
ecb1b72263 Add history navigation selectors 2013-10-08 13:59:17 +02:00
Bastien Dejean
27d4556392 Include missing OpenBSD header 2013-10-07 22:25:42 +02:00
Bastien Dejean
752e87b7da Enhance and clarify rule interface 2013-10-06 18:35:08 +02:00
Bastien Dejean
35e9927ed9 Make sticky windows stick to their monitor 2013-10-06 16:58:02 +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
a81b560d1d Handle _NET_WM_STATE_STICKY 2013-10-01 18:14:58 +02:00
Bastien Dejean
ce25529e5c Implement sticky windows 2013-10-01 18:04:18 +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
80caab4445 Make sure strings are null-terminated 2013-09-21 12:39:59 +02:00
Bastien Dejean
ffeaa83654 Don't set _NET_WM_NAME on the root window
http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html
2013-09-20 19:45:08 +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
84572b0204 Set the WM_STATE atom
`xkill` needs this work without the `-frame` option.
2013-09-18 12:07:55 +02:00