_bspc() {
local commands='node desktop monitor query rule wm subscribe config quit'
- local settings='external_rules_command status_prefix normal_border_color active_border_color focused_border_color presel_feedback_color border_width window_gap top_padding right_padding bottom_padding left_padding split_ratio initial_polarity directional_focus_tightness borderless_monocle gapless_monocle single_monocle pointer_motion_interval pointer_modifier pointer_action1 pointer_action2 pointer_action3 click_to_focus swallow_first_click focus_follows_pointer pointer_follows_focus pointer_follows_monitor mapping_events_count ignore_ewmh_focus ignore_ewmh_fullscreen center_pseudo_tiled honor_size_hints cancel_birth_rotation remove_disabled_monitors remove_unplugged_monitors merge_overlapping_monitors'
+ local settings='external_rules_command status_prefix normal_border_color active_border_color focused_border_color presel_feedback_color border_width window_gap top_padding right_padding bottom_padding left_padding split_ratio initial_polarity directional_focus_tightness borderless_monocle gapless_monocle single_monocle pointer_motion_interval pointer_modifier pointer_action1 pointer_action2 pointer_action3 click_to_focus swallow_first_click focus_follows_pointer pointer_follows_focus pointer_follows_monitor mapping_events_count ignore_ewmh_focus ignore_ewmh_fullscreen center_pseudo_tiled honor_size_hints remove_disabled_monitors remove_unplugged_monitors merge_overlapping_monitors'
COMPREPLY=()
end
complete -f -c bspc -n '__fish_bspc_needs_command' -a 'node desktop monitor query rule wm subscribe config quit'
-complete -f -c bspc -n '__fish_bspc_using_command config' -a 'external_rules_command status_prefix normal_border_color active_border_color focused_border_color presel_feedback_color border_width window_gap top_padding right_padding bottom_padding left_padding split_ratio initial_polarity directional_focus_tightness borderless_monocle gapless_monocle single_monocle pointer_motion_interval pointer_modifier pointer_action1 pointer_action2 pointer_action3 click_to_focus swallow_first_click focus_follows_pointer pointer_follows_focus pointer_follows_monitor mapping_events_count ignore_ewmh_focus ignore_ewmh_fullscreen center_pseudo_tiled honor_size_hints cancel_birth_rotation remove_disabled_monitors remove_unplugged_monitors merge_overlapping_monitors'
+complete -f -c bspc -n '__fish_bspc_using_command config' -a 'external_rules_command status_prefix normal_border_color active_border_color focused_border_color presel_feedback_color border_width window_gap top_padding right_padding bottom_padding left_padding split_ratio initial_polarity directional_focus_tightness borderless_monocle gapless_monocle single_monocle pointer_motion_interval pointer_modifier pointer_action1 pointer_action2 pointer_action3 click_to_focus swallow_first_click focus_follows_pointer pointer_follows_focus pointer_follows_monitor mapping_events_count ignore_ewmh_focus ignore_ewmh_fullscreen center_pseudo_tiled honor_size_hints remove_disabled_monitors remove_unplugged_monitors merge_overlapping_monitors'
local -a look behaviour input
# Boolean settings are identified by index!
look=(borderless_monocle gapless_monocle {normal,active,focused}_border_color {top,right,bottom,left}_padding presel_feedback_color border_width window_gap)
- behaviour=(single_monocle mapping_events_count ignore_ewmh_focus ignore_ewmh_fullscreen center_pseudo_tiled honor_size_hints cancel_birth_rotation remove_disabled_monitors remove_unplugged_monitors merge_overlapping_monitors status_prefix external_rules_command split_ratio initial_polarity directional_focus_tightness status_prefix)
+ behaviour=(single_monocle mapping_events_count ignore_ewmh_focus ignore_ewmh_fullscreen center_pseudo_tiled honor_size_hints remove_disabled_monitors remove_unplugged_monitors merge_overlapping_monitors status_prefix external_rules_command split_ratio initial_polarity directional_focus_tightness status_prefix)
input=({swallow_first_click,focus_follows_pointer,pointer_follows_{focus,monitor}} click_to_focus pointer_motion_interval pointer_modifier pointer_action{1,2,3} )
if [[ "$CURRENT" == (2|3) ]];then
_arguments \
.\" Title: bspwm
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 08/25/2018
+.\" Date: 08/28/2018
.\" Manual: Bspwm Manual
-.\" Source: Bspwm 0.9.5-9-gb5d1d85
+.\" Source: Bspwm 0.9.5-10-g336bc86
.\" Language: English
.\"
-.TH "BSPWM" "1" "08/25/2018" "Bspwm 0\&.9\&.5\-9\-gb5d1d85" "Bspwm Manual"
+.TH "BSPWM" "1" "08/28/2018" "Bspwm 0\&.9\&.5\-10\-g336bc86" "Bspwm Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
Apply ICCCM window size hints\&.
.RE
.PP
-\fIcancel_birth_rotation\fR
-.RS 4
-When a node is unlinked from a tree, cancel the tree rotation that was applied during its insertion\&.
-.RE
-.PP
\fIremove_disabled_monitors\fR
.RS 4
Consider disabled monitors as disconnected\&.
'honor_size_hints'::
Apply ICCCM window size hints.
-'cancel_birth_rotation'::
- When a node is unlinked from a tree, cancel the tree rotation that was applied during its insertion.
-
'remove_disabled_monitors'::
Consider disabled monitors as disconnected.
SET_BOOL(ignore_ewmh_focus)
SET_BOOL(center_pseudo_tiled)
SET_BOOL(honor_size_hints)
- SET_BOOL(cancel_birth_rotation)
#undef SET_BOOL
#define SET_MON_BOOL(s) \
} else if (streq(#s, name)) { \
GET_BOOL(ignore_ewmh_focus)
GET_BOOL(center_pseudo_tiled)
GET_BOOL(honor_size_hints)
- GET_BOOL(cancel_birth_rotation)
GET_BOOL(remove_disabled_monitors)
GET_BOOL(remove_unplugged_monitors)
GET_BOOL(merge_overlapping_monitors)
fprintf(rsp, "\"id\":%u,", n->id);
fprintf(rsp, "\"splitType\":\"%s\",", SPLIT_TYPE_STR(n->split_type));
fprintf(rsp, "\"splitRatio\":%lf,", n->split_ratio);
- fprintf(rsp, "\"birthRotation\":%i,", n->birth_rotation);
fprintf(rsp, "\"vacant\":%s,", BOOL_STR(n->vacant));
fprintf(rsp, "\"hidden\":%s,", BOOL_STR(n->hidden));
fprintf(rsp, "\"sticky\":%s,", BOOL_STR(n->sticky));
sscanf(json + (*t)->start, "%u", &n->id);
RESTORE_ANY(splitType, &n->split_type, parse_split_type)
RESTORE_DOUBLE(splitRatio, &n->split_ratio)
- RESTORE_INT(birthRotation, &n->birth_rotation)
RESTORE_BOOL(vacant, &n->vacant)
RESTORE_BOOL(hidden, &n->hidden)
RESTORE_BOOL(sticky, &n->sticky)
center_pseudo_tiled = CENTER_PSEUDO_TILED;
honor_size_hints = HONOR_SIZE_HINTS;
- cancel_birth_rotation = CANCEL_BIRTH_ROTATION;
remove_disabled_monitors = REMOVE_DISABLED_MONITORS;
remove_unplugged_monitors = REMOVE_UNPLUGGED_MONITORS;
#define CENTER_PSEUDO_TILED true
#define HONOR_SIZE_HINTS false
-#define CANCEL_BIRTH_ROTATION false
#define MAPPING_EVENTS_COUNT 1
#define REMOVE_DISABLED_MONITORS false
bool center_pseudo_tiled;
bool honor_size_hints;
-bool cancel_birth_rotation;
bool remove_disabled_monitors;
bool remove_unplugged_monitors;
p = f->parent;
}
n->parent = c;
- c->birth_rotation = f->birth_rotation;
if (f->presel == NULL) {
if (p == NULL) {
if (initial_polarity == FIRST_CHILD) {
rot = 270;
}
if (!n->vacant) {
- n->birth_rotation = rot;
rotate_tree(p, rot);
}
}
c->split_ratio = f->presel->split_ratio;
c->parent = p;
f->parent = c;
- f->birth_rotation = 0;
switch (f->presel->split_dir) {
case DIR_WEST:
c->split_type = TYPE_VERTICAL;
n->vacant = n->hidden = n->sticky = n->private = n->locked = n->marked = false;
n->split_ratio = split_ratio;
n->split_type = TYPE_VERTICAL;
- n->birth_rotation = 0;
n->constraints = (constraints_t) {MIN_WIDTH, MIN_HEIGHT};
n->presel = NULL;
n->client = NULL;
rotate_tree_rec(n->second_child, deg);
}
-void rotate_brother(node_t *n)
-{
- rotate_tree(brother_tree(n), n->birth_rotation);
-}
-
-void unrotate_tree(node_t *n, int rot)
-{
- if (rot == 0) {
- return;
- }
- rotate_tree(n, 360 - rot);
-}
-
-void unrotate_brother(node_t *n)
-{
- unrotate_tree(brother_tree(n), n->birth_rotation);
-}
-
void flip_tree(node_t *n, flip_t flp)
{
if (n == NULL || is_leaf(n)) {
node_t *b = brother_tree(n);
node_t *g = p->parent;
- if (!n->vacant && cancel_birth_rotation) {
- unrotate_tree(b, n->birth_rotation);
- }
-
b->parent = g;
if (g != NULL) {
d->root = b;
}
- b->birth_rotation = p->birth_rotation;
-
free(p);
n->parent = NULL;
node_t *pn2 = n2->parent;
bool n1_first_child = is_first_child(n1);
bool n2_first_child = is_first_child(n2);
- int br1 = n1->birth_rotation;
- int br2 = n2->birth_rotation;
bool n1_held_focus = is_descendant(d1->focus, n1);
bool n2_held_focus = is_descendant(d2->focus, n2);
node_t *last_d1_focus = d1->focus;
n1->parent = pn2;
n2->parent = pn1;
- n1->birth_rotation = br2;
- n2->birth_rotation = br1;
propagate_flags_upward(m2, d2, n1);
propagate_flags_upward(m1, d1, n2);
void find_by_area(area_peak_t ap, coordinates_t *ref, coordinates_t *dst, node_select_t *sel);
void rotate_tree(node_t *n, int deg);
void rotate_tree_rec(node_t *n, int deg);
-void rotate_brother(node_t *n);
-void unrotate_tree(node_t *n, int rot);
-void unrotate_brother(node_t *n);
void flip_tree(node_t *n, flip_t flp);
void equalize_tree(node_t *n);
int balance_tree(node_t *n);
uint32_t id;
split_type_t split_type;
double split_ratio;
- int birth_rotation;
presel_t *presel;
xcb_rectangle_t rectangle;
constraints_t constraints;