From 805fa4262a21ada28cc918fa014359b9b35caea7 Mon Sep 17 00:00:00 2001 From: Saad Nadeem <88615188+saadndm@users.noreply.github.com> Date: Mon, 26 Jan 2026 18:57:33 -0500 Subject: [PATCH 01/10] zen-browser: fix sharp sidebar edges (#2161) Link: https://github.com/nix-community/stylix/pull/2161 Reviewed-by: Karun Sandhu Reviewed-by: 0xda157 --- modules/zen-browser/userChrome.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/zen-browser/userChrome.nix b/modules/zen-browser/userChrome.nix index d87d5732..7a719111 100644 --- a/modules/zen-browser/userChrome.nix +++ b/modules/zen-browser/userChrome.nix @@ -125,8 +125,8 @@ with colors; --identity-icon-color: #${base0F-hex} !important; } - hbox#titlebar { - background-color: #${base00-hex} !important; + #navigator-toolbox { + --zen-main-browser-background-toolbar: #${base00-hex} !important; } #zen-appcontent-navbar-container { From 477c504322c7df6388d556aac82965ed49072190 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Wed, 28 Jan 2026 06:26:40 -0800 Subject: [PATCH 02/10] zen-browser: add reader mode support (#2157) Link: https://github.com/nix-community/stylix/pull/2157 Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com> --- modules/firefox/each-config.nix | 16 +--------------- modules/firefox/reader-mode.nix | 15 +++++++++++++++ modules/zen-browser/hm.nix | 4 ++++ 3 files changed, 20 insertions(+), 15 deletions(-) create mode 100644 modules/firefox/reader-mode.nix diff --git a/modules/firefox/each-config.nix b/modules/firefox/each-config.nix index 3860dd0f..846eb20d 100644 --- a/modules/firefox/each-config.nix +++ b/modules/firefox/each-config.nix @@ -56,21 +56,7 @@ mkTarget { }); } ) - ( - { cfg, colors }: - { - programs.${name}.profiles = lib.genAttrs cfg.profileNames (_: { - settings = { - "reader.color_scheme" = "custom"; - "reader.custom_colors.background" = colors.withHashtag.base00; - "reader.custom_colors.foreground" = colors.withHashtag.base05; - "reader.custom_colors.selection-highlight" = colors.withHashtag.base04; - "reader.custom_colors.unvisited-links" = colors.withHashtag.base0D; - "reader.custom_colors.visited-links" = colors.withHashtag.base0E; - }; - }); - } - ) + (import ./reader-mode.nix { inherit name lib; }) ( { cfg, diff --git a/modules/firefox/reader-mode.nix b/modules/firefox/reader-mode.nix new file mode 100644 index 00000000..af95f42a --- /dev/null +++ b/modules/firefox/reader-mode.nix @@ -0,0 +1,15 @@ +# NOTE: also used by /modules/zen-browser +{ name, lib }: +{ cfg, colors }: +{ + programs.${name}.profiles = lib.genAttrs cfg.profileNames (_: { + settings = { + "reader.color_scheme" = "custom"; + "reader.custom_colors.background" = colors.withHashtag.base00; + "reader.custom_colors.foreground" = colors.withHashtag.base05; + "reader.custom_colors.selection-highlight" = colors.withHashtag.base04; + "reader.custom_colors.unvisited-links" = colors.withHashtag.base0D; + "reader.custom_colors.visited-links" = colors.withHashtag.base0E; + }; + }); +} diff --git a/modules/zen-browser/hm.nix b/modules/zen-browser/hm.nix index cf2d1d76..2cbfe275 100644 --- a/modules/zen-browser/hm.nix +++ b/modules/zen-browser/hm.nix @@ -43,6 +43,10 @@ mkTarget { }); } ) + (import ../firefox/reader-mode.nix { + inherit lib; + name = "zen-browser"; + }) ( { cfg, colors }: { From cb2e9c4fc23b4e73e4d77b9122d685896c042802 Mon Sep 17 00:00:00 2001 From: NAHO <90870942+trueNAHO@users.noreply.github.com> Date: Thu, 29 Jan 2026 15:15:09 +0100 Subject: [PATCH 03/10] flake/dev/flake: remove non-existent nixvim override (#2166) Fixes: a525e4774f25 ("flake: update all inputs (#2117)") Link: https://github.com/nix-community/stylix/pull/2166 --- flake/dev/flake.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/flake/dev/flake.nix b/flake/dev/flake.nix index 85e2b837..af987f3b 100644 --- a/flake/dev/flake.nix +++ b/flake/dev/flake.nix @@ -151,7 +151,6 @@ inputs = { flake-parts.follows = "dev-flake-parts"; nixpkgs.follows = "dev-nixpkgs"; - nuschtosSearch.follows = ""; systems.follows = "dev-systems"; }; }; From 861c3c92a9f865d5adae1c1917a6c383170eff13 Mon Sep 17 00:00:00 2001 From: Sami Liedes Date: Fri, 30 Jan 2026 00:17:52 +0100 Subject: [PATCH 04/10] waybar: Include CSS style for urgent (#2158) Link: https://github.com/nix-community/stylix/pull/2158 Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com Reviewed-by: 0xda157 --- modules/waybar/hm.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/waybar/hm.nix b/modules/waybar/hm.nix index 4ad22dfa..67915cf0 100644 --- a/modules/waybar/hm.nix +++ b/modules/waybar/hm.nix @@ -79,6 +79,12 @@ mkTarget { .modules-${place} #workspaces button.active { border-bottom: 3px solid @base05; } + + .modules-${place} #workspaces button.urgent { + border-bottom: 3px solid @base08; + background-color: @base08; + color: @base00; + } ''; in { From f77ee4f3dd9cbcdd065984c98eb4f69f2756e229 Mon Sep 17 00:00:00 2001 From: Andre Date: Fri, 30 Jan 2026 05:57:45 -0800 Subject: [PATCH 05/10] kde: add applicationStyle and widgetStyle options (#2018) Closes: https://github.com/nix-community/stylix/issues/2017 Link: https://github.com/nix-community/stylix/pull/2018 Co-authored-by: NAHO <90870942+trueNAHO@users.noreply.github.com> Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com> Reviewed-by: Ian Ressa --- modules/kde/hm.nix | 19 +++++++++++++++++-- modules/kde/testbeds/kde.nix | 16 +++++++++++++++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/modules/kde/hm.nix b/modules/kde/hm.nix index 7bf93fee..79744b8f 100644 --- a/modules/kde/hm.nix +++ b/modules/kde/hm.nix @@ -176,10 +176,10 @@ let mergeWithImage { kwinrc."org.kde.kdecoration2".library = cfg.decorations; - plasmarc.Theme.name = "default"; + plasmarc.Theme.name = cfg.applicationStyle; kdeglobals = { - KDE.widgetStyle = "Breeze"; + KDE.widgetStyle = cfg.widgetStyle; General.ColorScheme = colorschemeSlug; }; } @@ -355,6 +355,21 @@ in imperatively applying the window decoration via the System Settings app. ''; }; + widgetStyle = lib.mkOption { + type = lib.types.str; + default = "Breeze"; + description = '' + The library for the widgets styles. + + Widget styles other than default `Breeze` may not be compatible with + stylix. + ''; + }; + applicationStyle = lib.mkOption { + type = lib.types.str; + default = "default"; + description = "The library for the application style."; + }; }; config = diff --git a/modules/kde/testbeds/kde.nix b/modules/kde/testbeds/kde.nix index e367b71a..09e872bc 100644 --- a/modules/kde/testbeds/kde.nix +++ b/modules/kde/testbeds/kde.nix @@ -1,7 +1,21 @@ -{ lib, ... }: +{ lib, pkgs, ... }: { config = { stylix.testbed.ui.graphicalEnvironment = "kde"; + services.displayManager.autoLogin.enable = lib.mkForce false; + + home-manager.sharedModules = lib.singleton { + stylix.targets.kde = { + enable = true; + applicationStyle = "Utterly-Round"; + widgetStyle = "Darkly"; + }; + home.packages = with pkgs; [ + darkly + darkly-qt5 + utterly-round-plasma-style + ]; + }; }; } From d60d37e02ff6f76d3ad0d56646dc6ef9e9633f05 Mon Sep 17 00:00:00 2001 From: Karun Sandhu Date: Fri, 30 Jan 2026 15:21:00 +0100 Subject: [PATCH 06/10] foot: allow merging include with external configurations (#2173) Closes: https://github.com/nix-community/stylix/issues/2171 Link: https://github.com/nix-community/stylix/pull/2173 Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com> --- modules/foot/hm.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/foot/hm.nix b/modules/foot/hm.nix index 08ed47d1..770d3a89 100644 --- a/modules/foot/hm.nix +++ b/modules/foot/hm.nix @@ -1,4 +1,4 @@ -{ mkTarget, ... }: +{ lib, mkTarget, ... }: mkTarget { config = [ ( @@ -19,9 +19,11 @@ mkTarget { ( { colors, inputs }: { - programs.foot.settings.main.include = toString (colors { - templateRepo = inputs.tinted-foot; - }); + programs.foot.settings.main.include = lib.singleton ( + toString (colors { + templateRepo = inputs.tinted-foot; + }) + ); } ) ]; From aad90ca763be126c0ed67c29826bbb9b5ca665d8 Mon Sep 17 00:00:00 2001 From: Ian Ressa Date: Fri, 30 Jan 2026 09:22:30 -0500 Subject: [PATCH 07/10] kde: add decorationTheme option (#2168) Link: https://github.com/nix-community/stylix/pull/2168 Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com> --- modules/kde/hm.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/kde/hm.nix b/modules/kde/hm.nix index 79744b8f..1e294928 100644 --- a/modules/kde/hm.nix +++ b/modules/kde/hm.nix @@ -176,6 +176,7 @@ let mergeWithImage { kwinrc."org.kde.kdecoration2".library = cfg.decorations; + kwinrc."org.kde.kdecoration2".theme = cfg.decorationTheme; plasmarc.Theme.name = cfg.applicationStyle; kdeglobals = { @@ -355,6 +356,20 @@ in imperatively applying the window decoration via the System Settings app. ''; }; + decorationTheme = lib.mkOption { + type = lib.types.str; + default = ""; + description = '' + The theme name for the window decoration. + + You probably need to set this if you are targeting a custom theme (i.e. + installed manually or from the "Get New..." menu). + + See the `theme` key in the `org.kde.kdecoration2` section of + `$HOME/.config/kwinrc` after imperatively applying the window decoration + via the System Settings app. + ''; + }; widgetStyle = lib.mkOption { type = lib.types.str; default = "Breeze"; From 8b14679c0e1570b0e137f0f7997717be0fdf2cf2 Mon Sep 17 00:00:00 2001 From: 0xda157 Date: Fri, 30 Jan 2026 16:39:54 -0800 Subject: [PATCH 08/10] doc/src/installation: note master branch follows rolling-release model (#2116) Link: https://github.com/nix-community/stylix/pull/2116 Co-authored-by: NAHO <90870942+trueNAHO@users.noreply.github.com> --- doc/src/installation.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/src/installation.md b/doc/src/installation.md index d86b9171..7e5285e7 100644 --- a/doc/src/installation.md +++ b/doc/src/installation.md @@ -1,5 +1,15 @@ # Installation +> [!IMPORTANT] +> The master (unstable) branch of Stylix follows a rolling-release model. To +> ensure version compatibility, all inputs must be kept in sync. +> +> Avoid partial updates and always update inputs together with: +> +> ```console +> nix flake update +> ``` + ## NixOS You can install Stylix into your NixOS configuration using [Flakes][nix-flakes]. From ae5c0239ae4f82a8c7e33ad8a456535d5a9ba813 Mon Sep 17 00:00:00 2001 From: NAHO <90870942+trueNAHO@users.noreply.github.com> Date: Sat, 31 Jan 2026 20:41:13 +0100 Subject: [PATCH 09/10] gnome/nixos: guard nixpkgs.overlays with stylix.overlays.enable (#2176) Link: https://github.com/nix-community/stylix/pull/2176 Fixes: eb19696b18fd ("stylix: add overlay module (#1048)") Reviewed-by: 0xda157 --- modules/gnome/nixos.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gnome/nixos.nix b/modules/gnome/nixos.nix index 5d80941e..b0d69ef8 100644 --- a/modules/gnome/nixos.nix +++ b/modules/gnome/nixos.nix @@ -38,7 +38,7 @@ in pkgs.gnome-backgrounds ]; - nixpkgs.overlays = [ + nixpkgs.overlays = lib.mkIf config.stylix.overlays.enable [ (_: super: { gnome-shell = super.gnome-shell.overrideAttrs (oldAttrs: { # Themes are usually applied via an extension, but extensions are From ce22070ec5ce6169a6841da31baea33ce930ed38 Mon Sep 17 00:00:00 2001 From: NAHO <90870942+trueNAHO@users.noreply.github.com> Date: Sun, 1 Feb 2026 21:43:25 +0100 Subject: [PATCH 10/10] treewide: deprecate manual targets.${target}.useWallpaper.enable options (#2084) Deprecate manual targets.${target}.useWallpaper.enable options with generated targets.${target}.image.enable options, following commit 953c3fb01e2a ("stylix/mk-target: generate options for configuring safeguarded arguments"). Link: https://github.com/nix-community/stylix/pull/2084 Reviewed-by: 0xda157 --- modules/gnome/hm.nix | 28 ++++++++++++++++++----- modules/hyprlock/hm.nix | 30 +++++++++++++++++-------- modules/lightdm/nixos.nix | 31 +++++++++++++++++--------- modules/limine/nixos.nix | 30 +++++++++++++++++-------- modules/regreet/nixos.nix | 47 ++++++++++++++++++++++++++------------- modules/swaylock/hm.nix | 22 ++++++++++++++---- modules/wayfire/hm.nix | 32 +++++++++++++++++--------- 7 files changed, 156 insertions(+), 64 deletions(-) diff --git a/modules/gnome/hm.nix b/modules/gnome/hm.nix index 0e43b209..8a0fdecc 100644 --- a/modules/gnome/hm.nix +++ b/modules/gnome/hm.nix @@ -1,23 +1,39 @@ { mkTarget, pkgs, - config, lib, ... }: mkTarget { + imports = [ + (lib.mkRenamedOptionModuleWith { + from = [ + "stylix" + "targets" + "gnome" + "useWallpaper" + ]; + sinceRelease = 2605; + to = [ + "stylix" + "targets" + "gnome" + "image" + "enable" + ]; + }) + ]; + autoEnable = pkgs.stdenv.hostPlatform.isLinux; autoEnableExpr = "pkgs.stdenv.hostPlatform.isLinux"; - options.useWallpaper = config.lib.stylix.mkEnableWallpaper "GNOME" true; - config = [ ( - { cfg, image }: + { image }: { dconf.settings."org/gnome/desktop/background" = { - picture-uri = lib.mkIf cfg.useWallpaper "file://${image}"; - picture-uri-dark = lib.mkIf cfg.useWallpaper "file://${image}"; + picture-uri = "file://${image}"; + picture-uri-dark = "file://${image}"; }; } ) diff --git a/modules/hyprlock/hm.nix b/modules/hyprlock/hm.nix index 8c59fa38..705ebfd0 100644 --- a/modules/hyprlock/hm.nix +++ b/modules/hyprlock/hm.nix @@ -1,17 +1,29 @@ -{ - mkTarget, - config, - lib, - ... -}: +{ mkTarget, lib, ... }: mkTarget { - options.useWallpaper = config.lib.stylix.mkEnableWallpaper "Hyprlock" true; + imports = [ + (lib.mkRenamedOptionModuleWith { + from = [ + "stylix" + "targets" + "hyprlock" + "useWallpaper" + ]; + sinceRelease = 2605; + to = [ + "stylix" + "targets" + "hyprlock" + "image" + "enable" + ]; + }) + ]; config = [ ( - { cfg, image }: + { image }: { - programs.hyprlock.settings.background.path = lib.mkIf cfg.useWallpaper image; + programs.hyprlock.settings.background.path = image; } ) ( diff --git a/modules/lightdm/nixos.nix b/modules/lightdm/nixos.nix index fe512f0f..eda8bb89 100644 --- a/modules/lightdm/nixos.nix +++ b/modules/lightdm/nixos.nix @@ -1,16 +1,27 @@ -{ - mkTarget, - config, - lib, - ... -}: +{ mkTarget, lib, ... }: mkTarget { - options.useWallpaper = config.lib.stylix.mkEnableWallpaper "LightDM" true; + imports = [ + (lib.mkRenamedOptionModuleWith { + from = [ + "stylix" + "targets" + "lightdm" + "useWallpaper" + ]; + sinceRelease = 2605; + to = [ + "stylix" + "targets" + "lightdm" + "image" + "enable" + ]; + }) + ]; config = - { cfg, image }: + { image }: { - services.xserver.displayManager.lightdm.background = - lib.mkIf cfg.useWallpaper image; + services.xserver.displayManager.lightdm.background = image; }; } diff --git a/modules/limine/nixos.nix b/modules/limine/nixos.nix index 0283c07a..da7bbf32 100644 --- a/modules/limine/nixos.nix +++ b/modules/limine/nixos.nix @@ -1,11 +1,23 @@ -{ - mkTarget, - config, - lib, - ... -}: +{ mkTarget, lib, ... }: mkTarget { - options.useWallpaper = config.lib.stylix.mkEnableWallpaper "Limine" true; + imports = [ + (lib.mkRenamedOptionModuleWith { + from = [ + "stylix" + "targets" + "limine" + "useWallpaper" + ]; + sinceRelease = 2605; + to = [ + "stylix" + "targets" + "limine" + "image" + "enable" + ]; + }) + ]; config = [ ( @@ -25,9 +37,9 @@ mkTarget { } ) ( - { cfg, image }: + { image }: { - boot.loader.limine.style.wallpapers = lib.mkIf cfg.useWallpaper [ image ]; + boot.loader.limine.style.wallpapers = [ image ]; } ) ( diff --git a/modules/regreet/nixos.nix b/modules/regreet/nixos.nix index 234294b4..a2ab94f0 100644 --- a/modules/regreet/nixos.nix +++ b/modules/regreet/nixos.nix @@ -6,19 +6,35 @@ ... }: mkTarget { + imports = [ + (lib.mkRenamedOptionModuleWith { + from = [ + "stylix" + "targets" + "regreet" + "useWallpaper" + ]; + sinceRelease = 2605; + to = [ + "stylix" + "targets" + "regreet" + "image" + "enable" + ]; + }) + ]; + autoEnable = pkgs.stdenv.hostPlatform.isLinux; autoEnableExpr = "pkgs.stdenv.hostPlatform.isLinux"; - options = { - useWallpaper = config.lib.stylix.mkEnableWallpaper "ReGreet" true; - extraCss = lib.mkOption { - description = '' - Extra code added to `programs.regreet.extraCss` option. - ''; - type = lib.types.lines; - default = ""; - example = "window.background { border-radius: 0; }"; - }; + options.extraCss = lib.mkOption { + description = '' + Extra code added to `programs.regreet.extraCss` option. + ''; + type = lib.types.lines; + default = ""; + example = "window.background { border-radius: 0; }"; }; config = [ @@ -67,15 +83,15 @@ mkTarget { } ) ( - { cfg, image }: + { image }: { - programs.regreet.settings.background.path = lib.mkIf cfg.useWallpaper image; + programs.regreet.settings.background.path = image; } ) ( - { cfg, imageScalingMode }: + { imageScalingMode }: { - programs.regreet.settings.background.fit = lib.mkIf cfg.useWallpaper ( + programs.regreet.settings.background.fit = if imageScalingMode == "fill" then "Cover" else if imageScalingMode == "fit" then @@ -84,8 +100,7 @@ mkTarget { "Fill" # No other available options else - null - ); + null; } ) ( diff --git a/modules/swaylock/hm.nix b/modules/swaylock/hm.nix index ee0e3570..5a73f9d6 100644 --- a/modules/swaylock/hm.nix +++ b/modules/swaylock/hm.nix @@ -23,8 +23,6 @@ mkTarget { lib.versionAtLeast config.home.stateVersion "23.05" && pkgs.stdenv.hostPlatform.isLinux ''; - options.useWallpaper = config.lib.stylix.mkEnableWallpaper "Swaylock" true; - config = [ ( { colors }: @@ -66,9 +64,9 @@ mkTarget { } ) ( - { cfg, image }: + { image }: { - programs.swaylock.settings.image = lib.mkIf cfg.useWallpaper image; + programs.swaylock.settings.image = image; } ) ( @@ -94,5 +92,21 @@ mkTarget { "useWallpaper" ]; }) + (lib.mkRenamedOptionModuleWith { + from = [ + "stylix" + "targets" + "swaylock" + "useWallpaper" + ]; + sinceRelease = 2605; + to = [ + "stylix" + "targets" + "swaylock" + "image" + "enable" + ]; + }) ]; } diff --git a/modules/wayfire/hm.nix b/modules/wayfire/hm.nix index d090e89d..14b16e8a 100644 --- a/modules/wayfire/hm.nix +++ b/modules/wayfire/hm.nix @@ -1,12 +1,28 @@ { mkTarget, - config, lib, pkgs, ... }: mkTarget { - options.useWallpaper = config.lib.stylix.mkEnableWallpaper "wayfire" true; + imports = [ + (lib.mkRenamedOptionModuleWith { + from = [ + "stylix" + "targets" + "wayfire" + "useWallpaper" + ]; + sinceRelease = 2605; + to = [ + "stylix" + "targets" + "wayfire" + "image" + "enable" + ]; + }) + ]; config = [ ( @@ -17,11 +33,7 @@ mkTarget { } ) ( - { - cfg, - image, - imageScalingMode, - }: + { image, imageScalingMode }: let wayfireBackground = pkgs.runCommand "wayfire-background.png" { } '' ${lib.getExe' pkgs.imagemagick "convert"} ${image} $out @@ -30,13 +42,13 @@ mkTarget { { wayland.windowManager.wayfire.settings = { cube = { - cubemap_image = lib.mkIf cfg.useWallpaper wayfireBackground; - skydome_texture = lib.mkIf cfg.useWallpaper wayfireBackground; + cubemap_image = wayfireBackground; + skydome_texture = wayfireBackground; }; }; wayland.windowManager.wayfire.wf-shell.settings = { - background.image = lib.mkIf cfg.useWallpaper wayfireBackground; + background.image = wayfireBackground; background.fill_mode = if imageScalingMode == "stretch" then "stretch"