Bastien Dejean
f758829169
Regularize the layer modifiers
2015-11-23 10:40:10 +01:00
Bastien Dejean
5e9c8e068f
Use JSON as the output format of query -T
...
It is now easy to access any attribute by piping the output of
`query -T` to a JSON extractor/filter.
E.g.:
bspc query -T -d DESKTOP_SEL | jq -r .layout
And it also makes `restore -T` more robust.
2015-11-22 14:41:00 +01:00
Bastien Dejean
56c8025e4d
Try to honor ICCCM input focus policy
2015-11-11 23:01:54 +01:00
Bastien Dejean
f28f33448f
Make a clear distinction between states and flags
2015-11-05 14:00:49 +01:00
Bastien Dejean
f08e7073a2
Restore previous layer when exiting fullscreen
2015-11-03 09:42:09 +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
65bc79f0c0
Add a few selector modifiers
2015-10-27 21:26:09 +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
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
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
9f2065540e
Add rule consequence: split_ratio
...
Fixes #214
2015-02-21 10:14:27 +01:00
Bastien Dejean
c13c678a54
Add new setting: initial_polarity
...
Fixes #193 .
2015-01-06 20:10:09 +01:00
Joseph Lansdowne
85f90c51f2
add new selector modifier: unfocused
2015-01-04 19:53:18 +00: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
0ca5bf31d8
Increase class name string length
2014-03-29 10:56:22 +01:00
Bastien Dejean
aa886a71a4
Increase instance name string length
...
Fixes #129 .
2014-03-28 21:54:33 +01:00
Bastien Dejean
f6878c5ebd
Remove *lower* rule consequence
2014-02-06 21:00:46 +01:00
Bastien Dejean
eabbdd1b4f
Reintroduce the *automatic* window modifier
2014-02-03 10:30:41 +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
50c6f10182
Add new rule consequence: window=WINDOW_SEL
2014-01-04 21:25:57 +01:00
Bastien Dejean
edcb1f9aec
Show window instance names in the output of query -T
2014-01-04 11:07:20 +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
b972f0abbd
Provide padding settings for monitors
...
If a padding space is requested for a status bar, it concerns the
underlying monitor.
2013-12-28 10:30:49 +01:00
Bastien Dejean
bc39da7e78
Pull and push edges via window -e DIR ±PIXELS
2013-12-27 14:46:35 +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
471fd2c7fc
Turn {top,right,bottom,left}_padding into desktop settings
2013-12-25 10:06:02 +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
4451d8f0e7
Asynchronously parse rule command output
2013-11-08 20:31:23 +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
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
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
607e01e41e
Decrease the header guards collision chances
2013-10-08 21:02:33 +02:00
Bastien Dejean
759b87bb66
Add the older/newer selectors to all the objects
...
But also:
- Add a new modifier: `local`.
- Remove useless modifiers.
2013-10-08 17:47:00 +02:00
Bastien Dejean
ecb1b72263
Add history navigation selectors
2013-10-08 13:59:17 +02:00
Bastien Dejean
34b8692796
Use compliant header guard
2013-10-08 11:58:54 +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
0b1727a28d
Fix name collision with standard headers type
2013-10-07 10:22:07 +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