some hyprland updates

This commit is contained in:
mjallen18
2025-06-25 18:42:52 -05:00
parent e436f4e543
commit 24fa8c6569
11 changed files with 306 additions and 222 deletions

View File

@@ -13,14 +13,6 @@ let
in in
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
adwaita-icon-theme
apple-cursor
catppuccin
catppuccin-gtk
catppuccin-qt5ct
catppuccin-sddm
colloid-gtk-theme
colloid-icon-theme
ddcutil ddcutil
dunst dunst
glib glib

View File

@@ -9,7 +9,7 @@ in
".config/waybar/scripts".source = "${configDir}/waybar/scripts"; ".config/waybar/scripts".source = "${configDir}/waybar/scripts";
".config/waybar/macchiato.css".source = "${configDir}/waybar/macchiato.css"; ".config/waybar/macchiato.css".source = "${configDir}/waybar/macchiato.css";
".config/waybar/nord.css".source = "${configDir}/waybar/nord.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-dock-hyprland".source = "${configDir}/nwg-dock";
".config/nwg-drawer".source = "${configDir}/nwg-drawer"; ".config/nwg-drawer".source = "${configDir}/nwg-drawer";
".config/nwg-panel".source = "${configDir}/nwg-panel"; ".config/nwg-panel".source = "${configDir}/nwg-panel";

View File

@@ -1,9 +1,12 @@
{ pkgs, ... }: { pkgs, ... }:
let
theme = import ../../theme.nix { inherit pkgs; };
in
{ {
programs.btop = { programs.btop = {
enable = true; enable = true;
settings = { settings = {
color_theme = "/home/matt/.config/btop/themes/nord.theme"; color_theme = "nord";
theme_background = true; theme_background = true;
truecolor = true; truecolor = true;
force_tty = false; force_tty = false;
@@ -68,6 +71,52 @@
selected_battery = "Auto"; selected_battery = "Auto";
log_level = "WARNING"; 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}"
'';
};
}; };
} }

View File

@@ -1,5 +1,7 @@
{ pkgs, ... }:
let 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 in
{ {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
@@ -32,6 +34,7 @@ in
bind = [ bind = [
"$mod, Return, exec, kitty" "$mod, Return, exec, kitty"
"$mod, SPACE, exec, wofi --show drun"
"$mod, Q, killactive, " "$mod, Q, killactive, "
"$mod, M, exec, wlogout --protocol layer-shell" "$mod, M, exec, wlogout --protocol layer-shell"
"$mod, E, exec, nautilus" "$mod, E, exec, nautilus"
@@ -44,12 +47,12 @@ in
"$mod,F,exec,hyprctl dispatch fullscreen active" "$mod,F,exec,hyprctl dispatch fullscreen active"
"$mod SHIFT, E, exec, smile" "$mod SHIFT, E, exec, smile"
"$mod, mouse:276, movecurrentworkspacetomonitor, DP-1" "$mod, mouse:276, movecurrentworkspacetomonitor, ${theme.displayLeft.input}"
"$mod, mouse:275, movecurrentworkspacetomonitor, DP-2" "$mod, mouse:275, movecurrentworkspacetomonitor, ${theme.displayRight.input}"
# alt-tab between workspaces on active monitor # alt-tab between workspaces on active monitor
"ALT, Tab, workspace, m+1" "$mod, Tab, workspace, m+1"
"ALT SHIFT, Tab, workspace, m-1" "$mod SHIFT, Tab, workspace, m-1"
"$mod, h, movefocus, l" "$mod, h, movefocus, l"
"$mod, l, movefocus, r" "$mod, l, movefocus, r"
@@ -112,9 +115,8 @@ in
]; ];
monitor = [ monitor = [
"DP-1,3840x2160@240.00000,0x0,1" "${theme.displayLeft.input},${theme.displayLeft.resolution}@${theme.displayLeft.refreshRate},0x0,1"
"DP-2,3840x2160@240.00000,3840x0,1" "${theme.displayRight.input},${theme.displayRight.resolution}@${theme.displayRight.refreshRate},3840x0,1"
"HDMI-A-1,1920x1080@60.00000,0x0,1"
]; ];
misc = { misc = {
@@ -178,27 +180,27 @@ in
}; };
workspace = [ workspace = [
"name:firefox, monitor:DP-2, default:false, special, class:(.*firefox.*)" "name:firefox, monitor:${theme.displayRight.input}, default:false, special, class:(.*firefox.*)"
"name:discord, monitor:DP-2, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)" "name:discord, monitor:${theme.displayRight.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)"
"name:steam, monitor:DP-1, default:false, special, class:(.*[Ss]team.*)" "name:steam, monitor:${theme.displayLeft.input}, default:false, special, class:(.*[Ss]team.*)"
]; ];
windowrule = [ windowrule = [
"float, title:(file_progress)" "float, title:(file_progress)"
"float, title:(.*confirm.*)" "float, title:(.*[Cc]onfirm.*)"
"float, title:(.*dialog.*)" "float, title:(.*[Dd]ialog.*)"
"float, title:(.*download.*)" "float, title:(.*[Dd]ownload.*)"
"float, title:(.*notification.*)" "float, title:(.*[Nn]otification.*)"
"float, title:(.*error.*)" "float, title:(.*[Ee]rror.*)"
"float, title:(.*splash.*)" "float, title:(.*[Ss]plash.*)"
"float, title:(.*confirmreset.*)" "float, title:(.*[Cc]onfirmreset.*)"
"float, title:(.*Open File.*)" "float, title:(.*[Oo]pen [Ff]ile.*)"
"float, title:(.*branchdialog.*)" "float, title:(.*branchdialog.*)"
"float, class:(.*pavucontrol)" "float, class:(.*pavucontrol.*)"
"move onscreen cursor 0% 0%, class:(.*pavucontrol)" "move onscreen cursor 0% 0%, class:(.*pavucontrol.*)"
"float, class:(.*FileRoller)" "float, class:(.*FileRoller.*)"
"float, class:(.*wlogout)" "float, class:(.*wlogout.*)"
"idleinhibit stayfocused, title:(.*mpv)" "idleinhibit stayfocused, title:(.*mpv.*)"
"float, title:(Media viewer)" "float, title:(Media viewer)"
"float, class:(it.mijorus.smile),title:(Smile)" "float, class:(it.mijorus.smile),title:(Smile)"
@@ -226,10 +228,11 @@ in
# Game Tearing??? https://wiki.hyprland.org/Configuring/Tearing/ # Game Tearing??? https://wiki.hyprland.org/Configuring/Tearing/
"immediate, class:(.*gamescope)" "immediate, class:(.*gamescope)"
# todo properly fix this shit instead of using gamescope
# vmware # vmware
"tag +horizonrdp, class:(Remote Desktop Connection),title:(BBar)" # this tag will set the below options to the vdi window
"tag +horizonrdp, class:(Remote Desktop Connection),title:(Remote Desktop Connection)" # 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" "noanim, tag:horizonrdp"
"noblur, tag:horizonrdp" "noblur, tag:horizonrdp"
@@ -240,11 +243,12 @@ in
"noborder, tag:horizonrdp" "noborder, tag:horizonrdp"
"nodim, tag:horizonrdp" "nodim, tag:horizonrdp"
"nomaxsize, tag:horizonrdp" "nomaxsize, tag:horizonrdp"
"renderunfocused, tag:horizonrdp"
"float, class:(.*Vmware-view),title:(VMware Horizon Client" "idleinhibit, tag:horizonrdp"
"float, class:(Remote Desktop Connection),title:(.*Remote Desktop Connection.*)" "float, tag:horizonrdp"
"float, class:(Remote Desktop Connection),title:(.*5cd238b4x0.*)" "size 2160 7680, tag:horizonrdp"
"float, class:(Credential Manager UI Host),title:(.*Windows Security.*)" # 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 = { input = {

View File

@@ -1,8 +1,12 @@
{ pkgs, ... }:
let
theme = import ../../theme.nix { inherit pkgs; };
in
{ {
services.mako = { services.mako = {
enable = true; enable = true;
settings = { settings = {
font = "monospace 12"; font = theme.fontName;
icons = false; icons = false;
ignore-timeout = true; ignore-timeout = true;
sort = "-time"; sort = "-time";

View File

@@ -1,62 +1,13 @@
{ pkgs, ... }:
let
theme = import ../../theme.nix { inherit pkgs; };
in
{ {
programs.wofi = { programs.wofi = {
enable = false; enable = true;
style = '' 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; font-size: 14px;
} }
@@ -64,9 +15,9 @@
window { window {
margin: 0px; margin: 0px;
padding: 10px; padding: 10px;
border: 0.16em solid @lavender; border: 0.16em solid ${theme.nord.aurora.nord15};
border-radius: 0.1em; border-radius: 0.1em;
background-color: @base; background-color: ${theme.nord.polarNight.nord0};
} }
/* Inner Box */ /* Inner Box */
@@ -74,7 +25,7 @@
margin: 5px; margin: 5px;
padding: 10px; padding: 10px;
border: none; border: none;
background-color: @base; background-color: ${theme.nord.polarNight.nord0};
} }
/* Outer Box */ /* Outer Box */
@@ -82,7 +33,7 @@
margin: 5px; margin: 5px;
padding: 10px; padding: 10px;
border: none; border: none;
background-color: @base; background-color: ${theme.nord.polarNight.nord0};
} }
/* Scroll */ /* Scroll */
@@ -90,7 +41,7 @@
margin: 0px; margin: 0px;
padding: 10px; padding: 10px;
border: none; border: none;
background-color: @base; background-color: ${theme.nord.polarNight.nord0};
} }
/* Input */ /* Input */
@@ -99,46 +50,46 @@
padding: 10px; padding: 10px;
border: none; border: none;
border-radius: 0.1em; border-radius: 0.1em;
color: @text; color: ${theme.nord.snowStorm.nord6};
background-color: @base; background-color: ${theme.nord.polarNight.nord0};
} }
#input image { #input image {
border: none; border: none;
color: @red; color: ${theme.nord.aurora.nord11};
} }
#input * { #input * {
outline: 4px solid @red!important; outline: 4px solid ${theme.nord.aurora.nord11}!important;
} }
/* Text */ /* Text */
#text { #text {
margin: 5px; margin: 5px;
border: none; border: none;
color: @text; color: ${theme.nord.snowStorm.nord6};
} }
#entry { #entry {
background-color: @base; background-color: ${theme.nord.polarNight.nord0};
} }
#entry arrow { #entry arrow {
border: none; border: none;
color: @lavender; color: ${theme.nord.aurora.nord15};
} }
/* Selected Entry */ /* Selected Entry */
#entry:selected { #entry:selected {
border: 0.11em solid @lavender; border: 0.11em solid ${theme.nord.aurora.nord15};
} }
#entry:selected #text { #entry:selected #text {
color: @mauve; color: ${theme.nord.frost.nord7};
} }
#entry:drop(active) { #entry:drop(active) {
background-color: @lavender!important; background-color: ${theme.nord.aurora.nord15}!important;
} }
''; '';
}; };

View File

@@ -1,6 +1,7 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
sddmTheme = "catppuccin-mocha"; # sddmTheme = "catppuccin-mocha";
theme = import ./theme.nix { inherit pkgs; };
in in
{ {
imports = [ imports = [
@@ -14,15 +15,19 @@ in
sddm = { sddm = {
enable = true; enable = true;
package = pkgs.kdePackages.sddm; package = pkgs.kdePackages.sddm;
theme = sddmTheme; theme = theme.sddmTheme;
wayland.enable = true; wayland.enable = true;
}; };
# Disable gdm
gdm.enable = lib.mkForce false; gdm.enable = lib.mkForce false;
defaultSession = "hyprland"; defaultSession = "hyprland";
}; };
# disable plasma
desktopManager.plasma6.enable = lib.mkForce false; # disable other desktops
desktopManager.gnome.enable = lib.mkForce false; desktopManager = {
plasma6.enable = lib.mkForce false;
gnome.enable = lib.mkForce false;
};
dbus.enable = true; dbus.enable = true;
@@ -31,13 +36,15 @@ in
blueman.enable = true; blueman.enable = true;
}; };
programs.hyprland = { programs = {
enable = true; hyprland = {
xwayland.enable = true; enable = true;
portalPackage = pkgs.xdg-desktop-portal-hyprland; xwayland.enable = true;
}; portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
programs.nm-applet.enable = true; nm-applet.enable = true;
};
systemd = { systemd = {
user.services.polkit-gnome-authentication-agent-1 = { user.services.polkit-gnome-authentication-agent-1 = {
@@ -84,8 +91,8 @@ in
wlr.enable = false; wlr.enable = false;
xdgOpenUsePortal = false; xdgOpenUsePortal = false;
extraPortals = [ extraPortals = [
pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-gtk
]; ];
}; };

View File

@@ -11,15 +11,10 @@ let
in in
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
unstable.adwaita-icon-theme
apple-cursor
catppuccin-sddm
colloid-gtk-theme
colloid-icon-theme
ddcutil ddcutil
dunst dunst
egl-wayland egl-wayland
unstable.file-roller file-roller
glib glib
gnome-tweaks gnome-tweaks
gnome-disk-utility gnome-disk-utility
@@ -32,14 +27,13 @@ in
libnotify libnotify
mako mako
meson meson
unstable.nautilus nautilus
networkmanagerapplet networkmanagerapplet
nm-tray nm-tray
nwg-dock-hyprland nwg-dock-hyprland
nwg-drawer nwg-drawer
nwg-look nwg-look
pamixer pamixer
papirus-folders
pavucontrol pavucontrol
playerctl playerctl
polkit polkit

View File

@@ -1,28 +1,7 @@
{ lib, pkgs, ... }: { lib, pkgs, ... }:
let let
theme = import ./theme.nix { inherit pkgs; };
wallpaper = "/home/matt/.config/wallpapers/wall.png"; 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 in
{ {
imports = [ imports = [
@@ -119,8 +98,8 @@ in
settings = { settings = {
preload = [ wallpaper ]; preload = [ wallpaper ];
wallpaper = [ wallpaper = [
"DP-1, ${wallpaper}" "${theme.displayLeft.input}, ${wallpaper}"
"DP-2, ${wallpaper}" "${theme.displayRight.input}, ${wallpaper}"
]; ];
splash = false; splash = false;
}; };
@@ -142,16 +121,16 @@ in
# on-resume = "brightnessctl -r"; # monitor backlight restore. # 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 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-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. 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 on-timeout = "systemctl suspend"; # suspend pc
} }
]; ];
@@ -159,55 +138,58 @@ in
}; };
}; };
programs.hyprlock = { programs = {
enable = true; hyprlock = {
settings = { enable = true;
background = [ settings = {
{ background = [
monitor = ""; {
path = wallpaper; # supports png, jpg, webp (no animations, though) monitor = "";
color = "rgba(25, 20, 20, 1.0)"; 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 # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_passes = "3"; # 0 disables blurring blur_passes = "3"; # 0 disables blurring
blur_size = "7"; blur_size = "7";
noise = "0.0117"; noise = "0.0117";
contrast = "0.8916"; contrast = "0.8916";
brightness = "0.8172"; brightness = "0.8172";
vibrancy = "0.1696"; vibrancy = "0.1696";
vibrancy_darkness = "0.0"; vibrancy_darkness = "0.0";
} }
]; ];
input-field = [ input-field = [
{ {
size = "200, 50"; size = "200, 50";
position = "0, -80"; position = "0, -80";
monitor = "DP-1"; monitor = theme.displayLeft.input;
dots_center = true; dots_center = true;
fade_on_empty = true; fade_on_empty = true;
font_color = "rgb(202, 211, 245)"; font_color = "rgb(202, 211, 245)";
inner_color = "rgb(91, 96, 120)"; inner_color = "rgb(91, 96, 120)";
outer_color = "rgb(24, 25, 38)"; outer_color = "rgb(24, 25, 38)";
bothlock_color = -1; bothlock_color = -1;
outline_thickness = 5; outline_thickness = 5;
placeholder_text = ''<span foreground="##cad3f5">Password...</span>''; placeholder_text = ''<span foreground="##cad3f5">Password...</span>'';
shadow_passes = 2; shadow_passes = 2;
} }
]; ];
};
}; };
vscode.profiles.default.userSettings."window"."titleBarStyle" = "custom";
}; };
home = { home = {
sessionVariables = { sessionVariables = {
BROWSER = "firefox"; BROWSER = "firefox";
CLUTTER_BACKEND = "wayland"; CLUTTER_BACKEND = "wayland";
EDITOR = "nano"; EDITOR = "micro";
ICON_THEME = iconTheme; ICON_THEME = theme.iconTheme;
GTK_CSD = "0"; GTK_CSD = "0";
GTK_THEME = gtkTheme; GTK_THEME = theme.gtkTheme;
GTK_USE_PORTAL = "1"; GTK_USE_PORTAL = "1";
HYPRCURSOR_THEME = cursorTheme; HYPRCURSOR_THEME = theme.cursorTheme;
HYPRCURSOR_SIZE = cursorSize; HYPRCURSOR_SIZE = theme.cursorSize;
MOZ_ENABLE_WAYLAND = "1"; MOZ_ENABLE_WAYLAND = "1";
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
NIXOS_XDG_OPEN_USE_PORTAL = "1"; NIXOS_XDG_OPEN_USE_PORTAL = "1";
@@ -218,8 +200,8 @@ in
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";
TERMINAL = "kitty"; TERMINAL = "kitty";
XCURSOR_THEME = cursorTheme; XCURSOR_THEME = theme.cursorTheme;
XCURSOR_SIZE = cursorSize; XCURSOR_SIZE = theme.cursorSize;
XDG_CACHE_HOME = "\${HOME}/.cache"; XDG_CACHE_HOME = "\${HOME}/.cache";
XDG_CONFIG_HOME = "\${HOME}/.config"; XDG_CONFIG_HOME = "\${HOME}/.config";
XDG_CURRENT_DESKTOP = "Hyprland"; XDG_CURRENT_DESKTOP = "Hyprland";
@@ -230,19 +212,21 @@ in
pointerCursor = { pointerCursor = {
gtk.enable = true; gtk.enable = true;
package = cursorThemePkg; package = theme.cursorThemePkg;
name = cursorTheme; name = theme.cursorTheme;
size = cursorSize; size = theme.cursorSize;
}; };
packages = theme.requiredPkgs;
}; };
dconf = { dconf = {
enable = true; enable = true;
settings = { settings = {
"org/gnome/desktop/interface".color-scheme = "prefer-dark"; "org/gnome/desktop/interface".color-scheme = "prefer-dark";
"org/gnome/desktop/interface".cursor-theme = cursorTheme; "org/gnome/desktop/interface".cursor-theme = theme.cursorTheme;
"org/gnome/desktop/interface".gtk-theme = gtkTheme; "org/gnome/desktop/interface".gtk-theme = theme.gtkTheme;
"org/gnome/desktop/interface".icon-theme = iconTheme; "org/gnome/desktop/interface".icon-theme = theme.iconTheme;
}; };
}; };
@@ -250,18 +234,18 @@ in
enable = true; enable = true;
cursorTheme = { cursorTheme = {
name = cursorTheme; name = theme.cursorTheme;
package = cursorThemePkg; package = theme.cursorThemePkg;
}; };
theme = { theme = {
name = gtkTheme; name = theme.gtkTheme;
package = gtkThemePkg; package = theme.gtkThemePkg;
}; };
iconTheme = { iconTheme = {
name = iconTheme; name = theme.iconTheme;
package = iconThemePkg; package = theme.iconThemePkg;
}; };
gtk3.extraConfig = { gtk3.extraConfig = {
@@ -273,9 +257,9 @@ in
}; };
font = { font = {
name = "JetBrainsMono NFM"; name = theme.fontName;
package = pkgs.nerd-fonts.jetbrains-mono; package = theme.fontPackage;
size = 12; size = theme.fontSize;
}; };
}; };
} }

View File

@@ -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";
};
};
}

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }: { ... }:
let let
gitAliases = { gitAliases = {
co = "checkout"; co = "checkout";
@@ -14,12 +14,8 @@ in
{ {
programs.git = { programs.git = {
enable = true; enable = true;
package = pkgs.git.override { withLibsecret = true; };
userName = "mjallen18"; userName = "mjallen18";
userEmail = "matt.l.jallen@gmail.com"; userEmail = "matt.l.jallen@gmail.com";
aliases = gitAliases; aliases = gitAliases;
extraConfig = {
credential.helper = "libsecret";
};
}; };
} }