lemon2bstatus.sh (1875B)
1#!/bin/sh 2 3# xlsfonts | grep terminus-bold | grep iso10646 4FONT="-xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso10646-1" 5 6get_time() { date -u +%FT%TZ ; } 7 8get_workspace() { 9 # current workspace 10 CURRENT_WS=$(xprop -root _NET_CURRENT_DESKTOP | sed -e 's/.* = //') 11 # window name 12 CURRENT_WINDOW_ID=$(xprop -root _NET_ACTIVE_WINDOW | sed 's/.* window id # //') 13 [ "$CURRENT_WINDOW_ID" != "0x0" ] && CURRENT_WINDOW_NAME=$(xprop -id "$CURRENT_WINDOW_ID)" WM_NAME | sed 's/.* = "\(.*\)"/\1/') 14 # all workspaces 15 CLIENT_LIST=$(xprop -root _NET_CLIENT_LIST | sed 's/.*: window id # //; s/, / /g') 16 WS=$(for id in $CLIENT_LIST; do 17 xprop -id "$id" _NET_WM_DESKTOP | sed 's/.* = //;' 18 done | sort -hu | sed "s/^/ /; s/$/ /; s/ $CURRENT_WS /%{F#3498db}[$CURRENT_WS]%{F-}%{B-}/" | tr -d '\n') 19 echo "$WS" | grep $CURRENT_WS >/dev/null 2>&1 20 [ "$?" -ne 0 ] && WS="$WS($CURRENT_WS)" 21 echo "$WS - %{F#ecf0f1}$CURRENT_WINDOW_NAME%{B-}" 22 23} 24 25get_kbd() { xprop -root _XKB_RULES_NAMES | awk -F\" '{print $6, "("$8")" }' ; } 26 27get_tray() { 28 CLIENT_LIST=$(xprop -root _NET_CLIENT_LIST | sed 's/.*: window id # //; s/, / /g') 29 for id in $CLIENT_LIST; do 30 xprop -id "$id" _NET_WM_STATE | grep '^_NET_WM_STATE(_NET_WM_STATE) = 0x3,' >/dev/null 31 if [ "$?" -eq 0 ]; then 32 local CLASS=$([ "$?" -eq 0 ] && xprop -id "$id" WM_CLASS | cut -d\" -f4) 33 if [ -z "$CLASS" ]; then local NAME=$id; else local NAME=$CLASS; fi 34 echo "%{A:xdotool windowactivate $id windowraise $id:}($NAME)%{A}" 35 fi 36 done | paste -s -d' ' 37} 38 39#hidden -c xargs 9menu -popup -label Iconics -font "$FONT" #-geometry '0x0+1440+1020' 40# 1440x22+0+0 41# 1430x24+5+5 42# 1080x27+1440+0 43showbar() { 44 while true; do 45 echo " $(get_workspace) %{r}$(get_tray) %{F#b2babb}%{B#212f3d} $(get_kbd) $(get_time) %{F-}%{B-}" 46 sleep 0.2 47 done | lemonbar -p -f "$FONT" -g '1430x24+5+5' -n 'leftbar' -B '#1c2833' -F '#eeeeee' | sh 48} 49 50showbar