]> git.lizzy.rs Git - bspwm.git/blobdiff - messages.c
New setting: leaf_monocle
[bspwm.git] / messages.c
index 20e18fbe98b8844db588aa13beb19c056ece7f4a..66bcd872e43f892057327616b7dd1a038f690d57 100644 (file)
@@ -433,7 +433,7 @@ int cmd_desktop(char **args, int num)
                        num--, args++;
                        if (num < 1)
                                return MSG_SYNTAX;
-                       put_status(SBSC_MASK_DESKTOP_RENAME, "desktop_rename %s %s\n", trg.desktop->name, *args);
+                       put_status(SBSC_MASK_DESKTOP_RENAME, "desktop_rename %s %s %s\n", trg.monitor->name, trg.desktop->name, *args);
                        snprintf(trg.desktop->name, sizeof(trg.desktop->name), "%s", *args);
                        ewmh_update_desktop_names();
                        put_status(SBSC_MASK_REPORT);
@@ -554,6 +554,7 @@ int cmd_monitor(char **args, int num)
                                return MSG_SYNTAX;
                        desktop_t *d = trg.monitor->desk_head;
                        while (num > 0 && d != NULL) {
+                               put_status(SBSC_MASK_DESKTOP_RENAME, "desktop_rename %s %s %s\n", trg.monitor->name, d->name, *args);
                                snprintf(d->name, sizeof(d->name), "%s", *args);
                                initialize_desktop(d);
                                arrange(trg.monitor, d);
@@ -974,7 +975,8 @@ int set_setting(coordinates_t loc, char *name, char *value)
 #undef MONDESKSET
 #define SETSTR(s) \
        } else if (streq(#s, name)) { \
-               return snprintf(s, sizeof(s), "%s", value) >= 0;
+               if (snprintf(s, sizeof(s), "%s", value) < 0) \
+                       return MSG_FAILURE;
        SETSTR(external_rules_command)
        SETSTR(status_prefix)
 #undef SETSTR
@@ -1014,19 +1016,22 @@ int set_setting(coordinates_t loc, char *name, char *value)
                bool b;
                if (parse_bool(value, &b) && b != focus_follows_pointer) {
                        focus_follows_pointer = b;
-                       for (monitor_t *m = mon_head; m != NULL; m = m->next)
-                               for (desktop_t *d = m->desk_head; d != NULL; d = d->next)
+                       uint32_t values[] = {CLIENT_EVENT_MASK | (focus_follows_pointer ? XCB_EVENT_MASK_ENTER_WINDOW : 0)};
+                       for (monitor_t *m = mon_head; m != NULL; m = m->next) {
+                               for (desktop_t *d = m->desk_head; d != NULL; d = d->next) {
                                        for (node_t *n = first_extrema(d->root); n != NULL; n = next_leaf(n, d->root)) {
-                                               uint32_t values[] = {CLIENT_EVENT_MASK | (focus_follows_pointer ? XCB_EVENT_MASK_ENTER_WINDOW : 0)};
                                                xcb_change_window_attributes(dpy, n->client->window, XCB_CW_EVENT_MASK, values);
                                        }
+                               }
+                       }
                        if (focus_follows_pointer) {
-                               for (monitor_t *m = mon_head; m != NULL; m = m->next)
+                               for (monitor_t *m = mon_head; m != NULL; m = m->next) {
                                        window_show(m->root);
-                               enable_motion_recorder();
+                               }
                        } else {
-                               for (monitor_t *m = mon_head; m != NULL; m = m->next)
+                               for (monitor_t *m = mon_head; m != NULL; m = m->next) {
                                        window_hide(m->root);
+                               }
                                disable_motion_recorder();
                        }
                        return MSG_SUCCESS;
@@ -1039,6 +1044,7 @@ int set_setting(coordinates_t loc, char *name, char *value)
                        return MSG_FAILURE;
                SETBOOL(borderless_monocle)
                SETBOOL(gapless_monocle)
+               SETBOOL(leaf_monocle)
                SETBOOL(pointer_follows_focus)
                SETBOOL(pointer_follows_monitor)
                SETBOOL(apply_floating_atom)
@@ -1125,6 +1131,7 @@ int get_setting(coordinates_t loc, char *name, FILE* rsp)
                fprintf(rsp, "%s", BOOLSTR(s));
        GETBOOL(borderless_monocle)
        GETBOOL(gapless_monocle)
+       GETBOOL(leaf_monocle)
        GETBOOL(focus_follows_pointer)
        GETBOOL(pointer_follows_focus)
        GETBOOL(pointer_follows_monitor)
@@ -1158,22 +1165,44 @@ bool parse_subscriber_mask(char *s, subscriber_mask_t *mask)
                *mask = SBSC_MASK_WINDOW_MANAGE;
        } else if (streq("window_unmanage", s)) {
                *mask = SBSC_MASK_WINDOW_UNMANAGE;
-       } else if (streq("window_urgent", s)) {
-               *mask = SBSC_MASK_WINDOW_URGENT;
-       } else if (streq("window_fullscreen", s)) {
-               *mask = SBSC_MASK_WINDOW_FULLSCREEN;
+       } else if (streq("window_swap", s)) {
+               *mask = SBSC_MASK_WINDOW_SWAP;
+       } else if (streq("window_transfer", s)) {
+               *mask = SBSC_MASK_WINDOW_TRANSFER;
+       } else if (streq("window_focus", s)) {
+               *mask = SBSC_MASK_WINDOW_FOCUS;
+       } else if (streq("window_resize", s)) {
+               *mask = SBSC_MASK_WINDOW_RESIZE;
+       } else if (streq("window_move", s)) {
+               *mask = SBSC_MASK_WINDOW_MOVE;
+       } else if (streq("window_state", s)) {
+               *mask = SBSC_MASK_WINDOW_STATE;
        } else if (streq("desktop_add", s)) {
                *mask = SBSC_MASK_DESKTOP_ADD;
        } else if (streq("desktop_rename", s)) {
                *mask = SBSC_MASK_DESKTOP_RENAME;
        } else if (streq("desktop_remove", s)) {
                *mask = SBSC_MASK_DESKTOP_REMOVE;
+       } else if (streq("desktop_swap", s)) {
+               *mask = SBSC_MASK_DESKTOP_SWAP;
+       } else if (streq("desktop_transfer", s)) {
+               *mask = SBSC_MASK_DESKTOP_TRANSFER;
+       } else if (streq("desktop_focus", s)) {
+               *mask = SBSC_MASK_DESKTOP_FOCUS;
+       } else if (streq("desktop_layout", s)) {
+               *mask = SBSC_MASK_DESKTOP_LAYOUT;
+       } else if (streq("desktop_state", s)) {
+               *mask = SBSC_MASK_DESKTOP_STATE;
        } else if (streq("monitor_add", s)) {
                *mask = SBSC_MASK_MONITOR_ADD;
        } else if (streq("monitor_rename", s)) {
                *mask = SBSC_MASK_MONITOR_RENAME;
        } else if (streq("monitor_remove", s)) {
                *mask = SBSC_MASK_MONITOR_REMOVE;
+       } else if (streq("monitor_focus", s)) {
+               *mask = SBSC_MASK_MONITOR_FOCUS;
+       } else if (streq("monitor_resize", s)) {
+               *mask = SBSC_MASK_MONITOR_RESIZE;
        } else if (streq("report", s)) {
                *mask = SBSC_MASK_REPORT;
        } else {