]> git.lizzy.rs Git - bspwm.git/blobdiff - messages.c
Indicate mouse bindings
[bspwm.git] / messages.c
index 88b79954ec220be3ef7f8bbd607c12bbba3c947e..58e1ca6bd8d6d50579d514815e2f8d6900eda313 100644 (file)
@@ -55,12 +55,6 @@ void process_message(char *msg, char *rsp)
                 desk->layout = l;
             }
         }
-    /* } else if (strcmp(cmd, "insert") == 0) { */
-    /*     static unsigned int fake_id = 1; */
-    /*     client_t *c = make_client((xcb_window_t) fake_id++); */
-    /*     node_t *n = make_node(); */
-    /*     n->client = c; */
-    /*     insert_node(desk, n); */
     } else if (strcmp(cmd, "shift") == 0) {
         char *dir = strtok(NULL, TOKEN_SEP);
         if (dir != NULL) {
@@ -74,31 +68,32 @@ void process_message(char *msg, char *rsp)
             toggle_fullscreen(desk->focus->client);
         return;
     } else if (strcmp(cmd, "toggle_floating") == 0) {
+        split_mode = MODE_AUTOMATIC;
         toggle_floating(desk->focus);
+    } else if (strcmp(cmd, "toggle_locked") == 0) {
+        if (desk->focus != NULL)
+            toggle_locked(desk->focus->client);
     } else if (strcmp(cmd, "ratio") == 0) {
         char *value = strtok(NULL, TOKEN_SEP);
         if (value != NULL && desk->focus != NULL)
             sscanf(value, "%lf", &desk->focus->split_ratio);
+    } else if (strcmp(cmd, "cancel") == 0) {
+        split_mode = MODE_AUTOMATIC;
+        window_draw_border(desk->focus, true);
+        return;
     } else if (strcmp(cmd, "presel") == 0) {
+        if (desk->focus == NULL || !is_tiled(desk->focus->client) || desk->layout != LAYOUT_TILED)
+            return;
         char *dir = strtok(NULL, TOKEN_SEP);
         if (dir != NULL) {
             direction_t d;
             if (parse_direction(dir, &d)) {
                 split_mode = MODE_MANUAL;
                 split_dir = d;
-                draw_triple_border(desk->focus, active_border_color_pxl);
+                window_draw_border(desk->focus, true);
             }
         }
         return;
-    } else if (strcmp(cmd, "locate") == 0) {
-        char *wid = strtok(NULL, TOKEN_SEP);
-        if (wid != NULL) {
-            window_location_t loc;
-            xcb_window_t win = atoi(wid);
-            if (locate_window(win, &loc))
-                sprintf(rsp, "%s", loc.desktop->name);
-
-        }
     } else if (strcmp(cmd, "push") == 0 || strcmp(cmd, "pull") == 0) {
         char *dir = strtok(NULL, TOKEN_SEP);
         if (dir != NULL) {
@@ -114,6 +109,18 @@ void process_message(char *msg, char *rsp)
             desktop_t *d = find_desktop(name);
             transfer_node(desk, d, desk->focus);
         }
+    } else if (strcmp(cmd, "rename") == 0) {
+        char *cur_name = strtok(NULL, TOKEN_SEP);
+        if (cur_name != NULL) {
+            desktop_t *d = find_desktop(cur_name);
+            if (d != NULL) {
+                char *new_name = strtok(NULL, TOKEN_SEP);
+                if (new_name != NULL) {
+                    strcpy(d->name, new_name);
+                    ewmh_update_desktop_names();
+                }
+            }
+        }
     } else if (strcmp(cmd, "use") == 0) {
         char *name = strtok(NULL, TOKEN_SEP);
         if (name != NULL) {
@@ -128,8 +135,9 @@ void process_message(char *msg, char *rsp)
                 cycle_desktop(d);
             }
         }
-        return;
     } else if (strcmp(cmd, "cycle") == 0) {
+        if (desk->focus != NULL && desk->focus->client->fullscreen)
+            return;
         char *dir = strtok(NULL, TOKEN_SEP);
         if (dir != NULL) {
             cycle_dir_t d;
@@ -160,7 +168,7 @@ void process_message(char *msg, char *rsp)
         }
         return;
     } else if (strcmp(cmd, "alternate") == 0) {
-        alternate_desktop();
+        select_desktop(last_desk);
     } else if (strcmp(cmd, "add") == 0) {
         char *name = strtok(NULL, TOKEN_SEP);
         if (name != NULL) {
@@ -168,6 +176,8 @@ void process_message(char *msg, char *rsp)
         }
         return;
     } else if (strcmp(cmd, "focus") == 0) {
+        if (desk->focus != NULL && desk->focus->client->fullscreen)
+            return;
         char *dir = strtok(NULL, TOKEN_SEP);
         if (dir != NULL) {
             direction_t d;
@@ -179,6 +189,11 @@ void process_message(char *msg, char *rsp)
         return;
     } else if (strcmp(cmd, "reload") == 0) {
         load_settings();
+        run_autostart();
+    } else if (strcmp(cmd, "reload_autostart") == 0) {
+        run_autostart();
+    } else if (strcmp(cmd, "reload_settings") == 0) {
+        load_settings();
     } else if (strcmp(cmd, "quit") == 0) {
         quit();
         return;
@@ -219,12 +234,12 @@ void set_setting(char *name, char *value)
     } else if (strcmp(name, "bottom_padding") == 0) {
         sscanf(value, "%i", &bottom_padding);
         update_root_dimensions();
-    } else if (strcmp(name, "normal_border_color") == 0) {
-        strcpy(normal_border_color, value);
-        normal_border_color_pxl = get_color(normal_border_color);
     } else if (strcmp(name, "active_border_color") == 0) {
         strcpy(active_border_color, value);
         active_border_color_pxl = get_color(active_border_color);
+    } else if (strcmp(name, "normal_border_color") == 0) {
+        strcpy(normal_border_color, value);
+        normal_border_color_pxl = get_color(normal_border_color);
     } else if (strcmp(name, "inner_border_color") == 0) {
         strcpy(inner_border_color, value);
         inner_border_color_pxl = get_color(inner_border_color);
@@ -234,9 +249,15 @@ void set_setting(char *name, char *value)
     } else if (strcmp(name, "presel_border_color") == 0) {
         strcpy(presel_border_color, value);
         presel_border_color_pxl = get_color(presel_border_color);
-    } else if (strcmp(name, "locked_border_color") == 0) {
-        strcpy(locked_border_color, value);
-        locked_border_color_pxl = get_color(locked_border_color);
+    } else if (strcmp(name, "active_locked_border_color") == 0) {
+        strcpy(active_locked_border_color, value);
+        active_locked_border_color_pxl = get_color(active_locked_border_color);
+    } else if (strcmp(name, "normal_locked_border_color") == 0) {
+        strcpy(normal_locked_border_color, value);
+        normal_locked_border_color_pxl = get_color(normal_locked_border_color);
+    } else if (strcmp(name, "urgent_border_color") == 0) {
+        strcpy(urgent_border_color, value);
+        urgent_border_color_pxl = get_color(urgent_border_color);
     } else if (strcmp(name, "adaptive_window_border") == 0) {
         bool b;
         if (parse_bool(value, &b))
@@ -273,18 +294,22 @@ void get_setting(char *name, char* rsp)
         sprintf(rsp, "%i\n", top_padding);
     else if (strcmp(name, "bottom_padding") == 0)
         sprintf(rsp, "%i\n", bottom_padding);
-    else if (strcmp(name, "normal_border_color") == 0)
-        sprintf(rsp, "%s (0x%06X)\n", normal_border_color, normal_border_color_pxl);
     else if (strcmp(name, "active_border_color") == 0)
-        sprintf(rsp, "%s (0x%06X)\n", active_border_color, active_border_color_pxl);
+        sprintf(rsp, "%s (%06X)\n", active_border_color, active_border_color_pxl);
+    else if (strcmp(name, "normal_border_color") == 0)
+        sprintf(rsp, "%s (%06X)\n", normal_border_color, normal_border_color_pxl);
     else if (strcmp(name, "inner_border_color") == 0)
-        sprintf(rsp, "%s (0x%06X)\n", inner_border_color, inner_border_color_pxl);
+        sprintf(rsp, "%s (%06X)\n", inner_border_color, inner_border_color_pxl);
     else if (strcmp(name, "outer_border_color") == 0)
-        sprintf(rsp, "%s (0x%06X)\n", outer_border_color, outer_border_color_pxl);
+        sprintf(rsp, "%s (%06X)\n", outer_border_color, outer_border_color_pxl);
     else if (strcmp(name, "presel_border_color") == 0)
-        sprintf(rsp, "%s (0x%06X)\n", presel_border_color, presel_border_color_pxl);
-    else if (strcmp(name, "locked_border_color") == 0)
-        sprintf(rsp, "%s (0x%06X)\n", locked_border_color, locked_border_color_pxl);
+        sprintf(rsp, "%s (%06X)\n", presel_border_color, presel_border_color_pxl);
+    else if (strcmp(name, "active_locked_border_color") == 0)
+        sprintf(rsp, "%s (%06X)\n", active_locked_border_color, active_locked_border_color_pxl);
+    else if (strcmp(name, "normal_locked_border_color") == 0)
+        sprintf(rsp, "%s (%06X)\n", normal_locked_border_color, normal_locked_border_color_pxl);
+    else if (strcmp(name, "urgent_border_color") == 0)
+        sprintf(rsp, "%s (%06X)\n", urgent_border_color, urgent_border_color_pxl);
     else if (strcmp(name, "wm_name") == 0)
         sprintf(rsp, "%s\n", wm_name);
     else if (strcmp(name, "adaptive_window_border") == 0)
@@ -337,10 +362,10 @@ bool parse_direction(char *s, direction_t *d)
 bool parse_cycle_direction(char *s, cycle_dir_t *d)
 {
     if (strcmp(s, "prev") == 0) {
-        *d = DIR_PREV;
+        *d = CYCLE_PREV;
         return true;
     } else if (strcmp(s, "next") == 0) {
-        *d = DIR_NEXT;
+        *d = CYCLE_NEXT;
         return true;
     }
     return false;