From 24fa8c6569ab1744af8448d8ac2463bc0fe5a9cb Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Wed, 25 Jun 2025 18:42:52 -0500 Subject: [PATCH] some hyprland updates --- hosts/mac-nixos/hyprland/environment.nix | 8 - .../desktop-environments/hyprland/config.nix | 2 +- .../hyprland/config/btop/default.nix | 51 +++++- .../hyprland/config/hypr/default.nix | 68 ++++---- .../hyprland/config/mako/default.nix | 6 +- .../hyprland/config/wofi/default.nix | 91 +++-------- .../desktop-environments/hyprland/default.nix | 33 ++-- .../hyprland/environment.nix | 10 +- .../desktop-environments/hyprland/home.nix | 150 ++++++++---------- .../desktop-environments/hyprland/theme.nix | 103 ++++++++++++ share/home/git.nix | 6 +- 11 files changed, 306 insertions(+), 222 deletions(-) create mode 100644 modules/desktop-environments/hyprland/theme.nix diff --git a/hosts/mac-nixos/hyprland/environment.nix b/hosts/mac-nixos/hyprland/environment.nix index 457acd7..e889243 100755 --- a/hosts/mac-nixos/hyprland/environment.nix +++ b/hosts/mac-nixos/hyprland/environment.nix @@ -13,14 +13,6 @@ let in { environment.systemPackages = with pkgs; [ - adwaita-icon-theme - apple-cursor - catppuccin - catppuccin-gtk - catppuccin-qt5ct - catppuccin-sddm - colloid-gtk-theme - colloid-icon-theme ddcutil dunst glib diff --git a/modules/desktop-environments/hyprland/config.nix b/modules/desktop-environments/hyprland/config.nix index deb13ec..87be985 100755 --- a/modules/desktop-environments/hyprland/config.nix +++ b/modules/desktop-environments/hyprland/config.nix @@ -9,7 +9,7 @@ in ".config/waybar/scripts".source = "${configDir}/waybar/scripts"; ".config/waybar/macchiato.css".source = "${configDir}/waybar/macchiato.css"; ".config/waybar/nord.css".source = "${configDir}/waybar/nord.css"; - ".config/btop/themes".source = "${configDir}/btop/themes"; + # ".config/btop/themes".source = "${configDir}/btop/themes"; ".config/nwg-dock-hyprland".source = "${configDir}/nwg-dock"; ".config/nwg-drawer".source = "${configDir}/nwg-drawer"; ".config/nwg-panel".source = "${configDir}/nwg-panel"; diff --git a/modules/desktop-environments/hyprland/config/btop/default.nix b/modules/desktop-environments/hyprland/config/btop/default.nix index 430c754..962dfc7 100755 --- a/modules/desktop-environments/hyprland/config/btop/default.nix +++ b/modules/desktop-environments/hyprland/config/btop/default.nix @@ -1,9 +1,12 @@ { pkgs, ... }: +let + theme = import ../../theme.nix { inherit pkgs; }; +in { programs.btop = { enable = true; settings = { - color_theme = "/home/matt/.config/btop/themes/nord.theme"; + color_theme = "nord"; theme_background = true; truecolor = true; force_tty = false; @@ -68,6 +71,52 @@ selected_battery = "Auto"; log_level = "WARNING"; }; + themes = { + nord = '' + theme[main_bg]="#${theme.nord.polarNight.nord0}" + theme[main_fg]="#${theme.nord.snowStorm.nord6}" + theme[title]="#${theme.nord.snowStorm.nord6}" + theme[hi_fg]="#${theme.nord.frost.nord7}" + theme[selected_bg]="#${theme.nord.polarNight.nord1}" + theme[selected_fg]="#${theme.nord.frost.nord7}" + theme[inactive_fg]="#${theme.nord.polarNight.nord2}" + theme[graph_text]="#${theme.nord.snowStorm.nord6}" + theme[meter_bg]="#${theme.nord.polarNight.nord1}" + theme[proc_misc]="#${theme.nord.snowStorm.nord6}" + theme[cpu_box]="#${theme.nord.aurora.nord15}" + theme[mem_box]="#${theme.nord.aurora.nord14}" + theme[net_box]="#${theme.nord.aurora.nord12}" + theme[proc_box]="#${theme.nord.aurora.nord11}" + theme[div_line]="#${theme.nord.polarNight.nord1}" + theme[temp_start]="#${theme.nord.aurora.nord14}" + theme[temp_mid]="#${theme.nord.aurora.nord13}" + theme[temp_end]="#${theme.nord.aurora.nord11}" + theme[cpu_start]="#${theme.nord.aurora.nord15}" + theme[cpu_mid]="#${theme.nord.aurora.nord12}" + theme[cpu_end]="#${theme.nord.aurora.nord11}" + theme[free_start]="#${theme.nord.aurora.nord14}" + theme[free_mid]="#${theme.nord.aurora.nord13}" + theme[free_end]="#${theme.nord.aurora.nord12}" + theme[cached_start]="#${theme.nord.aurora.nord14}" + theme[cached_mid]="#${theme.nord.aurora.nord13}" + theme[cached_end]="#${theme.nord.aurora.nord12}" + theme[available_start]="#${theme.nord.snowStorm.nord6}" + theme[available_mid]="#${theme.nord.aurora.nord11}" + theme[available_end]="#${theme.nord.aurora.nord11}" + theme[used_start]="#${theme.nord.aurora.nord14}" + theme[used_mid]="#${theme.nord.aurora.nord13}" + theme[used_end]="#${theme.nord.aurora.nord11}" + theme[download_start]="#${theme.nord.frost.nord8}" + theme[download_mid]="#${theme.nord.frost.nord8}" + theme[download_end]="#${theme.nord.aurora.nord12}" + theme[upload_start]="#${theme.nord.frost.nord7}" + theme[upload_mid]="#${theme.nord.frost.nord7}" + theme[upload_end]="#${theme.nord.aurora.nord12}" + theme[process_start]="#${theme.nord.aurora.nord15}" + theme[process_mid]="#${theme.nord.aurora.nord12}" + theme[process_end]="#${theme.nord.aurora.nord11}" + ''; + }; }; } diff --git a/modules/desktop-environments/hyprland/config/hypr/default.nix b/modules/desktop-environments/hyprland/config/hypr/default.nix index b174c16..c4e9475 100755 --- a/modules/desktop-environments/hyprland/config/hypr/default.nix +++ b/modules/desktop-environments/hyprland/config/hypr/default.nix @@ -1,5 +1,7 @@ +{ pkgs, ... }: let - drawer = "nwg-drawer -fm nautilus -term kitty -mb 10 -mt 10 -ml 10 -mr 10 -pbuseicontheme -i Colloid-nord-dark"; + theme = import ../../theme.nix { inherit pkgs; }; + drawer = "nwg-drawer -fm nautilus -term kitty -mb 10 -mt 10 -ml 10 -mr 10 -pbuseicontheme -i ${theme.iconTheme}"; in { wayland.windowManager.hyprland = { @@ -32,6 +34,7 @@ in bind = [ "$mod, Return, exec, kitty" + "$mod, SPACE, exec, wofi --show drun" "$mod, Q, killactive, " "$mod, M, exec, wlogout --protocol layer-shell" "$mod, E, exec, nautilus" @@ -44,12 +47,12 @@ in "$mod,F,exec,hyprctl dispatch fullscreen active" "$mod SHIFT, E, exec, smile" - "$mod, mouse:276, movecurrentworkspacetomonitor, DP-1" - "$mod, mouse:275, movecurrentworkspacetomonitor, DP-2" + "$mod, mouse:276, movecurrentworkspacetomonitor, ${theme.displayLeft.input}" + "$mod, mouse:275, movecurrentworkspacetomonitor, ${theme.displayRight.input}" # alt-tab between workspaces on active monitor - "ALT, Tab, workspace, m+1" - "ALT SHIFT, Tab, workspace, m-1" + "$mod, Tab, workspace, m+1" + "$mod SHIFT, Tab, workspace, m-1" "$mod, h, movefocus, l" "$mod, l, movefocus, r" @@ -112,9 +115,8 @@ in ]; monitor = [ - "DP-1,3840x2160@240.00000,0x0,1" - "DP-2,3840x2160@240.00000,3840x0,1" - "HDMI-A-1,1920x1080@60.00000,0x0,1" + "${theme.displayLeft.input},${theme.displayLeft.resolution}@${theme.displayLeft.refreshRate},0x0,1" + "${theme.displayRight.input},${theme.displayRight.resolution}@${theme.displayRight.refreshRate},3840x0,1" ]; misc = { @@ -178,27 +180,27 @@ in }; workspace = [ - "name:firefox, monitor:DP-2, default:false, special, class:(.*firefox.*)" - "name:discord, monitor:DP-2, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)" - "name:steam, monitor:DP-1, default:false, special, class:(.*[Ss]team.*)" + "name:firefox, monitor:${theme.displayRight.input}, default:false, special, class:(.*firefox.*)" + "name:discord, monitor:${theme.displayRight.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)" + "name:steam, monitor:${theme.displayLeft.input}, default:false, special, class:(.*[Ss]team.*)" ]; windowrule = [ "float, title:(file_progress)" - "float, title:(.*confirm.*)" - "float, title:(.*dialog.*)" - "float, title:(.*download.*)" - "float, title:(.*notification.*)" - "float, title:(.*error.*)" - "float, title:(.*splash.*)" - "float, title:(.*confirmreset.*)" - "float, title:(.*Open File.*)" + "float, title:(.*[Cc]onfirm.*)" + "float, title:(.*[Dd]ialog.*)" + "float, title:(.*[Dd]ownload.*)" + "float, title:(.*[Nn]otification.*)" + "float, title:(.*[Ee]rror.*)" + "float, title:(.*[Ss]plash.*)" + "float, title:(.*[Cc]onfirmreset.*)" + "float, title:(.*[Oo]pen [Ff]ile.*)" "float, title:(.*branchdialog.*)" - "float, class:(.*pavucontrol)" - "move onscreen cursor 0% 0%, class:(.*pavucontrol)" - "float, class:(.*FileRoller)" - "float, class:(.*wlogout)" - "idleinhibit stayfocused, title:(.*mpv)" + "float, class:(.*pavucontrol.*)" + "move onscreen cursor 0% 0%, class:(.*pavucontrol.*)" + "float, class:(.*FileRoller.*)" + "float, class:(.*wlogout.*)" + "idleinhibit stayfocused, title:(.*mpv.*)" "float, title:(Media viewer)" "float, class:(it.mijorus.smile),title:(Smile)" @@ -226,10 +228,11 @@ in # Game Tearing??? https://wiki.hyprland.org/Configuring/Tearing/ "immediate, class:(.*gamescope)" - # todo properly fix this shit instead of using gamescope # vmware - "tag +horizonrdp, class:(Remote Desktop Connection),title:(BBar)" - "tag +horizonrdp, class:(Remote Desktop Connection),title:(Remote Desktop Connection)" + # this tag will set the below options to the vdi window + # this will have it auto open as a 2160x7680 window + # and makes multi-monitor work + "tag +horizonrdp, class:(.*[Vv][Mm]ware-view),title:(USPS Next VDI)" "noanim, tag:horizonrdp" "noblur, tag:horizonrdp" @@ -240,11 +243,12 @@ in "noborder, tag:horizonrdp" "nodim, tag:horizonrdp" "nomaxsize, tag:horizonrdp" - - "float, class:(.*Vmware-view),title:(VMware Horizon Client" - "float, class:(Remote Desktop Connection),title:(.*Remote Desktop Connection.*)" - "float, class:(Remote Desktop Connection),title:(.*5cd238b4x0.*)" - "float, class:(Credential Manager UI Host),title:(.*Windows Security.*)" + "renderunfocused, tag:horizonrdp" + "idleinhibit, tag:horizonrdp" + "float, tag:horizonrdp" + "size 2160 7680, tag:horizonrdp" + # float the vmware window cause its annoying to use in fullscreen + "float, class:(.*[Vv][Mm]ware-view),title:([Vv][Mm]ware [Hh]orizon [Cc]lient)" ]; input = { diff --git a/modules/desktop-environments/hyprland/config/mako/default.nix b/modules/desktop-environments/hyprland/config/mako/default.nix index 5c5dd4b..0d33d62 100755 --- a/modules/desktop-environments/hyprland/config/mako/default.nix +++ b/modules/desktop-environments/hyprland/config/mako/default.nix @@ -1,8 +1,12 @@ +{ pkgs, ... }: +let + theme = import ../../theme.nix { inherit pkgs; }; +in { services.mako = { enable = true; settings = { - font = "monospace 12"; + font = theme.fontName; icons = false; ignore-timeout = true; sort = "-time"; diff --git a/modules/desktop-environments/hyprland/config/wofi/default.nix b/modules/desktop-environments/hyprland/config/wofi/default.nix index ba9106d..c09723c 100755 --- a/modules/desktop-environments/hyprland/config/wofi/default.nix +++ b/modules/desktop-environments/hyprland/config/wofi/default.nix @@ -1,62 +1,13 @@ +{ pkgs, ... }: +let + theme = import ../../theme.nix { inherit pkgs; }; +in { programs.wofi = { - enable = false; + enable = true; style = '' - @define-color rosewater #f4dbd6; - @define-color rosewater-rgb rgb(244, 219, 214); - @define-color flamingo #f0c6c6; - @define-color flamingo-rgb rgb(240, 198, 198); - @define-color pink #f5bde6; - @define-color pink-rgb rgb(245, 189, 230); - @define-color mauve #c6a0f6; - @define-color mauve-rgb rgb(198, 160, 246); - @define-color red #ed8796; - @define-color red-rgb rgb(237, 135, 150); - @define-color maroon #ee99a0; - @define-color maroon-rgb rgb(238, 153, 160); - @define-color peach #f5a97f; - @define-color peach-rgb rgb(245, 169, 127); - @define-color yellow #eed49f; - @define-color yellow-rgb rgb(238, 212, 159); - @define-color green #a6da95; - @define-color green-rgb rgb(166, 218, 149); - @define-color teal #8bd5ca; - @define-color teal-rgb rgb(139, 213, 202); - @define-color sky #91d7e3; - @define-color sky-rgb rgb(145, 215, 227); - @define-color sapphire #7dc4e4; - @define-color sapphire-rgb rgb(125, 196, 228); - @define-color blue #8aadf4; - @define-color blue-rgb rgb(138, 173, 244); - @define-color lavender #b7bdf8; - @define-color lavender-rgb rgb(183, 189, 248); - @define-color text #cad3f5; - @define-color text-rgb rgb(202, 211, 245); - @define-color subtext1 #b8c0e0; - @define-color subtext1-rgb rgb(184, 192, 224); - @define-color subtext0 #a5adcb; - @define-color subtext0-rgb rgb(165, 173, 203); - @define-color overlay2 #939ab7; - @define-color overlay2-rgb rgb(147, 154, 183); - @define-color overlay1 #8087a2; - @define-color overlay1-rgb rgb(128, 135, 162); - @define-color overlay0 #6e738d; - @define-color overlay0-rgb rgb(110, 115, 141); - @define-color surface2 #5b6078; - @define-color surface2-rgb rgb(91, 96, 120); - @define-color surface1 #494d64; - @define-color surface1-rgb rgb(73, 77, 100); - @define-color surface0 #363a4f; - @define-color surface0-rgb rgb(54, 58, 79); - @define-color base #24273a; - @define-color base-rgb rgb(36, 39, 58); - @define-color mantle #1e2030; - @define-color mantle-rgb rgb(30, 32, 48); - @define-color crust #181926; - @define-color crust-rgb rgb(24, 25, 38); - * { - font-family: "Inconsolata Nerd Font", monospace; + font-family: "${theme.fontName}", monospace; font-size: 14px; } @@ -64,9 +15,9 @@ window { margin: 0px; padding: 10px; - border: 0.16em solid @lavender; + border: 0.16em solid ${theme.nord.aurora.nord15}; border-radius: 0.1em; - background-color: @base; + background-color: ${theme.nord.polarNight.nord0}; } /* Inner Box */ @@ -74,7 +25,7 @@ margin: 5px; padding: 10px; border: none; - background-color: @base; + background-color: ${theme.nord.polarNight.nord0}; } /* Outer Box */ @@ -82,7 +33,7 @@ margin: 5px; padding: 10px; border: none; - background-color: @base; + background-color: ${theme.nord.polarNight.nord0}; } /* Scroll */ @@ -90,7 +41,7 @@ margin: 0px; padding: 10px; border: none; - background-color: @base; + background-color: ${theme.nord.polarNight.nord0}; } /* Input */ @@ -99,46 +50,46 @@ padding: 10px; border: none; border-radius: 0.1em; - color: @text; - background-color: @base; + color: ${theme.nord.snowStorm.nord6}; + background-color: ${theme.nord.polarNight.nord0}; } #input image { border: none; - color: @red; + color: ${theme.nord.aurora.nord11}; } #input * { - outline: 4px solid @red!important; + outline: 4px solid ${theme.nord.aurora.nord11}!important; } /* Text */ #text { margin: 5px; border: none; - color: @text; + color: ${theme.nord.snowStorm.nord6}; } #entry { - background-color: @base; + background-color: ${theme.nord.polarNight.nord0}; } #entry arrow { border: none; - color: @lavender; + color: ${theme.nord.aurora.nord15}; } /* Selected Entry */ #entry:selected { - border: 0.11em solid @lavender; + border: 0.11em solid ${theme.nord.aurora.nord15}; } #entry:selected #text { - color: @mauve; + color: ${theme.nord.frost.nord7}; } #entry:drop(active) { - background-color: @lavender!important; + background-color: ${theme.nord.aurora.nord15}!important; } ''; }; diff --git a/modules/desktop-environments/hyprland/default.nix b/modules/desktop-environments/hyprland/default.nix index e7a1199..900e309 100755 --- a/modules/desktop-environments/hyprland/default.nix +++ b/modules/desktop-environments/hyprland/default.nix @@ -1,6 +1,7 @@ { pkgs, lib, ... }: let - sddmTheme = "catppuccin-mocha"; +# sddmTheme = "catppuccin-mocha"; + theme = import ./theme.nix { inherit pkgs; }; in { imports = [ @@ -14,15 +15,19 @@ in sddm = { enable = true; package = pkgs.kdePackages.sddm; - theme = sddmTheme; + theme = theme.sddmTheme; wayland.enable = true; }; + # Disable gdm gdm.enable = lib.mkForce false; defaultSession = "hyprland"; }; - # disable plasma - desktopManager.plasma6.enable = lib.mkForce false; - desktopManager.gnome.enable = lib.mkForce false; + + # disable other desktops + desktopManager = { + plasma6.enable = lib.mkForce false; + gnome.enable = lib.mkForce false; + }; dbus.enable = true; @@ -31,13 +36,15 @@ in blueman.enable = true; }; - programs.hyprland = { - enable = true; - xwayland.enable = true; - portalPackage = pkgs.xdg-desktop-portal-hyprland; - }; + programs = { + hyprland = { + enable = true; + xwayland.enable = true; + portalPackage = pkgs.xdg-desktop-portal-hyprland; + }; - programs.nm-applet.enable = true; + nm-applet.enable = true; + }; systemd = { user.services.polkit-gnome-authentication-agent-1 = { @@ -84,8 +91,8 @@ in wlr.enable = false; xdgOpenUsePortal = false; extraPortals = [ - pkgs.xdg-desktop-portal-hyprland - pkgs.xdg-desktop-portal-gtk + pkgs.xdg-desktop-portal-hyprland + pkgs.xdg-desktop-portal-gtk ]; }; diff --git a/modules/desktop-environments/hyprland/environment.nix b/modules/desktop-environments/hyprland/environment.nix index e69e8c0..b1a61cc 100755 --- a/modules/desktop-environments/hyprland/environment.nix +++ b/modules/desktop-environments/hyprland/environment.nix @@ -11,15 +11,10 @@ let in { environment.systemPackages = with pkgs; [ - unstable.adwaita-icon-theme - apple-cursor - catppuccin-sddm - colloid-gtk-theme - colloid-icon-theme ddcutil dunst egl-wayland - unstable.file-roller + file-roller glib gnome-tweaks gnome-disk-utility @@ -32,14 +27,13 @@ in libnotify mako meson - unstable.nautilus + nautilus networkmanagerapplet nm-tray nwg-dock-hyprland nwg-drawer nwg-look pamixer - papirus-folders pavucontrol playerctl polkit diff --git a/modules/desktop-environments/hyprland/home.nix b/modules/desktop-environments/hyprland/home.nix index 851aad1..ffd4fb9 100755 --- a/modules/desktop-environments/hyprland/home.nix +++ b/modules/desktop-environments/hyprland/home.nix @@ -1,28 +1,7 @@ { lib, pkgs, ... }: let + theme = import ./theme.nix { inherit pkgs; }; wallpaper = "/home/matt/.config/wallpapers/wall.png"; - cursorTheme = "macOS"; - cursorThemePkg = pkgs.apple-cursor; - cursorSize = 24; - gtkThemeSize = "compact"; - gtkThemeAccent = "all"; - gtkThemeVariant = "nord"; - gtkThemeColor = "dark"; - gtkTheme = "Colloid-Dark-Compact-Nord"; - gtkThemePkg = pkgs.colloid-gtk-theme.override { - sizeVariants = [ gtkThemeSize ]; - colorVariants = [ gtkThemeColor ]; - themeVariants = [ gtkThemeAccent ]; - tweaks = [ gtkThemeVariant ]; - }; - # iconThemeColor = "dark"; # "" "light" "dark" - # iconThemeVariant = ""; # "" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" - iconThemeScheme = "nord"; # "" "nord" "dracula" "gruvbox" "everforest" "catppuccin" - iconTheme = "Colloid-Nord-Dark"; - iconThemePkg = pkgs.colloid-icon-theme.override { - schemeVariants = [ iconThemeScheme ]; - colorVariants = [ "default" ]; - }; in { imports = [ @@ -119,8 +98,8 @@ in settings = { preload = [ wallpaper ]; wallpaper = [ - "DP-1, ${wallpaper}" - "DP-2, ${wallpaper}" + "${theme.displayLeft.input}, ${wallpaper}" + "${theme.displayRight.input}, ${wallpaper}" ]; splash = false; }; @@ -142,16 +121,16 @@ in # on-resume = "brightnessctl -r"; # monitor backlight restore. # } { - timeout = 900; # 15 min + timeout = theme.lockScreenTimer; on-timeout = "loginctl lock-session"; # lock screen when timeout has passed } { - timeout = 930; # 15.5 min + timeout = theme.screenOffTimer; on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired. } { - timeout = 3600; # 1hr + timeout = theme.suspendTimer; on-timeout = "systemctl suspend"; # suspend pc } ]; @@ -159,55 +138,58 @@ in }; }; - programs.hyprlock = { - enable = true; - settings = { - background = [ - { - monitor = ""; - path = wallpaper; # supports png, jpg, webp (no animations, though) - color = "rgba(25, 20, 20, 1.0)"; + programs = { + hyprlock = { + enable = true; + settings = { + background = [ + { + monitor = ""; + path = wallpaper; # supports png, jpg, webp (no animations, though) + color = "rgba(25, 20, 20, 1.0)"; - # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations - blur_passes = "3"; # 0 disables blurring - blur_size = "7"; - noise = "0.0117"; - contrast = "0.8916"; - brightness = "0.8172"; - vibrancy = "0.1696"; - vibrancy_darkness = "0.0"; - } - ]; - input-field = [ - { - size = "200, 50"; - position = "0, -80"; - monitor = "DP-1"; - dots_center = true; - fade_on_empty = true; - font_color = "rgb(202, 211, 245)"; - inner_color = "rgb(91, 96, 120)"; - outer_color = "rgb(24, 25, 38)"; - bothlock_color = -1; - outline_thickness = 5; - placeholder_text = ''Password...''; - shadow_passes = 2; - } - ]; + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_passes = "3"; # 0 disables blurring + blur_size = "7"; + noise = "0.0117"; + contrast = "0.8916"; + brightness = "0.8172"; + vibrancy = "0.1696"; + vibrancy_darkness = "0.0"; + } + ]; + input-field = [ + { + size = "200, 50"; + position = "0, -80"; + monitor = theme.displayLeft.input; + dots_center = true; + fade_on_empty = true; + font_color = "rgb(202, 211, 245)"; + inner_color = "rgb(91, 96, 120)"; + outer_color = "rgb(24, 25, 38)"; + bothlock_color = -1; + outline_thickness = 5; + placeholder_text = ''Password...''; + shadow_passes = 2; + } + ]; + }; }; + vscode.profiles.default.userSettings."window"."titleBarStyle" = "custom"; }; home = { sessionVariables = { BROWSER = "firefox"; CLUTTER_BACKEND = "wayland"; - EDITOR = "nano"; - ICON_THEME = iconTheme; + EDITOR = "micro"; + ICON_THEME = theme.iconTheme; GTK_CSD = "0"; - GTK_THEME = gtkTheme; + GTK_THEME = theme.gtkTheme; GTK_USE_PORTAL = "1"; - HYPRCURSOR_THEME = cursorTheme; - HYPRCURSOR_SIZE = cursorSize; + HYPRCURSOR_THEME = theme.cursorTheme; + HYPRCURSOR_SIZE = theme.cursorSize; MOZ_ENABLE_WAYLAND = "1"; NIXOS_OZONE_WL = "1"; NIXOS_XDG_OPEN_USE_PORTAL = "1"; @@ -218,8 +200,8 @@ in QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; SDL_VIDEODRIVER = "wayland"; TERMINAL = "kitty"; - XCURSOR_THEME = cursorTheme; - XCURSOR_SIZE = cursorSize; + XCURSOR_THEME = theme.cursorTheme; + XCURSOR_SIZE = theme.cursorSize; XDG_CACHE_HOME = "\${HOME}/.cache"; XDG_CONFIG_HOME = "\${HOME}/.config"; XDG_CURRENT_DESKTOP = "Hyprland"; @@ -230,19 +212,21 @@ in pointerCursor = { gtk.enable = true; - package = cursorThemePkg; - name = cursorTheme; - size = cursorSize; + package = theme.cursorThemePkg; + name = theme.cursorTheme; + size = theme.cursorSize; }; + + packages = theme.requiredPkgs; }; dconf = { enable = true; settings = { "org/gnome/desktop/interface".color-scheme = "prefer-dark"; - "org/gnome/desktop/interface".cursor-theme = cursorTheme; - "org/gnome/desktop/interface".gtk-theme = gtkTheme; - "org/gnome/desktop/interface".icon-theme = iconTheme; + "org/gnome/desktop/interface".cursor-theme = theme.cursorTheme; + "org/gnome/desktop/interface".gtk-theme = theme.gtkTheme; + "org/gnome/desktop/interface".icon-theme = theme.iconTheme; }; }; @@ -250,18 +234,18 @@ in enable = true; cursorTheme = { - name = cursorTheme; - package = cursorThemePkg; + name = theme.cursorTheme; + package = theme.cursorThemePkg; }; theme = { - name = gtkTheme; - package = gtkThemePkg; + name = theme.gtkTheme; + package = theme.gtkThemePkg; }; iconTheme = { - name = iconTheme; - package = iconThemePkg; + name = theme.iconTheme; + package = theme.iconThemePkg; }; gtk3.extraConfig = { @@ -273,9 +257,9 @@ in }; font = { - name = "JetBrainsMono NFM"; - package = pkgs.nerd-fonts.jetbrains-mono; - size = 12; + name = theme.fontName; + package = theme.fontPackage; + size = theme.fontSize; }; }; } diff --git a/modules/desktop-environments/hyprland/theme.nix b/modules/desktop-environments/hyprland/theme.nix new file mode 100644 index 0000000..5f4633f --- /dev/null +++ b/modules/desktop-environments/hyprland/theme.nix @@ -0,0 +1,103 @@ +{ pkgs, ... }: +let + themeSize = "compact"; # [ "standard" "compact" ] + themeAccent = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] + themeVariant = "nord"; # [ "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" "black" "rimless" "normal" "float" ] + themeColor = "dark"; # [ "standard" "light" "dark" ] + iconThemeVariant = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] + iconScheme = "nord"; # [ "default" "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" ] + user = "matt"; +in +{ + # Displays + displayLeft = { + input = "DP-1"; + resolution = "3840x2160"; + refreshRate = "240.00000"; + }; + displayRight = { + input = "DP-2"; + resolution = "3840x2160"; + refreshRate = "240.00000"; + }; + + # Cursor + cursorTheme = "macOS"; + cursorThemePkg = pkgs.apple-cursor; + cursorSize = 24; + + # GTK + gtkThemeSize = themeSize; + gtkThemeAccent = themeAccent; + gtkThemeVariant = themeVariant; + gtkThemeColor = themeColor; + gtkTheme = "Colloid-Dark-Compact-Nord"; + gtkThemePkg = pkgs.colloid-gtk-theme.override { + sizeVariants = [ themeSize ]; + colorVariants = [ themeColor ]; + themeVariants = [ themeAccent ]; + tweaks = [ themeVariant ]; + }; + + # Icons + iconThemeScheme = iconScheme; + iconTheme = "Colloid-Nord-Dark"; + iconThemePkg = pkgs.colloid-icon-theme.override { + schemeVariants = [ iconScheme ]; + colorVariants = [ iconThemeVariant ]; + }; + + # Fonts + fontName = "JetBrainsMono NFM"; + fontPackage = pkgs.nerd-fonts.jetbrains-mono; + fontSize = 12; + + # SDDM/Locking + sddmTheme = "astronaut"; + lockScreenTimer = 900; # 15 min + screenOffTimer = 930; # 15.5 min + suspendTimer = 3600; # 1hr + + # Packages needed for the theme(s) + requiredPkgs = with pkgs; [ + adwaita-icon-theme + adwaita-icon-theme + apple-cursor + catppuccin + catppuccin-gtk + catppuccin-qt5ct + catppuccin-sddm + colloid-gtk-theme + colloid-icon-theme + papirus-folders + sddm-astronaut + ]; + + # Nord colors + nord = { + polarNight = { + nord0 = "2e3440"; + nord1 = "3b4252"; + nord2 = "434c5e"; + nord3 = "4c566a"; + }; + snowStorm = { + nord4 = "d8dee9"; + nord5 = "e5e9f0"; + nord6 = "eceff4"; + }; + frost = { + nord7 = "8fbcbb"; + nord8 = "88c0d0"; + nord9 = "81a1c1"; + nord10 = "5e81ac"; + }; + aurora = { + nord11 = "bf616a"; + nord12 = "d08770"; + nord13 = "ebcb8b"; + nord14 = "a3be8c"; + nord15 = "b48ead"; + }; + }; +} \ No newline at end of file diff --git a/share/home/git.nix b/share/home/git.nix index d5bee7d..026e07c 100644 --- a/share/home/git.nix +++ b/share/home/git.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ ... }: let gitAliases = { co = "checkout"; @@ -14,12 +14,8 @@ in { programs.git = { enable = true; - package = pkgs.git.override { withLibsecret = true; }; userName = "mjallen18"; userEmail = "matt.l.jallen@gmail.com"; aliases = gitAliases; - extraConfig = { - credential.helper = "libsecret"; - }; }; } \ No newline at end of file