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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
{ config, pkgs, lib, ... }:
let
cfg = config.features.gui.desktops.niri.parts.waybar;
aes = config.aesthetics;
in {
options.features.gui.desktops.niri.parts.waybar.enable = lib.mkEnableOption "waybar";
config = lib.mkIf cfg.enable {
programs.waybar = {
enable = true;
settings = {
bar = {
layer = "top";
position = "bottom";
height = 32;
modules-left = [ "battery" "network" "backlight" "pulseaudio" ];
modules-center = [ "niri/workspaces" ];
modules-right = [ "clock#date" "clock#time" ];
"clock#date" = {
format = " {:%A, %B %d}";
};
"clock#time" = {
format = " {:%I:%M}";
};
pulseaudio = {
format = " {volume}%";
format-muted = " {volume}%";
};
network = {
format = "{essid}";
format-wifi = "{icon} {essid}";
format-ethernet = " Ethernet";
format-disconnected = " Disconnected";
format-icons = [ "" "" "" "" "" ];
};
battery = {
format = "{icon} {capacity}%";
format-charging = " {capacity}%";
format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ];
};
backlight = {
format = " {percent}%";
};
"niri/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
/*
"1" = "1";
"2" = "2";
"3" = "3";
"4" = "4";
"5" = "5";
"6" = "6";
"7" = "7";
"8" = "8";
"9" = "9";
"10" = "10";
"11" = "11";
"12" = "12";
*/
};
};
};
};
style = let
border-radius = "4";
padding = "12";
in /*css*/ ''
@define-color background-color #${aes.scheme.base00};
@define-color border-color #${aes.scheme.base0C};
@define-color text-color #${aes.scheme.base05};
* {
font-family: ${aes.font.name};
font-weight: 600;
font-size: ${aes.font.size.medium}px;
}
window#waybar {
background-color: transparent;
}
#clock.time, #clock.date, #backlight, #pulseaudio, #battery, #network {
background-color: @background-color;
color: @text-color;
border-radius: ${border-radius}px;
border-width: 0px;
border-color: @border-color;
padding: 0px ${padding}px;
}
#backlight, #pulseaudio, #battery, #network {
margin: 0px 0px ${padding} ${padding};
}
#workspaces {
background-color: @background-color;
color: @background-color;
border-radius: ${border-radius}px;
border-width: 0px;
border-color: @border-color;
padding: 0px 0px;
margin-bottom: ${padding}px;
}
#workspaces button {
font-weight: bold;
padding: 0px 4px;
margin: 4px 4px;
border-radius: ${border-radius}px;
color: @background-color;
background: @text-color;
opacity: 0.5;
transition: all 0.3s cubic-bezier(.25,.1,.25,1);
}
#workspaces button.active {
font-weight: bold;
padding: 0px 4px;
margin: 4px 4px;
border-radius: ${border-radius}px;
color: @background-color;
background: @text-color;
transition: all 0.3s cubic-bezier(.25,.1,.25,1);
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: ${border-radius}px;
color: @background-color;
background: @text-color;
opacity: 0.8;
transition: all 0.3s cubic-bezier(.25,.1,.25,1);
}
#clock.date, #clock.time {
margin: 0px ${padding} ${padding} 0px
}
'';
};
};
}
|