Compare commits

...

10 commits

Author SHA1 Message Date
NAHO
ce22070ec5
treewide: deprecate manual targets.${target}.useWallpaper.enable options (#2084)
Some checks failed
Label Merge Conflicts / conflicts (push) Has been cancelled
Documentation / docs (push) Has been cancelled
Deprecate manual targets.${target}.useWallpaper.enable options with
generated targets.${target}.image.enable options, following commit
953c3fb01e ("stylix/mk-target: generate options for configuring
safeguarded arguments").

Link: https://github.com/nix-community/stylix/pull/2084

Reviewed-by: 0xda157 <da157@voidq.com>
2026-02-01 21:43:25 +01:00
NAHO
ae5c0239ae
gnome/nixos: guard nixpkgs.overlays with stylix.overlays.enable (#2176)
Link: https://github.com/nix-community/stylix/pull/2176
Fixes: eb19696b18 ("stylix: add overlay module (#1048)")

Reviewed-by: 0xda157 <da157@voidq.com>
2026-01-31 11:41:13 -08:00
0xda157
8b14679c0e
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>
2026-01-30 16:39:54 -08:00
Ian Ressa
aad90ca763
kde: add decorationTheme option (#2168)
Link: https://github.com/nix-community/stylix/pull/2168

Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
2026-01-30 15:22:30 +01:00
Karun Sandhu
d60d37e02f
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>
2026-01-30 15:21:00 +01:00
Andre
f77ee4f3dd
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 <ianressa@umich.edu>
2026-01-30 14:57:45 +01:00
Sami Liedes
861c3c92a9
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 <da157@voidq.com>
2026-01-29 15:17:52 -08:00
NAHO
cb2e9c4fc2
flake/dev/flake: remove non-existent nixvim override (#2166)
Fixes: a525e4774f ("flake: update all inputs (#2117)")
Link: https://github.com/nix-community/stylix/pull/2166
2026-01-29 15:15:09 +01:00
0xda157
477c504322
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>
2026-01-28 15:26:40 +01:00
Saad Nadeem
805fa4262a
zen-browser: fix sharp sidebar edges (#2161)
Link: https://github.com/nix-community/stylix/pull/2161

Reviewed-by: Karun Sandhu <karun@sndh.dev>
Reviewed-by: 0xda157 <da157@voidq.com>
2026-01-26 15:57:33 -08:00
18 changed files with 248 additions and 90 deletions

View file

@ -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].

View file

@ -151,7 +151,6 @@
inputs = {
flake-parts.follows = "dev-flake-parts";
nixpkgs.follows = "dev-nixpkgs";
nuschtosSearch.follows = "";
systems.follows = "dev-systems";
};
};

View file

@ -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,

View file

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

View file

@ -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;
})
);
}
)
];

View file

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

View file

@ -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

View file

@ -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;
}
)
(

View file

@ -176,10 +176,11 @@ let
mergeWithImage
{
kwinrc."org.kde.kdecoration2".library = cfg.decorations;
plasmarc.Theme.name = "default";
kwinrc."org.kde.kdecoration2".theme = cfg.decorationTheme;
plasmarc.Theme.name = cfg.applicationStyle;
kdeglobals = {
KDE.widgetStyle = "Breeze";
KDE.widgetStyle = cfg.widgetStyle;
General.ColorScheme = colorschemeSlug;
};
}
@ -355,6 +356,35 @@ 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";
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 =

View file

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

View file

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

View file

@ -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 ];
}
)
(

View file

@ -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;
}
)
(

View file

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

View file

@ -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
{

View file

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

View file

@ -43,6 +43,10 @@ mkTarget {
});
}
)
(import ../firefox/reader-mode.nix {
inherit lib;
name = "zen-browser";
})
(
{ cfg, colors }:
{

View file

@ -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 {