authorgravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2025-10-30 10:54:52-07:00
committergravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2025-10-30 10:54:52-07:00
log0f16a3cc334558080f80e0e02e562e45309e59d3
tree6a9c515c06d8e6053fccc16882fc3c19e7923d0f
parentd20ae6a725699dabbad9210d4f9dcd22858476eb
signature Commit is signed but in an unrecognized format.

feat:waybar config


2 files changed, 279 insertions(+), 3 deletions(-)

users/natalie/home/waybar/settings.nix+172-2
...@@ -1,6 +1,176 @@...@@ -1,6 +1,176 @@
1{ ... }:1{ ... }:
2let
3 custom = {
4 font = "Maple Mono";
5 font_size = "18px";
6 font_weight = "bold";
7 text_color = "#FBF1C7";
8 background_0 = "#1D2021";
9 background_1 = "#282828";
10 border_color = "#928374";
11 red = "#CC241D";
12 green = "#98971A";
13 yellow = "#FABD2F";
14 blue = "#458588";
15 magenta = "#B16286";
16 cyan = "#689D6A";
17 orange = "#D65D0E";
18 opacity = "1";
19 indicator_height = "2px";
20 };
21in
2{22{
3 programs.waybar.settings.mainBar = {23 programs.waybar.settings.mainBar = with custom; {
424 position = "top";
25 height = 28;
26 margin-top = 0;
27 margin-bottom = 0;
28 margin-left = 0;
29 margin-right = 0;
30 modules-left = [
31 "custom/launcher"
32 "hyprland/workspaces"
33 "tray"
34 ];
35 modules-center = [ "clock" ];
36 modules-right = [
37 "cpu"
38 "memory"
39 "pulseaudio"
40 "network"
41 "battery"
42 "hyprland/language"
43 "custom/notification"
44 "custom/power-menu"
45 ];
46 clock = {
47 calendar = {
48 format = {
49 today = "<span color='#98971A'><b>{}</b></span>";
50 };
51 };
52 format = " {:%H:%M}";
53 tooltip = "true";
54 tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
55 format-alt = " {:%d/%m}";
56 };
57 "hyprland/workspaces" = {
58 active-only = false;
59 disable-scroll = true;
60 format = "{icon}";
61 on-click = "activate";
62 format-icons = {
63 sort-by-number = true;
64 };
65 persistent-workspaces = {
66 "1" = [ ];
67 "2" = [ ];
68 "3" = [ ];
69 "4" = [ ];
70 "5" = [ ];
71 };
72 };
73 cpu = {
74 format = "<span foreground='${green}'> </span> {usage}%";
75 format-alt = "<span foreground='${green}'> </span> {avg_frequency} GHz";
76 interval = 2;
77 on-click-right = "${pkgs.hyprland}/bin/hyprctl dispatch exec '[float; center; size 950 650] ${pkgs.ghostty}/bin/ghostty --override font_size=14 --title float_ghostty btop'";
78 };
79 memory = {
80 format = "<span foreground='${cyan}'>󰟜 </span>{}%";
81 format-alt = "<span foreground='${cyan}'>󰟜 </span>{used} GiB"; # 
82 interval = 2;
83 on-click-right = "${pkgs.hyprland}/bin/hyprctl dispatch exec '[float; center; size 950 650] ${pkgs.ghostty}/bin/ghostty --override font_size=14 --title float_ghostty btop'";
84 };
85 disk = {
86 # path = "/";
87 format = "<span foreground='${orange}'>󰋊 </span>{percentage_used}%";
88 interval = 60;
89 on-click-right = "${pkgs.hyprland}/bin/hyprctl dispatch exec '[float; center; size 950 650] ${pkgs.ghostty}/bin/ghostty --override font_size=14 --title float_ghostty btop'";
90 };
91 network = {
92 format-wifi = "<span foreground='${magenta}'> </span> {signalStrength}%";
93 format-ethernet = "<span foreground='${magenta}'>󰀂 </span>";
94 tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
95 format-linked = "{ifname} (No IP)";
96 format-disconnected = "<span foreground='${magenta}'>󰖪 </span>";
97 };
98 tray = {
99 icon-size = 20;
100 spacing = 8;
101 };
102 pulseaudio = {
103 format = "{icon} {volume}%";
104 format-muted = "<span foreground='${blue}'> </span> {volume}%";
105 format-icons = {
106 default = [ "<span foreground='${blue}'> </span>" ];
107 };
108 scroll-step = 2;
109 on-click = "${pkgs.pamixer}/bin/pamixer -t";
110 on-click-right = "${pkgs.pavucontrol}/bin/pavucontrol";
111 };
112 # battery = {
113 # format = "<span foreground='${yellow}'>{icon}</span> {capacity}%";
114 # format-icons = [
115 # " "
116 # " "
117 # " "
118 # " "
119 # " "
120 # ];
121 # format-charging = "<span foreground='${yellow}'> </span>{capacity}%";
122 # format-full = "<span foreground='${yellow}'> </span>{capacity}%";
123 # format-warning = "<span foreground='${yellow}'> </span>{capacity}%";
124 # interval = 5;
125 # states = {
126 # warning = 20;
127 # };
128 # format-time = "{H}h{M}m";
129 # tooltip = true;
130 # tooltip-format = "{time}";
131 # };
132 "hyprland/language" = {
133 tooltip = true;
134 tooltip-format = "Keyboard layout";
135 format = "<span foreground='#FABD2F'> </span> {}";
136 format-fr = "FR";
137 format-en = "US";
138 on-click = "${pkgs.hyprland}/bin/hyprctl switchxkblayout at-translated-set-2-keyboard next";
139 };
140 "custom/launcher" = {
141 format = "";
142 on-click = "random-wallpaper";
143 on-click-right = "${pkgs.rofi}/bin/rofi -show drun";
144 tooltip = "true";
145 tooltip-format = "Random Wallpaper";
146 };
147 "custom/notification" = {
148 tooltip = true;
149 tooltip-format = "Notifications";
150 format = "{icon}";
151 format-icons = {
152 notification = "<span foreground='red'><sup></sup></span>";
153 none = "";
154 dnd-notification = "<span foreground='red'><sup></sup></span>";
155 dnd-none = "";
156 inhibited-notification = "<span foreground='red'><sup></sup></span>";
157 inhibited-none = "";
158 dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
159 dnd-inhibited-none = "";
160 };
161 return-type = "json";
162 exec-if = "which swaync-client";
163 exec = "${pkgs.swaynotificationcenter}/bin/swaync-client -swb";
164 on-click = "${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw";
165 on-click-right = "${pkgs.swaynotificationcenter}/bin/swaync-client -d -sw";
166 escape = true;
167 };
168 "custom/power-menu" = {
169 tooltip = true;
170 tooltip-format = "Power menu";
171 format = "<span foreground='${red}'> </span>";
172 on-click = "power-menu";
173 };
5 };174 };
175
6}176}
users/natalie/home/waybar/style.nix+107-1
...@@ -1 +1,107 @@...@@ -1 +1,107 @@
1{ ... }: { }1{ ... }:
2let
3 custom = {
4 font = "Maple Mono";
5 font_size = "18px";
6 font_weight = "bold";
7 text_color = "#FBF1C7";
8 background_0 = "#1D2021";
9 background_1 = "#282828";
10 border_color = "#A89984";
11 red = "#CC241D";
12 green = "#98971A";
13 yellow = "#FABD2F";
14 blue = "#458588";
15 magenta = "#B16286";
16 cyan = "#689D6A";
17 orange = "#D65D0E";
18 orange_bright = "#FE8019";
19 opacity = "1";
20 indicator_height = "2px";
21 };
22in
23{
24 programs.waybar.style = with custom; ''
25 * {
26 border: none;
27 border-radius: 0px;
28 padding: 0;
29 margin: 0;
30 font-family: ${font};
31 font-weight: ${font_weight};
32 opacity: ${opacity};
33 font-size: ${font_size};
34 }
35
36 window#waybar {
37 background: ${background_1};
38 border-top: 1px solid ${border_color};
39 }
40
41 tooltip {
42 background: ${background_1};
43 border: 1px solid ${border_color};
44 }
45 tooltip label {
46 margin: 5px;
47 color: ${text_color};
48 }
49
50 #workspaces {
51 padding-left: 15px;
52 }
53 #workspaces button {
54 color: ${yellow};
55 padding-left: 5px;
56 padding-right: 5px;
57 margin-right: 10px;
58 }
59 #workspaces button.empty {
60 color: ${text_color};
61 }
62 #workspaces button.active {
63 color: ${orange_bright};
64 }
65
66 #clock {
67 color: ${text_color};
68 }
69
70 #tray {
71 margin-left: 10px;
72 color: ${text_color};
73 }
74 #tray menu {
75 background: ${background_1};
76 border: 1px solid ${border_color};
77 padding: 8px;
78 }
79 #tray menuitem {
80 padding: 1px;
81 }
82
83 #pulseaudio, #network, #cpu, #memory, #disk, #battery, #language, #custom-notification, #custom-power-menu {
84 padding-left: 5px;
85 padding-right: 5px;
86 margin-right: 10px;
87 color: ${text_color};
88 }
89
90 #pulseaudio, #language, #custom-notification {
91 margin-left: 15px;
92 }
93
94 #custom-power-menu {
95 padding-right: 2px;
96 margin-right: 5px;
97 }
98
99 #custom-launcher {
100 font-size: 20px;
101 color: ${text_color};
102 font-weight: bold;
103 margin-left: 15px;
104 padding-right: 10px;
105 }
106 '';
107}