Apply home-manager settings to all users automatically 🚸

This commit is contained in:
Daniel Thwaites 2022-04-24 11:38:24 +01:00
parent c2358177dc
commit e02c8c77a4
No known key found for this signature in database
GPG key ID: D8AFC4BF05670F9D
11 changed files with 18 additions and 47 deletions

View file

@ -33,9 +33,7 @@ Stylix can be installed using the experimental
Stylix relies on [Home Manager](https://github.com/nix-community/home-manager)
to install a lot of its theming. This requires Home Manager to be installed as
a NixOS module; how to do this is shown in the example above. Users must be
listed in `stylix.homeManagerUsers` to enable styles which rely on Home Manager
for that user.
a NixOS module; how to do this is shown in the example above.
## Configuration
@ -65,8 +63,5 @@ for that user.
name = "Noto Color Emoji";
};
};
# Add users to this list to enable Home Manager integration
stylix.homeManagerUsers = [ "danth" ];
}
```

View file

@ -59,7 +59,6 @@
base16 = base16.lib args;
})
./stylix/fonts.nix
./stylix/home-manager.nix
./stylix/pixel.nix
];
};

View file

@ -4,7 +4,7 @@ with config.lib.stylix.colors.withHashtag;
with config.stylix.fonts;
{
stylix.homeModule = {
home-manager.sharedModules = [{
services.dunst.settings = {
global = {
separator_color = base02;
@ -29,5 +29,5 @@ with config.stylix.fonts;
frame_color = base08;
};
};
};
}];
}

View file

@ -18,5 +18,7 @@ let
in {
programs.fish.promptInit = promptInit;
stylix.homeModule = { programs.fish.interactiveShellInit = promptInit; };
home-manager.sharedModules = [{
programs.fish.interactiveShellInit = promptInit;
}];
}

View file

@ -145,13 +145,13 @@ in lib.mkIf (config.services.xserver.enable || config.programs.sway.enable) {
# Required for Home Manager's GTK settings to work
programs.dconf.enable = true;
stylix.homeModule = {
home-manager.sharedModules = [{
gtk = {
enable = true;
inherit theme;
font = config.stylix.fonts.sansSerif;
};
};
}];
services.xserver.displayManager.lightdm.greeters.gtk.theme = theme;
}

View file

@ -99,10 +99,10 @@ let theme = {
};
in {
stylix.homeModule = {
home-manager.sharedModules = [{
programs.helix = {
settings.theme = "stylix";
themes.stylix = theme;
};
};
}];
}

View file

@ -1,7 +1,7 @@
{ config, ... }:
{
stylix.homeModule = {
home-manager.sharedModules = [{
programs.kitty = {
font = config.stylix.fonts.monospace;
@ -39,5 +39,5 @@
color15 = base07;
};
};
};
}];
}

View file

@ -15,7 +15,7 @@ let
error = base08;
in {
stylix.homeModule = {
home-manager.sharedModules = [{
programs.qutebrowser.settings = {
hints.border = background;
colors = {
@ -206,5 +206,5 @@ in {
};
};
};
};
}];
}

View file

@ -14,7 +14,7 @@ let
};
in {
stylix.homeModule = {
home-manager.sharedModules = [{
wayland.windowManager.sway.config = {
inherit fonts;
@ -52,7 +52,7 @@ in {
output."*".bg = "${config.stylix.image} fill";
};
};
}];
# Merge this with your bar configuration using //config.lib.stylix.sway.bar
lib.stylix.sway.bar = {

View file

@ -28,8 +28,8 @@ let
};
in {
stylix.homeModule = {
home-manager.sharedModules = [{
programs.vim = vimOptions;
programs.neovim = vimOptions;
};
}];
}

View file

@ -1,25 +0,0 @@
{ lib, config, options, ... }:
with lib;
let cfg = config.stylix;
in {
options.stylix = {
homeManagerUsers = mkOption {
type = types.listOf types.str;
description = "Users for which to enable Home Manager integration.";
default = [ ];
};
homeModule = mkOption {
internal = true;
type = types.anything;
description = "Home Manager module to apply for all users.";
};
};
config = {
home-manager.users = genAttrs cfg.homeManagerUsers (user: cfg.homeModule);
};
}