]> git.lizzy.rs Git - bspwm.git/commitdiff
Internal state output syntax overhaul
authorBastien Dejean <nihilhill@gmail.com>
Mon, 9 Sep 2013 21:13:51 +0000 (23:13 +0200)
committerBastien Dejean <nihilhill@gmail.com>
Mon, 9 Sep 2013 21:13:51 +0000 (23:13 +0200)
bspwm.c
examples/panel/panel_bar
examples/panel/panel_dzen2

diff --git a/bspwm.c b/bspwm.c
index 525bc6e3ce86115b49fbafb5083e500e91fecf8a..10ed3085f563ce6e50f549aa77ed1e40335c0a2f 100644 (file)
--- a/bspwm.c
+++ b/bspwm.c
@@ -4,6 +4,7 @@
 #include <unistd.h>
 #include <signal.h>
 #include <fcntl.h>
+#include <ctype.h>
 #include <sys/socket.h>
 #include <sys/un.h>
 #include <sys/select.h>
@@ -369,7 +370,10 @@ void put_status(void)
         for (desktop_t *d = m->desk_head; d != NULL; d = d->next, urgent = false) {
             for (node_t *n = first_extrema(d->root); n != NULL && !urgent; n = next_leaf(n, d->root))
                 urgent |= n->client->urgent;
-            fprintf(status_fifo, "%c%s:", m->desk == d ? (urgent ? 'U' : 'D') : (d->root == NULL ? 'E' : (urgent ? 'u' : 'd')), d->name);
+            char c = (urgent ? 'u' : (d->root == NULL ? 'f' : 'o'));
+            if (m->desk == d)
+                c = toupper(c);
+            fprintf(status_fifo, "%c%s:", c, d->name);
         }
     }
     if (mon != NULL && mon->desk != NULL)
index e7b0ca2f837121c7592bd2f89fff3df8f47a4d62..8f8c3f449b6b36b1d2cb8b4ef77fe13a6849a03c 100755 (executable)
@@ -18,22 +18,22 @@ while read -r line ; do
                 item=$1
                 name=${item#?}
                 case $item in
-                    u*)
-                        # urgent desktop
-                        wm_infos="$wm_infos \\b3\\f0${name}\\fr\\br"
-                        ;;
-                    [DU]*)
+                    [OFU]*)
                         # active desktop
                         wm_infos="$wm_infos \\u5\\b2\\f9${name}\\fr\\br\\ur"
                         ;;
-                    d*)
+                    o*)
                         # inactive but occupied desktop
                         wm_infos="$wm_infos \\f7${name}\\fr"
                         ;;
-                    E*)
+                    f*)
                         # inactive desktop
                         wm_infos="$wm_infos ${name}"
                         ;;
+                    u*)
+                        # urgent desktop
+                        wm_infos="$wm_infos \\b3\\f0${name}\\fr\\br"
+                        ;;
                     L*)
                         # layout
                         layout=$(printf "%s" "${name}" | sed 's/\(.\).*/\U\1/')
index 5d23dcb5bc591e8f9f813ed5ae852370f4a83a63..c44c8efa005f63d9865f4e23dfbc5bd916947013 100755 (executable)
@@ -47,30 +47,30 @@ while read -r line ; do
             while [ $# -gt 0 ] ; do
                 item=$1
                 case $item in
-                    [DdEUu]*)
+                    [OoFfUu]*)
                         # desktops
                         name=${item#?}
                         case $item in
-                            u*)
-                                # urgent (inactive) desktop
-                                FG=$COLOR_URGENT_FG
-                                BG=$COLOR_URGENT_BG
-                                ;;
-                            [DU]*)
+                            [OFU]*)
                                 # active desktop
                                 FG=$COLOR_ACTIVE_FG
                                 BG=$COLOR_ACTIVE_BG
                                 ;;
-                            d*)
+                            o*)
                                 # inactive desktop
                                 FG=$COLOR_INACTIVE_FG
                                 BG=$COLOR_INACTIVE_BG
                                 ;;
-                            E*)
+                            f*)
                                 # empty desktop
                                 FG=$COLOR_EMPTY_FG
                                 BG=$COLOR_EMPTY_BG
                                 ;;
+                            u*)
+                                # urgent (inactive) desktop
+                                FG=$COLOR_URGENT_FG
+                                BG=$COLOR_URGENT_BG
+                                ;;
                         esac
                         wm_infos="${wm_infos}^fg(${FG})^bg(${BG})^ca(1, bspc desktop -f ${name})^ca(2, bspc window -d ${name})^ca(3, bspc window -d ${name} -f)${PADDING}${name}${PADDING}^ca()^ca()^ca()"
                         ;;