dotfiles

Dash Eclipse's dotfiles
git clone git://ezup.dev/dotfiles.git
Log | Files | Refs | README | LICENSE

commit 7eb610a2313e9a8f2b0e24c0305420e1ffb8bfe5
parent 298128d6879fbd832ef7006b305ebf928b65528d
Author: Dash Eclipse <dash@ezup.dev>
Date:   Sat,  3 Oct 2020 09:08:31 +0000

lemon2bstatus.sh: add tray

separate to multiple shell functions

Diffstat:
M.local/bin/lemon2bstatus.sh | 65+++++++++++++++++++++++++++++++++++++++++------------------------
1 file changed, 41 insertions(+), 24 deletions(-)

diff --git a/.local/bin/lemon2bstatus.sh b/.local/bin/lemon2bstatus.sh @@ -3,31 +3,48 @@ # xlsfonts | grep terminus-bold | grep iso10646 FONT="-xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso10646-1" -get_output() { +get_time() { date -u +%FT%TZ ; } + +get_workspace() { + # current workspace + CURRENT_WS=$(xprop -root _NET_CURRENT_DESKTOP | sed -e 's/.* = //') + # window name + CURRENT_WINDOW_ID=$(xprop -root _NET_ACTIVE_WINDOW | sed 's/.* window id # //') + [ "$CURRENT_WINDOW_ID" != "0x0" ] && CURRENT_WINDOW_NAME=$(xprop -id "$CURRENT_WINDOW_ID)" WM_NAME | sed 's/.* = "\(.*\)"/\1/') + # all workspaces + CLIENT_LIST=$(xprop -root _NET_CLIENT_LIST | sed 's/.*: window id # //; s/, / /g') + WS=$(for id in $CLIENT_LIST; do + xprop -id "$id" _NET_WM_DESKTOP | sed 's/.* = //;' + done | sort -hu | sed "s/^/ /; s/$/ /; s/ $CURRENT_WS /%{F#3498db}[$CURRENT_WS]%{F-}%{B-}/" | tr -d '\n') + echo "$WS" | grep $CURRENT_WS >/dev/null 2>&1 + [ "$?" -ne 0 ] && WS="$WS($CURRENT_WS)" + echo "$WS - %{F#ecf0f1}$CURRENT_WINDOW_NAME%{B-}" + +} + +get_kbd() { xprop -root _XKB_RULES_NAMES | awk -F\" '{print $6, "("$8")" }' ; } + +get_tray() { + CLIENT_LIST=$(xprop -root _NET_CLIENT_LIST | sed 's/.*: window id # //; s/, / /g') + for id in $CLIENT_LIST; do + xprop -id "$id" _NET_WM_STATE | grep '^_NET_WM_STATE(_NET_WM_STATE) = 0x3,' >/dev/null + if [ "$?" -eq 0 ]; then + local CLASS=$([ "$?" -eq 0 ] && xprop -id "$id" WM_CLASS | cut -d\" -f4) + if [ -z "$CLASS" ]; then local NAME=$id; else local NAME=$CLASS; fi + echo "%{A:xdotool windowactivate $id windowraise $id:}($NAME)%{A}" + fi + done | paste -s -d' ' +} + +#hidden -c xargs 9menu -popup -label Iconics -font "$FONT" #-geometry '0x0+1440+1020' +# 1440x22+0+0 +# 1430x24+5+5 +# 1080x27+1440+0 +showbar() { while true; do - # time - TIME=$(date -u +%FT%TZ) - # current workspace - CURRENT_WS=$(xprop -root _NET_CURRENT_DESKTOP | sed -e 's/.* = //') - # window name - CURRENT_WINDOW_ID=$(xprop -root _NET_ACTIVE_WINDOW | sed 's/.* window id # //') - [ "$CURRENT_WINDOW_ID" != "0x0" ] && CURRENT_WINDOW_NAME=$(xprop -id "$CURRENT_WINDOW_ID)" WM_NAME | sed 's/.* = "\(.*\)"/\1/') - # all workspaces - CLIENT_LIST=$(xprop -root _NET_CLIENT_LIST | sed 's/.*: window id # //; s/, / /g') - WS=$(for id in $CLIENT_LIST; do - xprop -id "$id" _NET_WM_DESKTOP | sed 's/.* = //;' - done | sort -hu | sed "s/^/ /; s/$/ /; s/ $CURRENT_WS /%{F#3498db}[$CURRENT_WS]%{F-}%{B-}/" | tr -d '\n') - echo "$WS" | grep $CURRENT_WS >/dev/null 2>&1 - [ "$?" -ne 0 ] && WS="$WS($CURRENT_WS)" - # output - echo " $WS - %{F#ecf0f1}$CURRENT_WINDOW_NAME%{B-} %{r}%{F#b2babb}%{B#212f3d} $TIME %{F-}%{B-}" - # sleep + echo " $(get_workspace) %{r}$(get_tray) %{F#b2babb}%{B#212f3d} $(get_kbd) $(get_time) %{F-}%{B-}" sleep 0.2 - done + done | lemonbar -p -f "$FONT" -g '1430x24+5+5' -n 'leftbar' -B '#1c2833' -F '#eeeeee' | sh } -#get_output | lemonbar -f "$FONT" -g 1440x22+0+0 -n leftbar -B '#171717' -F '#eeeeee' -get_output | lemonbar -f "$FONT" -g 1430x24+5+5 -n leftbar -B '#1c2833' -F '#eeeeee' -#echo abc | lemonbar -p -f "$FONT" -g 1080x27+1440+0 -n rightbar -#hidden -c|xargs 9menu -popup -label Iconics -font "-xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso10646-1" - +showbar