\fBCommands\fR
.RS 4
.PP
-\fB\-a\fR, \fB\-\-add\fR (<class_name>|*)[:(<instance_name>|*)] [\fB\-o\fR|\fB\-\-one\-shot\fR] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|node=NODE_SEL] [state=STATE] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO] [(hidden|sticky|private|locked|center|follow|manage|focus|border)=(on|off)]
+\fB\-a\fR, \fB\-\-add\fR (<class_name>|*)[:(<instance_name>|*)] [\fB\-o\fR|\fB\-\-one\-shot\fR] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|node=NODE_SEL] [state=STATE] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO] [(hidden|sticky|private|locked|center|follow|manage|focus|border)=(on|off)] [rectangle=WxH+X+Y]
.RS 4
Create a new rule\&.
.RE
Commands
^^^^^^^^
-*-a*, *--add* (<class_name>|\*)[:(<instance_name>|\*)] [*-o*|*--one-shot*] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|node=NODE_SEL] [state=STATE] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO] [(hidden|sticky|private|locked|center|follow|manage|focus|border)=(on|off)]::
+*-a*, *--add* (<class_name>|\*)[:(<instance_name>|\*)] [*-o*|*--one-shot*] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|node=NODE_SEL] [state=STATE] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO] [(hidden|sticky|private|locked|center|follow|manage|focus|border)=(on|off)] [rectangle=WxH+X+Y]::
Create a new rule.
*-r*, *--remove* ^<n>|head|tail|(<class_name>|\*)[:(<instance_name>|*)]...::
rc->manage = rc->focus = rc->border = true;
rc->layer = NULL;
rc->state = NULL;
+ rc->rect = NULL;
return rc;
}
if (sscanf(value, "%lf", &rat) == 1 && rat > 0 && rat < 1) {
csq->split_ratio = rat;
}
+ } else if (streq("rectangle", key)) {
+ if (csq->rect == NULL) {
+ csq->rect = calloc(1, sizeof(xcb_rectangle_t));
+ }
+ if (!parse_rectangle(value, csq->rect)) {
+ free(csq->rect);
+ csq->rect = NULL;
+ }
} else if (parse_bool(value, &v)) {
if (streq("hidden", key)) {
csq->hidden = true;
bool manage;
bool focus;
bool border;
+ xcb_rectangle_t *rect;
} rule_consequence_t;
typedef struct pending_rule_t pending_rule_t;
initialize_client(n);
initialize_floating_rectangle(n);
- if (c->floating_rectangle.x == 0 && c->floating_rectangle.y == 0) {
+ if (csq->rect != NULL) {
+ c->floating_rectangle = *csq->rect;
+ free(csq->rect);
+ } else if (c->floating_rectangle.x == 0 && c->floating_rectangle.y == 0) {
csq->center = true;
}