aboutsummaryrefslogtreecommitdiff
path: root/.config/eww/scripts/workspace.sh
blob: a2d314f8acfe3cf091fe4e0edceb2846677ccc86 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#! /bin/bash

#define icons for workspaces 1-9
ic=(0         󰻧)

workspaces() {

	unset -v \
  o1 o2 o3 o4 o5 o6 o7 o8 o9 \
  f1 f2 f3 f4 f5 f6 f7 f8 f9

# Get occupied workspaces and remove workspace -99 aka scratchpad if it exists
# a="$(hyprctl workspaces | grep ID | awk '{print $3}')"
# a="$(echo "${a//-99/}" | sed '/^[[:space:]]*$/d')"
ows="$(hyprctl workspaces -j | jq '.[] | del(select(.id == -99)) | .id')"

for num in $ows; do
	export o"$num"="$num"
done

# Get Focused workspace for current monitor ID
arg="$1"
num="$(hyprctl monitors -j | jq --argjson arg "$arg" '.[] | select(.id == $arg).activeWorkspace.id')"
export f"$num"="$num"

echo 	"(eventbox :onscroll \"echo {} | sed -e 's/up/-1/g' -e 's/down/+1/g' | xargs hyprctl dispatch workspace\" \
          (box	:class \"workspace\"	:orientation \"h\" :space-evenly \"false\" 	\
              (button :onclick \"hyprctl dispatch focusworkspaceoncurrentmonitor 1\" :class \"w0$o1$f1\" \"${ic[1]} ₁\") \
              (button :onclick \"hyprctl dispatch focusworkspaceoncurrentmonitor 2\" :class \"w0$o2$f2\" \"${ic[2]} ₂\") \
              (button :onclick \"hyprctl dispatch focusworkspaceoncurrentmonitor 3\" :class \"w0$o3$f3\" \"${ic[3]} ₃\") \
              (button :onclick \"hyprctl dispatch focusworkspaceoncurrentmonitor 4\" :class \"w0$o4$f4\" \"${ic[4]} ₄\") \
              (button :onclick \"hyprctl dispatch focusworkspaceoncurrentmonitor 5\" :class \"w0$o5$f5\" \"${ic[5]} ₅\") \
              (button :onclick \"hyprctl dispatch focusworkspaceoncurrentmonitor 6\" :class \"w0$o6$f6\" \"${ic[6]} ₆\") \
              (button :onclick \"hyprctl dispatch focusworkspaceoncurrentmonitor 7\" :class \"w0$o7$f7\" \"${ic[7]} ₇\") \
              (button :onclick \"hyprctl dispatch focusworkspaceoncurrentmonitor 8\" :class \"w0$o8$f8\" \"${ic[8]} ₈\") \
              (button :onclick \"hyprctl dispatch focusworkspaceoncurrentmonitor 9\" :class \"w0$o9$f9\" \"${ic[9]} ₉\") \
          )\
        )"
}

workspaces $1 
socat -u UNIX-CONNECT:/tmp/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | while read -r; do 
workspaces $1
done