Commit graph

224 commits

Author SHA1 Message Date
Bastien Dejean
f2a578de2b Make the window border width a desktop setting 2013-10-01 14:15:50 +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
30eb9598b8 Extract pointer functions from events.c 2013-09-25 18:00:01 +02:00
Bastien Dejean
16eae53e56 New setting: honor_ewmh_focus 2013-09-23 11:45:00 +02:00
Bastien Dejean
c026b3baa1 New setting: growth_factor 2013-09-23 10:53:21 +02:00
Bastien Dejean
70c6cada07 Make focus_follows_pointer work on empty desktops 2013-09-22 11:16:06 +02:00
Bastien Dejean
80caab4445 Make sure strings are null-terminated 2013-09-21 12:39:59 +02:00
Bastien Dejean
85f67b2164 Remove a few useless header inclusion via deheader 2013-09-19 15:38:22 +02:00
Bastien Dejean
d168e919e3 Split types.c into {monitor,desktop,history}.c 2013-09-19 15:02:49 +02:00
Bastien Dejean
5e00bfe688 Add --fullscreen and --locked to rule -a 2013-09-18 11:42:20 +02:00
Bastien Dejean
c491b21e22 Add head/tail keywords for rule removal 2013-09-17 18:17:11 +02:00
Bastien Dejean
9a0f6ba8eb Use --remove consistently 2013-09-17 17:55:37 +02:00
Bastien Dejean
cc4492d9ca Remove --float-upcoming from control
The following:
    bspc control --float-upcoming
can now be expressed as:
    bspc rule -a \* --floating --one-shot
2013-09-17 11:40:18 +02:00
Bastien Dejean
30ceb5dd71 New option for rule -a: --one-shot 2013-09-17 11:30:25 +02:00
Bastien Dejean
d174bb8db6 Remove the --padding option from monitor
*_padding settings are sufficient.
2013-09-17 11:02:52 +02:00
Bastien Dejean
9a9693545d Add new option for control: --float-upcoming 2013-09-16 13:36:52 +02:00
Bastien Dejean
c45e01f8ed Add monitor padding settings 2013-09-15 11:51:12 +02:00
Bastien Dejean
c17f9b779e New option for the rule command: --unmanage
This is useful for clients similar to Screenkey.
2013-09-13 11:57:59 +02:00
Bastien Dejean
a0b9199df5 Stack in terms of relative actions
This rewrite is based on a TODO comment for the *stack_refresh*
function of *awesome*:
    It might be worth stopping to restack everyone and only stack `c'
    relatively to the first matching in the list.

And on the concept of relative stacking (via XDG_CONFIG_WINDOW_SIBLING).

Additionally the `adaptative_raise` setting was removed because it
became obsolete when the choice was made of not raising windows when
focusing via `focus_follows_pointer`.

Windows of type *desktop* are now supported (but not managed).
2013-09-12 16:26:01 +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
c5673cd65e Add a --swap option to the desktop command 2013-09-10 11:45:46 +02:00
Bastien Dejean
f6eacc06e8 Add a --swap option to the monitor command 2013-09-09 22:27:27 +02:00
Bastien Dejean
387ece3688 Implement ICCCM's WM_TAKE_FOCUS behavior
Additionally, the `apply_shadow_property` was renamed to
`apply_floating_atom`.
2013-09-05 15:37:54 +02:00
Bastien Dejean
824ee423c9 Remove setting: wm_name
The above setting's purpose was to replace `wmname` but it appears that
it can't be done without violating the EWMH standards and creating bad
side effects.
2013-09-05 11:09:24 +02:00
Bastien Dejean
ea49ed35d7 Compute colors on the fly
When drawing window borders, we must consider the color map of the
window to compute the correct color *pixel*.
2013-09-04 21:57:26 +02:00
Bastien Dejean
e2f085815a Add index selector for desktops and monitors 2013-09-02 21:03:59 +02:00
Bastien Dejean
6cbd905520 Rotate the given edge, not the brother subtree 2013-08-28 12:56:04 +02:00
Bastien Dejean
111680a48b Add a --rotate option to the window command 2013-08-27 23:48:50 +02:00
Bastien Dejean
2cee7ad3a9 Fail when there's no edge in all cases 2013-08-10 19:37:49 +02:00
Bastien Dejean
8b48ff50a3 Add an option to rule -a: --focus 2013-08-06 11:26:51 +02:00
Bastien Dejean
e5c2c2524b Don't increment rule counter when failing 2013-07-30 09:23:18 +02:00
Bastien Dejean
7f4c33eec9 Check the number of arguments for all the messages 2013-07-30 09:12:39 +02:00
Bastien Dejean
9b7baf86a8 A random pointer is not a desktop 2013-07-27 14:48:28 +02:00
Bastien Dejean
e562c62b07 Only remove empty desktops 2013-07-24 14:30:02 +02:00
Bastien Dejean
07f9f2d6d5 Reject invalid ratios 2013-07-24 14:12:35 +02:00
Bastien Dejean
de1aa71a37 Fix potential leak and null pointer dereference 2013-07-20 21:22:26 +02:00
Bastien Dejean
e28581baf3 Show monitor padding information via query -T 2013-07-15 20:40:29 +02:00
Steven Allen
04919868b9 Eat padding arguments. 2013-07-14 16:45:13 -04: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
Steven Allen
4783c03bd1 Don't assume command arguments. 2013-07-14 12:24:43 -04:00
Bastien Dejean
209784dfd0 Merge pull request #36 from Stebalien/fix-monitor-selection
Call `monitor_from_desc` in `monitor -f <mon>`
2013-07-13 13:31:27 -07:00
Bastien Dejean
64cde67dc2 Remove setting: focus_by_distance
The removal is motivated by the following example:

+-------+-------+
|       |       |
|       |   b   |
|       |       |
|       |_______|
|   a   |       |
|   *   |   c   |
|       |       |
|       |_______|
|       |       |
|       |   d   |
|       |       |
+-------+-------+

Bellow is a summary of the number of steps required to reach *b*, *c* and *d* with *a* as a starting point with the associated mean and variance:

focus_by_distance         steps           mean         variance
---------------------------------------------------------------
  false                   1, 2, 3           2            2/3
  true                    2, 1, 2          5/3           2/9
2013-07-13 22:23:13 +02:00
Steven Allen
a782c1e927 Call monitor_from_desc in monitor -f <mon> 2013-07-13 16:17:59 -04:00
Bastien Dejean
1f83706ab5 Don't transplant when swapping
The new syntax provides a separate transplantation option.
2013-07-13 09:40:19 +02:00
Bastien Dejean
7073f88479 Remove setting: monitor_focus_fallback
“There's only one way to do it.”

And a window selection shall always return a node.
2013-07-13 09:32:38 +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
7cb638e1d4 Follow nodes transfered via shift 2013-07-05 12:30:39 +02:00
Bastien Dejean
d7e364d183 Don't try to send/drop a NULL node 2013-07-04 12:20:40 +02:00
Bastien Dejean
16e73b6342 New setting: auto_cancel 2013-07-04 12:14:47 +02:00
Bastien Dejean
714fb8d504 Remove message: ungrab_pointer
The above message was only needed for ending the `move` pointer action
on a floating window. It rendered the `move` pointer action finicky
because the floating rectangle of the floating windows was not updated
in real time.
2013-07-04 11:04:28 +02:00