Commit graph

58 commits

Author SHA1 Message Date
Bastien Dejean
12edac86fa Reinstate built-in pointer bindings 2016-04-07 18:08:32 +02:00
Bastien Dejean
ebad909ed1 Fail verbosely
Along the way, we also fixed the handling of the `*_padding`,
`window_gap` and `border_width` settings. The previous behavior was the
result of a bad decision (9fed780), as a response to #141. Many issues
followed: #143, #158, #260, etc. We now handle those settings as
intuitively as possible.

We also fixed a potential segfault in `cmd_node`, triggered by `bspc
node -d`[sic].

Fixes #402 #252.
2016-03-21 14:28:04 +01:00
Bastien Dejean
eb07d2fc06 Generalize window commands to nodes 2015-12-22 19:25:45 +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
f28f33448f Make a clear distinction between states and flags 2015-11-05 14:00:49 +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
9dd581faaf Allow subscribers to choose what they listen to 2015-05-09 21:12:19 +02:00
Bastien Dejean
c13c678a54 Add new setting: initial_polarity
Fixes #193.
2015-01-06 20:10:09 +01:00
Bastien Dejean
c49bc92d12 Use generic BSD 2-clause license
Fixes #176
2014-10-22 11:53:03 +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
bc39da7e78 Pull and push edges via window -e DIR ±PIXELS 2013-12-27 14:46:35 +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
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
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
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
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
a75979be62 Implement tags 2013-10-05 22:32:40 +02:00
Bastien Dejean
758f5e6392 *window_gap* is now a desktop setting
The *config* command was generalized to handle desktop and monitor
settings.
2013-09-11 21:19:59 +02:00
Bastien Dejean
e2f085815a Add index selector for desktops and monitors 2013-09-02 21:03:59 +02:00
Bastien Dejean
111680a48b Add a --rotate option to the window command 2013-08-27 23:48:50 +02:00
Bastien Dejean
e28581baf3 Show monitor padding information via query -T 2013-07-15 20:40:29 +02:00
Bastien Dejean
74deafbf77 Remove the *_padding settings
Setting and getting the monitor padding is now handled by the `-p`
option of the monitor command.
2013-07-14 21:29:30 +02:00
Bastien Dejean
8fd8521322 Rewrite message handling
The new message syntax:
- Provides 10 commands instead of 60.
- Allows multiple actions to be applied in one call.

The client now returns an non zero exit code when a message fails.

The `is_adjacent` function now handles vacant nodes.
2013-07-12 21:52:02 +02:00
Bastien Dejean
4e4d312ba5 New option for cancel: --all 2013-06-27 19:25:55 +02:00
Bastien Dejean
896e220e48 New options for swap: --{keep,swap}-focus 2013-05-30 13:20:34 +02:00
Bastien Dejean
eafc112ca2 New message: biggest 2013-05-30 12:14:22 +02:00
Bastien Dejean
f97d35cd96 New arguments for swap: biggest and smallest 2013-04-02 15:02:45 +02:00
Bastien Dejean
df928c7053 New message: 'flip' 2013-02-26 12:54:01 +01:00
Bastien Dejean
240b6798b0 New messages: '{grab,track,ungrab}_pointer' 2013-01-08 15:52:20 +01:00
Bastien Dejean
45ef3b78cc New message: 'mouse'
The code related to mouse buttons handling is gone.
Mouse bindings must now be created via sxhkd.
2013-01-06 18:04:55 +01:00
Bastien Dejean
b8bd68b533 Add '--follow' option to 'send_to*' messages 2012-12-23 13:14:33 +01:00
Bastien Dejean
b02c11cdc9 Cosmetic renaming 2012-11-11 18:55:58 +01:00
Bastien Dejean
bb12d0575a Remove message: 'magnetise' 2012-11-04 14:16:30 +01:00
Bastien Dejean
c28eceb152 New message: 'circulate' 2012-11-01 22:47:03 +01:00
Bastien Dejean
9a09998d9f Fix the handling of 'button_modifier' 2012-10-23 17:01:32 +02:00
Bastien Dejean
243f1245e7 Options for 'cycle_desktop': --skip-{free,occupied} 2012-10-23 13:31:11 +02:00
Bastien Dejean
d810e72c35 New setting: 'button_modifier' 2012-10-23 12:42:40 +02:00
Bastien Dejean
f0ab3e390e Merge branch 'develop' 2012-10-23 12:17:19 +02:00
Bastien Dejean
1769e2f58f New messages: 'nearest' and 'alternate_focus' 2012-10-22 11:51:28 +02:00
Bastien Dejean
2a3362fc4b Added support for multiple monitors 2012-10-17 16:18:40 +02:00
Bastien Dejean
36140fe1c3 Try to address the potential buffer overflows 2012-09-29 11:57:41 +02:00
Bastien Dejean
5df99a71ed Removed the Lua dependency 2012-09-27 10:46:04 +02:00
Bastien Dejean
350a2d86bd New message: "magnetise" 2012-09-26 12:11:45 +02:00
Bastien Dejean
24507288bf Numerous fixes 2012-09-18 17:21:04 +02:00