From 87293b7553849ec44e6a149187c37838d96215e3 Mon Sep 17 00:00:00 2001 From: Paul-Henri Froidmont Date: Fri, 1 Mar 2024 17:11:19 +0100 Subject: [PATCH] Update theme --- hosts/froidmpa-laptop/default.nix | 2 +- modules/desktop/default.nix | 15 ++++-- modules/desktop/themes/gtk.css | 78 +++++++++++++++++++++++++++++++ modules/desktop/themes/gtk.nix | 48 +++++++++++++------ modules/desktop/themes/qt.nix | 49 +++++++++++++++---- modules/desktop/xmonad/xmonad.hs | 2 +- modules/desktop/xmonad/xmonad.nix | 16 +------ 7 files changed, 166 insertions(+), 44 deletions(-) create mode 100644 modules/desktop/themes/gtk.css diff --git a/hosts/froidmpa-laptop/default.nix b/hosts/froidmpa-laptop/default.nix index 34fc036..ddcce79 100644 --- a/hosts/froidmpa-laptop/default.nix +++ b/hosts/froidmpa-laptop/default.nix @@ -40,7 +40,7 @@ services.blueman-applet.enable = true; services.grobi = { enable = true; - executeAfter = [ "${pkgs.feh}/bin/feh --bg-fill ~/.wallpaper.png" ]; + executeAfter = [ "${pkgs.feh}/bin/feh --bg-fill ~/.wallpaper.jpg" ]; rules = [ { name = "External HDMI"; diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 8df9007..db04430 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -2,7 +2,13 @@ with lib; with lib.my; -let cfg = config.modules.desktop; +let + cfg = config.modules.desktop; + wallpaper = pkgs.fetchurl { + url = + "https://raw.githubusercontent.com/AngelJumbo/gruvbox-wallpapers/main/wallpapers/irl/houseonthesideofalake.jpg"; + sha256 = "sha256-obKI4qZvucogqRCl51lwV9X8SRaMqcbBwWMfc9TupIo="; + }; in { config = mkIf config.services.xserver.enable { @@ -25,7 +31,7 @@ in { xsession = { enable = true; initExtra = '' - ${pkgs.feh}/bin/feh --bg-fill ${./wallpaper.png} + ${pkgs.feh}/bin/feh --bg-fill ${wallpaper} keepassxc & ''; numlock.enable = true; @@ -43,8 +49,7 @@ in { screen-locker = { enable = false; inactiveInterval = 5; - lockCmd = - "${pkgs.i3lock}/bin/i3lock -e -f -c 000000 -i ${./wallpaper.png}"; + lockCmd = "${pkgs.i3lock}/bin/i3lock -e -f -c 000000 -i ${wallpaper}"; }; }; @@ -147,7 +152,7 @@ in { options = [ "caps:escape" ]; }; - file = { ".wallpaper.png".source = ./wallpaper.png; }; + file = { ".wallpaper.jpg".source = wallpaper; }; sessionVariables.EDITOR = "vim"; diff --git a/modules/desktop/themes/gtk.css b/modules/desktop/themes/gtk.css new file mode 100644 index 0000000..2d817ba --- /dev/null +++ b/modules/desktop/themes/gtk.css @@ -0,0 +1,78 @@ +@define-color accent_color #83a598; +@define-color accent_bg_color mix(#83a598, #282828,0.3); +@define-color accent_fg_color #d5c4a1; +@define-color destructive_color #83a598; +@define-color destructive_bg_color mix(#83a598, #282828,0.3); +@define-color destructive_fg_color #d5c4a1; +@define-color success_color #8ff0a4; +@define-color success_bg_color #26a269; +@define-color success_fg_color #d5c4a1; +@define-color warning_color #f8e45c; +@define-color warning_bg_color #cd9309; +@define-color warning_fg_color rgba(0, 0, 0, 0.8); +@define-color error_color #ff7b63; +@define-color error_bg_color mix(#83a598, #282828,0.3); +@define-color error_fg_color #d5c4a1; +@define-color window_bg_color #282828; +@define-color window_fg_color #d5c4a1; +@define-color view_bg_color #3c3836; +@define-color view_fg_color #d5c4a1; +@define-color headerbar_bg_color mix(#282828,black,0.2); +@define-color headerbar_fg_color #d5c4a1; +@define-color headerbar_border_color #d5c4a1; +@define-color headerbar_backdrop_color @window_bg_color; +@define-color headerbar_shade_color rgba(0, 0, 0, 0.36); +@define-color card_bg_color rgba(255, 255, 255, 0.08); +@define-color card_fg_color #d5c4a1; +@define-color card_shade_color rgba(0, 0, 0, 0.36); +@define-color dialog_bg_color #665c54; +@define-color dialog_fg_color #d5c4a1; +@define-color popover_bg_color #665c54; +@define-color popover_fg_color #d5c4a1; +@define-color shade_color rgba(0,0,0,0.36); +@define-color scrollbar_outline_color rgba(0,0,0,0.5); +@define-color blue_1 #83a598; +@define-color blue_2 #83a598; +@define-color blue_3 #83a598; +@define-color blue_4 #83a598; +@define-color blue_5 #83a598; +@define-color green_1 #b8bb26; +@define-color green_2 #b8bb26; +@define-color green_3 #b8bb26; +@define-color green_4 #b8bb26; +@define-color green_5 #b8bb26; +@define-color yellow_1 #fabd2f; +@define-color yellow_2 #fabd2f; +@define-color yellow_3 #fabd2f; +@define-color yellow_4 #fabd2f; +@define-color yellow_5 #fabd2f; +@define-color orange_1 #fe8019; +@define-color orange_2 #fe8019; +@define-color orange_3 #fe8019; +@define-color orange_4 #fe8019; +@define-color orange_5 #fe8019; +@define-color red_1 #fb4934; +@define-color red_2 #fb4934; +@define-color red_3 #fb4934; +@define-color red_4 #fb4934; +@define-color red_5 #fb4934; +@define-color purple_1 #d3869b; +@define-color purple_2 #d3869b; +@define-color purple_3 #d3869b; +@define-color purple_4 #d3869b; +@define-color purple_5 #d3869b; +@define-color brown_1 #d65d0e; +@define-color brown_2 #d65d0e; +@define-color brown_3 #d65d0e; +@define-color brown_4 #d65d0e; +@define-color brown_5 #d65d0e; +@define-color light_1 #d5c4a1; +@define-color light_2 #f6f5f4; +@define-color light_3 #deddda; +@define-color light_4 #c0bfbc; +@define-color light_5 #9a9996; +@define-color dark_1 mix(#282828,white,0.5); +@define-color dark_2 mix(#282828,white,0.2); +@define-color dark_3 #282828; +@define-color dark_4 mix(#282828,black,0.2); +@define-color dark_5 mix(#282828,black,0.4); diff --git a/modules/desktop/themes/gtk.nix b/modules/desktop/themes/gtk.nix index 36e9f70..8657d6b 100644 --- a/modules/desktop/themes/gtk.nix +++ b/modules/desktop/themes/gtk.nix @@ -2,7 +2,24 @@ with lib; with lib.my; -let cfg = config.modules.desktop.themes.gtk; +let + cfg = config.modules.desktop.themes.gtk; + + gruvboxPlus = pkgs.stdenv.mkDerivation rec { + name = "gruvbox-plus"; + version = "5.1"; + src = pkgs.fetchurl { + url = + "https://github.com/SylEleuth/gruvbox-plus-icon-pack/releases/download/v${version}/gruvbox-plus-icon-pack-${version}.zip"; + sha256 = "1n3hqwk1mqaj8vbmy0pqbiq6v5jqrhmhin506xbpnccl28f907j0"; + }; + dontUnpack = true; + installPhase = '' + mkdir -p $out + ${pkgs.unzip}/bin/unzip $src -d $out/ + ''; + + }; in { options.modules.desktop.themes.gtk = { enable = mkBoolOpt false; }; @@ -16,12 +33,26 @@ in { gtk = { enable = true; - theme = { name = "gruvbox-dark"; }; - iconTheme = { name = "gruvbox-dark"; }; + cursorTheme = { + package = pkgs.unstable.paper-icon-theme; + name = "Paper"; + }; + theme = { + package = pkgs.unstable.adw-gtk3; + name = "adw-gtk3"; + }; + iconTheme = { + package = gruvboxPlus; + name = "GruvboxPlus"; + }; + }; + + xdg.configFile = { + "gtk-3.0/gtk.css" = { source = ./gtk.css; }; + "gtk-4.0/gtk.css" = { source = ./gtk.css; }; }; home = { - pointerCursor = { package = pkgs.unstable.paper-icon-theme; name = "Paper"; @@ -29,15 +60,6 @@ in { gtk.enable = true; x11.enable = true; }; - - file = { - ".themes/gruvbox-dark" = { - source = "${inputs.gruvbox-gtk-theme}/themes/Gruvbox-Dark-BL"; - }; - ".icons/gruvbox-dark" = { - source = "${inputs.gruvbox-gtk-theme}/icons/Gruvbox-Dark"; - }; - }; }; }; }; diff --git a/modules/desktop/themes/qt.nix b/modules/desktop/themes/qt.nix index be3bf9d..9287862 100644 --- a/modules/desktop/themes/qt.nix +++ b/modules/desktop/themes/qt.nix @@ -2,24 +2,53 @@ with lib; with lib.my; -let cfg = config.modules.desktop.themes.qt; +let + cfg = config.modules.desktop.themes.qt; + + sddmBackground = pkgs.fetchurl { + url = + "https://raw.githubusercontent.com/AngelJumbo/gruvbox-wallpapers/main/wallpapers/irl/mountains2.jpg"; + sha256 = "sha256-hp9cxCpZsDYKxUUSuec2wZyv9/N93Cw6ENTHGxKap9Q="; + }; + + sddmTheme = pkgs.stdenv.mkDerivation { + name = "sddm-theme"; + src = pkgs.fetchFromGitHub { + owner = "MarianArlt"; + repo = "sddm-sugar-dark"; + rev = "ceb2c455663429be03ba62d9f898c571650ef7fe"; + sha256 = "0153z1kylbhc9d12nxy9vpn0spxgrhgy36wy37pk6ysq7akaqlvy"; + }; + installPhase = '' + mkdir -p $out + cp -R ./* $out/ + cd $out/ + rm Background.jpg + cp -r ${sddmBackground} $out/Background.jpg + ''; + }; + in { options.modules.desktop.themes.qt = { enable = mkBoolOpt false; }; config = mkIf cfg.enable { + services.xserver.displayManager.sddm.theme = "${sddmTheme}"; + + environment.systemPackages = with pkgs; [ + libsForQt5.qt5.qtquickcontrols2 + libsForQt5.qt5.qtgraphicaleffects + ]; + home-manager.users.${config.user.name} = { - xdg.configFile = { - "Kvantum/kvantum.kvconfig" = { text = "theme=Gruvbox-Dark-Blue"; }; - - "Kvantum/Gruvbox-Dark-Blue" = { - source = "${inputs.gruvbox-kvantum-theme}/Gruvbox-Dark-Blue"; + qt = { + enable = true; + platformTheme = "gtk"; + style = { + name = "adwaita-dark"; + package = pkgs.unstable.adwaita-qt; }; }; - - home.sessionVariables = { QT_STYLE_OVERRIDE = "kvantum-dark"; }; - - home.packages = with pkgs.unstable; [ libsForQt5.qtstyleplugin-kvantum ]; }; }; } diff --git a/modules/desktop/xmonad/xmonad.hs b/modules/desktop/xmonad/xmonad.hs index af3b18f..ac89553 100644 --- a/modules/desktop/xmonad/xmonad.hs +++ b/modules/desktop/xmonad/xmonad.hs @@ -77,7 +77,7 @@ myRemoveKeys = [ myAdditionalKeys = [ ("M-q", kill), - ("M-x", spawn "i3lock -e -f -c 000000 -i ~/.wallpaper.png"), + ("M-x", spawn "i3lock -e -f -c 000000 -i ~/.wallpaper.jpg"), ("M-S-h", sendMessage (IncMasterN 1)), ("M-S-l", sendMessage (IncMasterN (-1))), ("M-S-", windows W.swapMaster), diff --git a/modules/desktop/xmonad/xmonad.nix b/modules/desktop/xmonad/xmonad.nix index 8d16519..d59b1b0 100644 --- a/modules/desktop/xmonad/xmonad.nix +++ b/modules/desktop/xmonad/xmonad.nix @@ -28,20 +28,8 @@ in { autoRepeatInterval = 25; desktopManager.xterm.enable = false; windowManager.xmonad.enable = true; - displayManager.lightdm = { - enable = true; - background = ../wallpaper.png; - #greeters.mini = { - # enable = true; - # user = config.user.name; - # extraConfig = '' - # text-color = "#fbf1c7" - # password-background-color = "#3c3836" - # window-color = "#282828" - # border-color = "#458588" - # ''; - #}; - }; + displayManager.sddm.enable = true; + }; home-manager.users.${config.user.name} = {