diff --git a/modules/desktop/dunst.nix b/modules/desktop/dunst.nix
index 1c58c82..1231a8b 100644
--- a/modules/desktop/dunst.nix
+++ b/modules/desktop/dunst.nix
@@ -7,6 +7,7 @@
let
cfg = config.modules.desktop.dunst;
+ c = (import ./themes/_palette.nix).semantic;
in
{
options.modules.desktop.dunst = {
@@ -38,7 +39,7 @@ in
padding = 20;
shrink = "no";
transparency = 5;
- font = "monospace 14";
+ font = "MesloLGS Nerd Font 12";
idle_threshold = 120;
indicate_hidden = "yes";
markup = "full";
@@ -49,21 +50,21 @@ in
sticky_history = "yes";
sort = "yes";
frame_width = 1;
- frame_color = "#1d2021";
+ frame_color = c.bgStrong;
};
urgency_low = {
- foreground = "#ebdbb2";
- background = "#3c3836";
+ foreground = c.fg;
+ background = c.bgAlt;
timeout = 8;
};
urgency_normal = {
- foreground = "#ebdbb2";
- background = "#32302f";
+ foreground = c.fg;
+ background = c.bg;
timeout = 14;
};
urgency_critical = {
- foreground = "#32302f";
- background = "#cc241d";
+ foreground = c.bg;
+ background = c.critical;
timeout = 0;
};
};
diff --git a/modules/desktop/themes/_palette.nix b/modules/desktop/themes/_palette.nix
new file mode 100644
index 0000000..6891d0c
--- /dev/null
+++ b/modules/desktop/themes/_palette.nix
@@ -0,0 +1,54 @@
+let
+ mkHex = value: "#${value}";
+ mkRgb = value: "rgb(${value})";
+
+ base = {
+ bg0Hard = "1d2021";
+ bg0 = "282828";
+ bg0Soft = "32302f";
+ bg1 = "3c3836";
+ bg2 = "504945";
+ bg3 = "665c54";
+
+ fg0 = "fbf1c7";
+ fg1 = "ebdbb2";
+ fg4 = "a89984";
+
+ red = "fb4934";
+ orange = "fe8019";
+ yellow = "fabd2f";
+ green = "b8bb26";
+ aqua = "8ec07c";
+ blue = "83a598";
+ purple = "d3869b";
+ };
+
+ hex = builtins.mapAttrs (_: mkHex) base;
+ rgb = builtins.mapAttrs (_: mkRgb) base;
+in
+{
+ inherit base hex rgb;
+
+ semantic = {
+ bg = hex.bg0;
+ bgAlt = hex.bg1;
+ bgHover = hex.bg3;
+ bgStrong = hex.bg0Hard;
+
+ fg = hex.fg1;
+ fgMuted = hex.fg4;
+
+ accent = hex.orange;
+ info = hex.blue;
+ success = hex.green;
+ warning = hex.yellow;
+ critical = hex.red;
+
+ borderActiveRgb = rgb.orange;
+ borderInactiveRgb = rgb.bg2;
+
+ lockInnerRgb = rgb.bg0Soft;
+ lockOuterRgb = rgb.orange;
+ lockTextRgb = rgb.fg1;
+ };
+}
diff --git a/modules/desktop/wm.nix b/modules/desktop/wm.nix
index fcc6735..6719c92 100644
--- a/modules/desktop/wm.nix
+++ b/modules/desktop/wm.nix
@@ -9,6 +9,7 @@ let
cfg = config.modules.desktop.wm;
term = "${config.home-manager.users.${config.user.name}.programs.kitty.package}/bin/kitty";
wallpaper = config.modules.desktop.wallpaper;
+ c = (import ./themes/_palette.nix).semantic;
in
{
options.modules.desktop.wm = {
@@ -62,8 +63,8 @@ in
gaps_in = 7;
gaps_out = 14;
border_size = 2;
- "col.active_border" = "rgb(B28121)";
- "col.inactive_border" = "rgb(504945)";
+ "col.active_border" = c.borderActiveRgb;
+ "col.inactive_border" = c.borderInactiveRgb;
no_focus_fallback = false;
resize_on_border = false;
hover_icon_on_border = false;
@@ -287,19 +288,31 @@ in
cpu = {
interval = 1;
- format = " {usage}%";
+ states = {
+ warning = 60;
+ critical = 85;
+ };
+ format = " {usage}%";
tooltip = false;
};
memory = {
interval = 1;
- format = " {percentage}%";
+ states = {
+ warning = 70;
+ critical = 90;
+ };
+ format = " {percentage}%";
tooltip = false;
};
disk = {
interval = 60;
- format = " {free}";
+ states = {
+ warning = 75;
+ critical = 90;
+ };
+ format = " {free}";
tooltip = false;
};
@@ -309,6 +322,25 @@ in
tooltip = false;
};
+ battery = {
+ states = {
+ warning = 30;
+ critical = 15;
+ };
+ format = "{icon} {capacity}%";
+ format-charging = " {capacity}%";
+ format-plugged = " {capacity}%";
+ format-full = "";
+ format-icons = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
+ tooltip-format = "{timeTo}";
+ };
+
};
};
style = ''
@@ -320,41 +352,41 @@ in
}
tooltip {
- background: #282828;
+ background: ${c.bg};
border: 0px solid;
border-radius: 0px;
}
window#waybar {
- background: #282828;
- color: #ebdbb2;
+ background: ${c.bg};
+ color: ${c.fg};
}
#workspaces button {
padding: 0 0.6em;
- color: #a89984;
+ color: ${c.fgMuted};
border-radius: 0px;
}
#workspaces button.active {
- color: #ebdbb2;
- background: #665c54;
+ color: ${c.fg};
+ background: ${c.bgHover};
}
#workspaces button.urgent {
- color: #1d2021;
- background: #fb4934;
+ color: ${c.bgStrong};
+ background: ${c.critical};
}
#workspaces button:hover {
- background: #665c54;
+ background: ${c.bgHover};
}
#network,
#workspaces,
#bluetooth,
#tray {
- color: #ebdbb2;
+ color: ${c.fg};
padding: 0 5px;
margin: 0 5px;
}
@@ -362,10 +394,37 @@ in
#cpu,
#memory,
#disk,
+ #battery,
#clock {
padding: 0 5px;
margin: 0 5px;
- color: #83a598;
+ color: ${c.info};
+ }
+
+ #battery.charging,
+ #battery.plugged,
+ #battery.full {
+ color: ${c.success};
+ }
+
+ #battery.warning:not(.charging) {
+ color: ${c.warning};
+ }
+
+ #cpu.warning,
+ #memory.warning,
+ #disk.warning {
+ color: ${c.warning};
+ }
+
+ #battery.critical:not(.charging) {
+ color: ${c.critical};
+ }
+
+ #cpu.critical,
+ #memory.critical,
+ #disk.critical {
+ color: ${c.critical};
}
'';
package = pkgs.waybar.override { wireplumberSupport = false; };
@@ -429,9 +488,9 @@ in
dots_center = true;
fade_on_empty = false;
outline_thickness = 3;
- inner_color = "rgb(50, 48, 47)";
- outer_color = "rgb(231, 138, 78)";
- font_color = "rgb(212, 190, 152)";
+ inner_color = c.lockInnerRgb;
+ outer_color = c.lockOuterRgb;
+ font_color = c.lockTextRgb;
placeholder_text = "Password...";
}
];
@@ -440,7 +499,7 @@ in
{
monitor = "";
text = "$TIME";
- color = "rgb(212, 190, 152)";
+ color = c.lockTextRgb;
font_size = 42;
font_family = "MesloLGS Nerd Font Propo";
position = "0, 160";
@@ -450,7 +509,7 @@ in
{
monitor = "";
text = "cmd[update:1000] date +%d/%m/%Y";
- color = "rgb(212, 190, 152)";
+ color = c.lockTextRgb;
font_size = 18;
font_family = "MesloLGS Nerd Font Propo";
position = "0, 120";