Commit graph

38 commits

Author SHA1 Message Date
Bastien Dejean
d98c3d17ae Document and homogenize subscriber events 2015-11-09 15:00:47 +01:00
Bastien Dejean
f28f33448f Make a clear distinction between states and flags 2015-11-05 14:00:49 +01:00
Bastien Dejean
4ceced688a Restore natural constraints on fullscreen windows
Put fullscreen windows in the ABOVE layer by default.

Let *x*, and *y* be two windows in the same desktop. *y* is focused and
its fullscreen state is *on*. When *x* requests the focus: if *x* is
below *y*, then the fullscreen state of *y* is toggled.
2015-11-01 14:05:18 +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
9f2065540e Add rule consequence: split_ratio
Fixes #214
2015-02-21 10:14:27 +01:00
Bastien Dejean
c49bc92d12 Use generic BSD 2-clause license
Fixes #176
2014-10-22 11:53:03 +02:00
Bastien Dejean
6f32affb5d Add new rule consequence: border 2014-08-14 18:14:25 +02:00
Bastien Dejean
42a0fdd253 Refactor error reporting
Fixes #123
2014-02-17 11:55:34 +01:00
Bastien Dejean
f6878c5ebd Remove *lower* rule consequence 2014-02-06 21:00:46 +01:00
Bastien Dejean
ac0d0dcac2 Add new rule consequence: split_dir 2014-02-02 14:10:44 +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
b47c758ad5 Handle min/max window size hints 2014-01-09 14:58:54 +01:00
Bastien Dejean
adfdda3ea9 Add built-in rule to center dialog windows 2014-01-07 14:29:58 +01:00
Bastien Dejean
50c6f10182 Add new rule consequence: window=WINDOW_SEL 2014-01-04 21:25:57 +01:00
Bastien Dejean
0073eff5dc Simply treat transient windows as floating windows
http://tronche.com/gui/x/icccm/sec-4.html#WM_TRANSIENT_FOR
2013-12-29 19:53:42 +01:00
Bastien Dejean
6561ab1c48 Refresh header dependencies 2013-12-28 00:09:10 +01:00
Bastien Dejean
48e0043f84 Implement the pseudo-tiled window state 2013-12-27 14:23:25 +01:00
Bastien Dejean
e0b6cd3cd4 *Frames* are unnecessary
The padding settings are sufficient for this.
2013-12-27 10:43:37 +01:00
Bastien Dejean
cd97a3290a Reinstate the *rule* command
External rules are truly optional. At last.
2013-12-12 14:38:48 +01:00
Bastien Dejean
3f23255a59 Handle zombies via SIGCHLD 2013-11-09 11:08:36 +01:00
Bastien Dejean
d9face09c9 Fork two times to avoid generating zombies 2013-11-08 21:10:37 +01:00
Bastien Dejean
4451d8f0e7 Asynchronously parse rule command output 2013-11-08 20:31:23 +01:00
Bastien Dejean
144f7d4e96 Reinstate default built-in rules 2013-11-07 22:59:00 +01:00
Bastien Dejean
cb54949f97 Close the file returned by popen 2013-11-07 14:34:44 +01:00
Bastien Dejean
948b8046f7 Externalize rules 2013-11-05 20:09:24 +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
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
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
15695c066b Add copyright header 2013-10-08 21:05:56 +02:00
Bastien Dejean
752e87b7da Enhance and clarify rule interface 2013-10-06 18:35:08 +02:00
Bastien Dejean
a75979be62 Implement tags 2013-10-05 22:32:40 +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
04b9384350 Initialize fullscreen and locked rule effects 2013-09-24 23:21:16 +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
Renamed from rules.c (Browse further)