From e1ded294f367e38a7567804806b342acd9d8f774 Mon Sep 17 00:00:00 2001 From: larstvei Date: Fri, 5 Sep 2025 21:18:17 +0200 Subject: [PATCH] Make hyprland theme light/dark togglable --- home/desktop/default.nix | 15 +---------- home/desktop/hyprland/default.nix | 5 ++-- home/desktop/theme/default.nix | 44 +++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 17 deletions(-) create mode 100644 home/desktop/theme/default.nix diff --git a/home/desktop/default.nix b/home/desktop/default.nix index 08a83ae..e98f868 100644 --- a/home/desktop/default.nix +++ b/home/desktop/default.nix @@ -12,22 +12,9 @@ imports = [ zen-browser.homeModules.beta ./hyprland + ./theme ]; - xdg.portal = { - enable = true; - extraPortals = [ - pkgs.xdg-desktop-portal-hyprland - pkgs.xdg-desktop-portal-gtk - ]; - config.hyprland."org.freedesktop.impl.portal.Settings" = "darkman"; - }; - - services.darkman = { - enable = true; - settings.portal = true; - }; - programs.zen-browser = { enable = true; policies = { diff --git a/home/desktop/hyprland/default.nix b/home/desktop/hyprland/default.nix index c898f7b..29b74be 100644 --- a/home/desktop/hyprland/default.nix +++ b/home/desktop/hyprland/default.nix @@ -8,13 +8,10 @@ misc = { disable_hyprland_logo = true; - background_color = "0x1A1D23"; }; general = { border_size = 2; - "col.active_border" = "0xFF81A1C1"; - "col.inactive_border" = "0xFF677691"; layout = "master"; }; @@ -119,6 +116,8 @@ "$mod, =, resizeactive, +10" "$mod, -, resizeactive, -10" + "$mod, D, exec, darkman toggle" + # Text input (macOS-like way of producing Norwegian characters) "$mod, A, exec, wtype 'å'" "$mod, O, exec, wtype 'ø'" diff --git a/home/desktop/theme/default.nix b/home/desktop/theme/default.nix new file mode 100644 index 0000000..30dd6af --- /dev/null +++ b/home/desktop/theme/default.nix @@ -0,0 +1,44 @@ +{ pkgs, ... }: +let + bg = { + light = "FAFAFA"; + dark = "2E3440"; + }; + fg = { + light = "37474F"; + dark = "ECEFF4"; + }; + primary = { + light = "673AB7"; + dark = "81A1C1"; + }; + secondary = { + light = "90A4AE"; + dark = "677691"; + }; +in +{ + xdg.portal = { + enable = true; + extraPortals = [ + pkgs.xdg-desktop-portal-hyprland + pkgs.xdg-desktop-portal-gtk + ]; + config.hyprland."org.freedesktop.impl.portal.Settings" = "darkman"; + }; + + services.darkman = { + enable = true; + settings.portal = true; + lightModeScripts.hyprland-light = '' + hyprctl keyword misc:background_color 0x${bg.light} + hyprctl keyword general:col.active_border 0xFF${primary.light} + hyprctl keyword general:col.inactive_border 0xFF${secondary.light} + ''; + darkModeScripts.hyprland-dark = '' + hyprctl keyword misc:background_color 0x${bg.dark} + hyprctl keyword general:col.active_border 0xFF${primary.dark} + hyprctl keyword general:col.inactive_border 0xFF${secondary.dark} + ''; + }; +}