Skip to content

Commit 3dc1ccb

Browse files
committed
gnome: use overlay.nix
1 parent 0c2ab40 commit 3dc1ccb

File tree

2 files changed

+40
-27
lines changed

2 files changed

+40
-27
lines changed

modules/gnome/nixos.nix

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@
44
config,
55
...
66
}:
7-
8-
let
9-
theme = pkgs.callPackage ./theme.nix {
10-
inherit (config.lib.stylix) colors;
11-
inherit (config.stylix) inputs;
12-
};
13-
14-
in
157
{
168
options.stylix.targets.gnome.enable =
179
config.lib.stylix.mkEnableTarget "GNOME and GDM" true;
@@ -34,25 +26,6 @@ in
3426
# which will then download the pack regardless of its exclusion below.
3527
environment.gnome.excludePackages = [ pkgs.gnome-backgrounds ];
3628

37-
nixpkgs.overlays = [
38-
(_: super: {
39-
gnome-shell = super.gnome-shell.overrideAttrs (oldAttrs: {
40-
# Themes are usually applied via an extension, but extensions are
41-
# not available on the login screen. The only way to change the
42-
# theme there is by replacing the default.
43-
postFixup =
44-
(oldAttrs.postFixup or "")
45-
+ ''
46-
cp ${theme}/share/gnome-shell/gnome-shell-theme.gresource \
47-
$out/share/gnome-shell/gnome-shell-theme.gresource
48-
'';
49-
patches = (oldAttrs.patches or [ ]) ++ [
50-
./shell_remove_dark_mode.patch
51-
];
52-
});
53-
})
54-
];
55-
5629
# Cursor settings are usually applied via Home Manager,
5730
# but the login screen uses a separate database.
5831
environment.systemPackages = lib.mkIf (config.stylix.cursor != null) [

modules/gnome/overlay.nix

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
lib,
3+
pkgs,
4+
config,
5+
options,
6+
...
7+
}:
8+
let
9+
theme = pkgs.callPackage ./theme.nix {
10+
inherit (config.lib.stylix) colors;
11+
inherit (config.stylix) inputs;
12+
};
13+
in
14+
{
15+
overlay =
16+
lib.mkIf
17+
(
18+
pkgs.stdenv.hostPlatform.canExecute pkgs.gnome-shell
19+
&& options.stylix.targets ? gnome
20+
&& config.stylix.targets.gnome.enable
21+
)
22+
(
23+
_: super: {
24+
gnome-shell = super.gnome-shell.overrideAttrs (oldAttrs: {
25+
# Themes are usually applied via an extension, but extensions are
26+
# not available on the login screen. The only way to change the
27+
# theme there is by replacing the default.
28+
postFixup =
29+
(oldAttrs.postFixup or "")
30+
+ ''
31+
cp ${theme}/share/gnome-shell/gnome-shell-theme.gresource \
32+
$out/share/gnome-shell/gnome-shell-theme.gresource
33+
'';
34+
patches = (oldAttrs.patches or [ ]) ++ [
35+
./shell_remove_dark_mode.patch
36+
];
37+
});
38+
}
39+
);
40+
}

0 commit comments

Comments
 (0)