#!/bin/bash nicknames=(一 二 三 四 五 六 七 八 九 十) start=0 workspaces () { wmctrl -d | awk '{ print $1 " " $2 " " $9 }' | grep -v NSP | while read -r id active name; do name="${name#*_}" if [ "$active" == '*' ]; then button_status="active" else button_status="inactive" fi if wmctrl -l | grep --regexp '.*\s\+'"$id"'\s\+.*' >/dev/null; then button_fill="occupied" button_name="${nicknames[$start]}" else button_fill="empty" button_name="${nicknames[$start]}" fi load+="(button :class '$button_status-$button_fill' :onclick 'wmctrl -s $id' '$button_name')" echo -n $load load="" ((start=start+1)) done } xprop -spy -root _NET_CURRENT_DESKTOP | while read -r; do echo '(box :orientation "h" :class "workspaces" :space-evenly true :halign "start" :vexpand true '"$(workspaces)"')' done # スパゲッティはもうありませんが、出力は長くなります :(