Commit graph

78 commits

Author SHA1 Message Date
Bastien Dejean
fd6d09058b Fix null pointer dereference in restore_tree 2016-05-22 16:56:07 +02:00
Bastien Dejean
fc02698f46 Set the WM_NAME property of each monitor's root
For example, `xdo id -N Bspwm -n root -a LVDS1` now returns the ID of
the root window of the monitor named LVDS1.
2016-05-18 21:13:27 +02:00
Bastien Dejean
0b56bdefa3 Don't show presel feedbacks for the monocle layout
Fixes #367.
2016-05-16 10:33:22 +02:00
Bastien Dejean
0efe4cea32 Don't emit invalid desktop_focus events 2016-05-13 21:27:11 +02:00
Bastien Dejean
2aea4bf28b Don't filter desktops in merge_monitors
Fixes #455.
2016-05-09 18:51:41 +02:00
Bastien Dejean
c32f30aa7e Remove setting: history_aware_focus
The new implementation of the DIR descriptor is based on
[right-window](https://github.com/ntrrgc/right-window).

Fixes #467.
2016-04-28 10:33:30 +02:00
Bastien Dejean
f50f1f9b21 Don't confine the DIR descriptor 2016-04-22 12:32:10 +02:00
Bastien Dejean
83a54fea51 Restore/dump monitors and desktops pointers as IDs 2016-04-16 20:50:53 +02:00
Bastien Dejean
2b2ed4eb56 Implement focus_follows_pointer via enter_notify
I found a simple fix for #268.
2016-04-15 19:11:30 +02:00
Bastien Dejean
c997408920 Fix infinite loop in closest_monitor 2016-04-15 17:53:21 +02:00
Bastien Dejean
12edac86fa Reinstate built-in pointer bindings 2016-04-07 18:08:32 +02:00
Bastien Dejean
bfffe8b1c7 Transfer nodes moved via configure requests
Fixes #431.
2016-03-26 14:25:40 +01:00
Bastien Dejean
e8aa679cd1 Introduce receptacles
A receptacle is an unfocusable empty leaf node.

Receptacles are used for building a tree without creating windows.

Example:

    bspc node -i
    bspc node @/ -p east -i
    bspc node @/2 -p north -i

    bspc rule -a Abc:abc -o node=@/1
    bspc rule -a Ijk:ijk -o node=@/2/1
    bspc rule -a Xyz:xyz -o node=@/2/2

Fixes #259.
2016-03-26 11:47:17 +01:00
Bastien Dejean
b098530201 Zero-pad printed IDs
It seems that people expect all IDs to have the same length (#361).

And the maximum possible ID is 0x1fffffff (cf. the X11 protocol).
2016-03-23 11:24:47 +01: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
9ae96ebdcd Add IDs to desktops and monitors
There's no constraints on desktop and monitor names, therefore, using a
desktop or monitor name as descriptor is ambiguous.

We put an end to this ambiguity by introducing desktop and monitor IDs.

`bspc query -{M,D}` now yields IDs instead of names.

Fixes #397.
2016-03-16 15:15:27 +01:00
Bastien Dejean
7e5c4f25c3 Initially center the pointer on mon
Fixes #407.
2016-02-26 15:28:42 +01:00
Bastien Dejean
c895ef0f0e Extract geometric functions from helpers.c 2016-02-26 14:22:03 +01:00
Bastien Dejean
87a89ffeac Don't change the index of the primary monitor 2016-02-24 10:55:24 +01:00
Bastien Dejean
dbaa2b377a Sort monitors by natural visual hierarchy
Fixes #405.
2016-02-23 21:19:12 +01:00
Bastien Dejean
b973353a7d Add event: monitor_swap 2016-02-01 11:46:03 +01:00
Bastien Dejean
a8c2468968 Add the --rectangle command the *monitor* domain 2015-12-30 11:36:14 +01:00
Bastien Dejean
4ca21ccb46 Handle preselection feedbacks in query_pointer
Fixes #341.
2015-12-23 22:21:43 +01:00
Bastien Dejean
eb07d2fc06 Generalize window commands to nodes 2015-12-22 19:25:45 +01:00
Campbell Barton
bcbee11cf1 Fix uninitialized member use
update_root is checking m->root with uninitialized memory.
2015-12-15 01:46:31 +11:00
Bastien Dejean
d3166dd399 Add *focused* modifier to desktops and monitors 2015-11-26 20:07:46 +01:00
Bastien Dejean
12c36bc9e2 Consolidate update_monitors
The two functions are mostly equivalent but the short version is more robust:
6d858a0fdb

Thanks to Jurica Vukadin who submitted this patch.

Fixes #321.
2015-11-22 15:03:18 +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
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
2f93d90d3d Add class and instance names to bspwm's windows 2015-10-31 22:19:17 +01:00
Bastien Dejean
dccb5e7be2 Add a few subscriber events 2015-08-01 14:37:15 +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
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
a172aea618 Rewrite the handling of overlapping monitors 2015-04-27 11:03:08 +02:00
Bastien Dejean
f3ca2aac29 Don't try to merge a monitor into NULL 2015-04-26 14:37:30 +02:00
Bastien Dejean
c49bc92d12 Use generic BSD 2-clause license
Fixes #176
2014-10-22 11:53:03 +02:00
Bastien Dejean
b7fa492602 Add setting: pointer_follows_focus 2014-10-22 11:24:51 +02:00
Bastien Dejean
baca7122ab Merge into existing monitors when rectangles are equal 2014-05-05 20:48:45 +02:00
Bastien Dejean
9cbb95c31c Pluralize setting 2014-05-05 11:58:12 +02:00
Bastien Dejean
d2abc2d20e New setting: merge_overlapping_monitors 2014-05-05 11:54:49 +02:00
Bastien Dejean
aca232b23c Don't remove unplugged monitors by default 2014-05-05 11:46:55 +02:00
Bastien Dejean
ab6b6c5e36 Use proper function names 2014-05-05 11:35:06 +02:00
Bastien Dejean
f04da55ab6 New setting: persistent_monitors 2014-04-29 11:50:09 +02:00
Bastien Dejean
764b428d38 The list of monitors must start with the primary monitor 2014-02-07 11:58:11 +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
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
471fd2c7fc Turn {top,right,bottom,left}_padding into desktop settings 2013-12-25 10:06:02 +01:00