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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
from chain import ArrowModuleChain
from modules import volume, battery, updates, language, clock
import bspc
def get_desktops_bar():
bar = []
focused_bg = idle_fg = urgent_fg = occupied_fg = "#ebdbb2"
focused_fg = idle_bg = "#282828"
urgent_bg = "#cc241d"
occupied_bg = "#928374"
for i, desktop in enumerate(bspc.get_desktops(), 1):
if desktop.focused:
fg = focused_fg
bg = focused_bg
elif desktop.urgent:
fg = urgent_fg
bg = urgent_bg
elif desktop.occupied:
fg = occupied_fg
bg = occupied_bg
else:
fg = idle_fg
bg = idle_bg
bar.append({
"callback": lambda idx=i: str(idx),
"foreground": fg,
"background": bg,
})
return bar
status_modules = [
{
"callback": updates.callback,
"foreground": "#ebdbb2",
"background": "#689d6a",
},
{
"callback": volume.callback,
"foreground": "#ebdbb2",
"background": "#458588",
},
{
"callback": battery.callback,
"foreground": "#ebdbb2",
"background": "#b16286",
},
{
"callback": language.callback,
"foreground": "#ebdbb2",
"background": "#98971a",
},
{
"callback": clock.callback,
"foreground": "#ebdbb2",
"background": "#cc241d",
},
]
desktops = ArrowModuleChain(right=True, capped_left=True, capped_right=False)
desktops.extend(*get_desktops_bar())
focused_window = bspc.get_focused_window_name()
status = ArrowModuleChain(right=False, capped_left=False, capped_right=True)
status.extend(*status_modules)
print(f"%{{l}}{desktops} %{{F#ebdbb2}}{focused_window} %{{r}}{status}%{{B#000000}}")
|