refactor(base profile): move base profile configurations into modules
This commit is contained in:
parent
51e9493c62
commit
692b18c0f6
7 changed files with 124 additions and 63 deletions
|
|
@ -1,7 +1,20 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./fonts
|
./fonts
|
||||||
./monitors
|
./monitors
|
||||||
./wallpaper
|
./wallpaper
|
||||||
|
./nix
|
||||||
|
./userDirs
|
||||||
|
./home
|
||||||
|
./nixColors
|
||||||
];
|
];
|
||||||
|
|
||||||
|
options.homeModules.config = {
|
||||||
|
nix.enable = lib.mkEnableOption "enable nix configuration module";
|
||||||
|
nixColors.enable = lib.mkEnableOption "enable nixColors configuration module";
|
||||||
|
home.enable = lib.mkEnableOption "enable home configuration module";
|
||||||
|
userDirs.enable = lib.mkEnableOption "enable userDirs configuration module";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
29
home/modules/config/home/default.nix
Normal file
29
home/modules/config/home/default.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.homeModules.config.home;
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
home = {
|
||||||
|
username = lib.mkDefault "ooks";
|
||||||
|
homeDirectory = lib.mkDefault "/home/${config.home.username}";
|
||||||
|
stateVersion = lib.mkDefault "22.05";
|
||||||
|
sessionPath = [ "${config.home.homeDirectory}/.local/bin" ];
|
||||||
|
sessionVariables = {
|
||||||
|
TZ = "Pacific/Auckland";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# to save space
|
||||||
|
manual = {
|
||||||
|
html.enable = false;
|
||||||
|
json.enable = false;
|
||||||
|
manpages.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
26
home/modules/config/nix/default.nix
Normal file
26
home/modules/config/nix/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
{ lib, config, pkgs, outputs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.homeModules.config.nix;
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
nixpkgs = {
|
||||||
|
overlays = builtins.attrValues outputs.overlays;
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
allowUnfreePredicate = (_: true);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
package = lib.mkDefault pkgs.nix;
|
||||||
|
settings = {
|
||||||
|
experimental-features = [ "nix-command" "flakes" "repl-flake" ];
|
||||||
|
warn-dirty = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
30
home/modules/config/nixColors/default.nix
Normal file
30
home/modules/config/nixColors/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
{ lib, config, inputs, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.homeModules.config.nixColors;
|
||||||
|
inherit (inputs.nix-colors) colorSchemes;
|
||||||
|
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) nixWallpaperFromScheme;
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ inputs.nix-colors.homeManagerModule ];
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
colorscheme = lib.mkDefault colorSchemes.gruvbox-material-dark-soft;
|
||||||
|
home.file.".colorscheme".text = config.colorscheme.slug;
|
||||||
|
|
||||||
|
wallpaper =
|
||||||
|
let
|
||||||
|
largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs));
|
||||||
|
largestWidth = largest (x: x.width) config.monitors;
|
||||||
|
largestHeight = largest (x: x.height) config.monitors;
|
||||||
|
in
|
||||||
|
lib.mkDefault (nixWallpaperFromScheme
|
||||||
|
{
|
||||||
|
scheme = config.colorscheme;
|
||||||
|
width = largestWidth;
|
||||||
|
height = largestHeight;
|
||||||
|
logoScale = 4;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
14
home/modules/config/userDirs/default.nix
Normal file
14
home/modules/config/userDirs/default.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.homeModules.config.userDirs;
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
xdg.userDirs = {
|
||||||
|
enable = true;
|
||||||
|
createDirectories = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
cfg = config.homeModules.console.utility.git;
|
cfg = config.homeModules.console.utility.git;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.git = lib.mkIf cfg.enable {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.gitAndTools.gitFull;
|
package = pkgs.gitAndTools.gitFull;
|
||||||
userName = "ooks-io";
|
userName = "ooks-io";
|
||||||
|
|
|
||||||
|
|
@ -1,64 +1,29 @@
|
||||||
{ inputs, lib, pkgs, config, outputs, ... }:
|
{ lib, config, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.profiles.base;
|
cfg = config.profiles.base;
|
||||||
inherit (inputs.nix-colors) colorSchemes;
|
|
||||||
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) nixWallpaperFromScheme;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nix-colors.homeManagerModule
|
|
||||||
../../modules
|
../../modules
|
||||||
../../secrets
|
../../secrets
|
||||||
];
|
];
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
nixpkgs = {
|
|
||||||
overlays = builtins.attrValues outputs.overlays;
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
allowUnfreePredicate = (_: true);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nix = {
|
programs.home-manager.enable = true;
|
||||||
package = lib.mkDefault pkgs.nix;
|
|
||||||
settings = {
|
|
||||||
experimental-features = [ "nix-command" "flakes" "repl-flake" ];
|
|
||||||
warn-dirty = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
home-manager.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home = {
|
|
||||||
username = lib.mkDefault "ooks";
|
|
||||||
homeDirectory = lib.mkDefault "/home/${config.home.username}";
|
|
||||||
stateVersion = lib.mkDefault "22.05";
|
|
||||||
sessionPath = [ "$HOME/.local/bin" ];
|
|
||||||
sessionVariables = {
|
|
||||||
FLAKE = "$HOME/Coding/nix/ooks-io/nix";
|
|
||||||
SCRIPTS = "$HOME/Coding/sh/scripts";
|
|
||||||
TZ = "Pacific/Auckland";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.userDirs = {
|
|
||||||
enable = true;
|
|
||||||
createDirectories = true;
|
|
||||||
extraConfig = {
|
|
||||||
XDG_CODE_DIR = "${config.home.homeDirectory}/Coding";
|
|
||||||
XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
|
|
||||||
XDG_NOTES_DIR = "${config.xdg.userDirs.documents}/Notes";
|
|
||||||
XDG_RECORDINGS_DIR = "${config.xdg.userDirs.videos}/Recordings";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.portal.enable = true;
|
xdg.portal.enable = true;
|
||||||
|
|
||||||
homeModules = {
|
homeModules = {
|
||||||
sops.enable = true;
|
sops.enable = true;
|
||||||
|
|
||||||
|
config = {
|
||||||
|
nix.enable = true;
|
||||||
|
nixColors.enable = true;
|
||||||
|
home.enable = true;
|
||||||
|
userDirs.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
console = {
|
console = {
|
||||||
editor.helix = {
|
editor.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -79,21 +44,5 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
wallpaper =
|
|
||||||
let
|
|
||||||
largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs));
|
|
||||||
largestWidth = largest (x: x.width) config.monitors;
|
|
||||||
largestHeight = largest (x: x.height) config.monitors;
|
|
||||||
in
|
|
||||||
lib.mkDefault (nixWallpaperFromScheme
|
|
||||||
{
|
|
||||||
scheme = config.colorscheme;
|
|
||||||
width = largestWidth;
|
|
||||||
height = largestHeight;
|
|
||||||
logoScale = 4;
|
|
||||||
});
|
|
||||||
colorscheme = lib.mkDefault colorSchemes.everforest;
|
|
||||||
home.file.".colorscheme".text = config.colorscheme.slug;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue