#include <unistd.h>
#include <signal.h>
#include <fcntl.h>
+#include <ctype.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/select.h>
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)
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/')
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()"
;;