Co-authored-by: mjallen18 <matt.l.jallen@gmail.com>
Reviewed-on: #3
This commit is contained in:
2025-12-01 17:26:26 -06:00
parent 672221f471
commit f172707b15
48 changed files with 851 additions and 1321 deletions

View File

@@ -7,12 +7,11 @@
with lib;
let
cfg = config.mjallen.programs.hyprland;
drawer = "nwg-drawer -fm nautilus -term kitty -mb 10 -mt 10 -ml 10 -mr 10 -pbuseicontheme -i ${config.gtk.iconTheme.name}";
drawer = "nwg-drawer -fm nautilus -term kitty -mb 10 -mt 10 -ml 10 -mr 10 -pbuseicontheme -i ${config.stylix.icons.dark}";
in
{
imports = [
./options.nix
./theme.nix
];
config = mkIf cfg.enable {
@@ -83,8 +82,8 @@ in
GTK_CSD = "0";
GTK_THEME = config.gtk.theme.name;
GTK_USE_PORTAL = "1";
HYPRCURSOR_THEME = config.home.pointerCursor.name;
HYPRCURSOR_SIZE = config.home.pointerCursor.size;
HYPRCURSOR_THEME = config.stylix.cursor.name;
HYPRCURSOR_SIZE = config.stylix.cursor.size;
MOZ_ENABLE_WAYLAND = "1";
NIXOS_OZONE_WL = "1";
NIXOS_XDG_OPEN_USE_PORTAL = "1";
@@ -95,8 +94,8 @@ in
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland";
TERMINAL = "${cfg.defaultApps.terminal.pname}";
XCURSOR_THEME = config.home.pointerCursor.name;
XCURSOR_SIZE = config.home.pointerCursor.size;
XCURSOR_THEME = config.stylix.cursor.name;
XCURSOR_SIZE = config.stylix.cursor.size;
XDG_CACHE_HOME = "\${HOME}/.cache";
XDG_CONFIG_HOME = "\${HOME}/.config";
XDG_CURRENT_DESKTOP = "Hyprland";
@@ -176,14 +175,14 @@ in
{
monitor = "";
path = "/run/wallpaper.jpg"; # supports png, jpg, webp (no animations, though)
color = "rgba(25, 20, 20, 1.0)";
color = mkForce "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";
blur_passes = mkForce "3"; # 0 disables blurring
blur_size = mkForce "7";
noise = "0.0117";
contrast = "0.8916";
brightness = "0.8172";
brightness = mkForce "0.8172";
vibrancy = "0.1696";
vibrancy_darkness = "0.0";
}
@@ -193,9 +192,9 @@ in
{
monitor = cfg.primaryDisplay;
text = "cmd[update:1000] echo -e \"$(LC_TIME=en_US.UTF-8 date +\"%A, %B %d\")\"";
color = "#eceff4";
color = config.lib.stylix.colors.base06;
font_size = "25";
font_family = "JetBrainsMono NFM";
font_family = lib.mkDefault config.stylix.fonts.monospace.name;
position = "0, 350";
halign = "center";
valign = "center";
@@ -204,9 +203,9 @@ in
{
monitor = cfg.primaryDisplay;
text = "cmd[update:1000] echo \"<span>$(date +\"%I:%M\")</span>\"";
color = "#eceff4";
color = config.lib.stylix.colors.base06;
font_size = "120";
font_family = "JetBrainsMono NFM Bold";
font_family = lib.mkDefault "${config.stylix.fonts.monospace.name} Bold";
position = "0, 230";
halign = "center";
valign = "center";
@@ -214,13 +213,13 @@ in
{
monitor = cfg.primaryDisplay;
text = "$USER";
color = "#eceff4";
color = config.lib.stylix.colors.base06;
outline_thickness = 2;
dots_size = 0.2;
dots_spacing = 0.2;
dots_center = true;
font_size = 18;
font_family = "JetBrainsMono NFM Bold";
font_family = lib.mkDefault "${config.stylix.fonts.monospace.name} Bold";
position = "0, 0";
halign = "center";
valign = "center";
@@ -229,9 +228,9 @@ in
{
monitor = cfg.primaryDisplay;
text = "cmd[update:30000] waybar-weather --hyprlock";
color = "#eceff4";
color = config.lib.stylix.colors.base06;
font_size = "25";
font_family = "JetBrainsMono NFM";
font_family = lib.mkDefault config.stylix.fonts.monospace.name;
position = "-100, 100";
halign = "right";
valign = "bottom";
@@ -240,9 +239,9 @@ in
{
monitor = cfg.primaryDisplay;
text = "cmd[update:1000] waybar-media";
color = "#eceff4";
color = config.lib.stylix.colors.base06;
font_size = "15";
font_family = "JetBrainsMono NFM";
font_family = lib.mkDefault config.stylix.fonts.monospace.name;
position = "100, 100";
halign = "left";
valign = "bottom";
@@ -265,16 +264,16 @@ in
{
size = "200, 50";
position = "0, -80";
font_family = "JetBrainsMono NFM";
font_family = lib.mkDefault config.stylix.fonts.monospace.name;
monitor = cfg.primaryDisplay;
dots_center = true;
fade_on_empty = true;
font_color = "#eceff4";
inner_color = "#4c566a";
outer_color = "#2e3440";
font_color = config.lib.stylix.colors.base06;
inner_color = config.lib.stylix.colors.base03;
outer_color = config.lib.stylix.colors.base00;
bothlock_color = -1;
outline_thickness = 5;
placeholder_text = ''<span foreground="##2e3440">Password...</span>'';
placeholder_text = ''<span foreground="#${config.lib.stylix.colors.base00}">Password...</span>'';
shadow_passes = 2;
}
];
@@ -486,8 +485,8 @@ in
gaps_in = 5;
gaps_out = 10;
border_size = 1;
"col.active_border" = "rgb(8aadf4) rgb(24273A) rgb(24273A) rgb(8aadf4) 45deg";
"col.inactive_border" = "rgb(24273A) rgb(24273A) rgb(24273A) rgb(24273A) 45deg";
# "col.active_border" = "rgb(8aadf4) rgb(24273A) rgb(24273A) rgb(8aadf4) 45deg";
# "col.inactive_border" = "rgb(24273A) rgb(24273A) rgb(24273A) rgb(24273A) 45deg";
layout = "dwindle";
allow_tearing = cfg.allowTearing;
};

View File

@@ -152,18 +152,6 @@ with lib;
description = "Any extra configuration options";
};
iconThemeName = mkOption {
type = types.str;
default = "Colloid-Dark";
description = "Icon theme name";
};
gtkThemeName = mkOption {
type = types.str;
default = "Colloid-Dark";
description = "GTK theme name";
};
defaultApps = mkOption {
type = types.submodule {
options = {

View File

@@ -1,100 +0,0 @@
{
config,
lib,
pkgs,
mjallenThemeComputed,
...
}:
with lib;
let
cfg = config.mjallen.programs.hyprland;
# Pull from global theme options
themeSize = config.mjallen.theme.gtk.size; # "standard" | "compact"
themeAccent = config.mjallen.theme.gtk.accent; # "default" | ... | "all"
themeTweak = config.mjallen.theme.gtk.tweak; # "normal" | "rimless" | "float" | "black"
themeColor = config.mjallen.theme.gtk.color; # "light" | "dark"
iconThemeVariant = config.mjallen.theme.icons.variant; # "default" | ... | "all"
iconScheme = config.mjallen.theme.icons.scheme; # "default" | "nord" | "dracula" | ...
# Cursor
cursorTheme = "macOS";
cursorThemePkg = pkgs.apple-cursor;
cursorSize = 24;
# GTK
gtkTheme = mjallenThemeComputed.gtkTheme;
gtkThemePkg = pkgs.colloid-gtk-theme.override {
sizeVariants = [ themeSize ];
colorVariants = [ themeColor ];
themeVariants = [ themeAccent ];
tweaks = [ themeTweak ];
};
# Icons
iconTheme = mjallenThemeComputed.iconTheme;
iconThemePkg = pkgs.colloid-icon-theme.override {
schemeVariants = [ iconScheme ];
colorVariants = [ iconThemeVariant ];
};
# Fonts
fontName = "JetBrainsMono NFM";
fontPackage = pkgs.nerd-fonts.jetbrains-mono;
fontSize = 12;
in
{
config = mkIf cfg.enable {
home = {
pointerCursor = {
gtk.enable = true;
package = cursorThemePkg;
name = cursorTheme;
size = cursorSize;
};
};
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;
};
};
gtk = {
enable = true;
cursorTheme = {
name = cursorTheme;
package = cursorThemePkg;
};
theme = {
name = gtkTheme;
package = gtkThemePkg;
};
iconTheme = {
name = iconTheme;
package = iconThemePkg;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
font = {
name = fontName;
package = fontPackage;
size = fontSize;
};
};
};
}