Commit graph

58 commits

Author SHA1 Message Date
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
Bastien Dejean
7df593f4e8 Handle clients outside of every monitors 2013-11-28 11:32:20 +01:00
Bastien Dejean
1cc2eed330 New setting: remove_disabled_monitor 2013-11-10 12:07:14 +01:00
Steven Allen
c8de8931e3 Handle partially off-screen windows.
If a window is partially off-screen, preserve the off-screen regions.
2013-10-27 10:53:37 -04: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
Steven Allen
344ab2d269 Relatively translate floating clients to the correct monitor 2013-10-26 15:36:05 -04:00
Bastien Dejean
ae1ed3b795 New setting: fit_monitor 2013-10-23 22:20:34 +02:00
Bastien Dejean
dc805f9a6a Consolidate fit_monitor 2013-10-20 20:33:34 +02:00
Bastien Dejean
229d5797dd Simplify fit_monitor 2013-10-20 14:39:01 +02:00
Bastien Dejean
d396210f41 Revert "Initially center floating windows on their monitor"
In fact we can't do that, otherwise floating windows that do specify non
silly initial coordinates would be ignored.
2013-10-19 22:01:40 +02:00
Bastien Dejean
114881d958 Initially center floating windows on their monitor
And simplify fit_monitor along the way.
2013-10-19 21:31:34 +02:00
Bastien Dejean
15695c066b Add copyright header 2013-10-08 21:05:56 +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
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
d653f1cb70 Use consistent function names 2013-10-02 11:01:21 +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
9729efc422 Don't remove connected monitors 2013-09-26 22:21:46 +02:00
Bastien Dejean
dcfc11b1c5 Remove unused variable 2013-09-26 19:18:05 +02:00
Bastien Dejean
8c0d4eb3fe Don't merge two overlapping known monitors 2013-09-26 14:56:23 +02:00
Bastien Dejean
6ae7601dbf Initialize desk_{head,tail} in make_monitor 2013-09-24 21:18:44 +02:00