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