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 = [
|
||||
./fonts
|
||||
./monitors
|
||||
./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;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
programs.git = lib.mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
package = pkgs.gitAndTools.gitFull;
|
||||
userName = "ooks-io";
|
||||
|
|
|
|||
|
|
@ -1,64 +1,29 @@
|
|||
{ inputs, lib, pkgs, config, outputs, ... }:
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.profiles.base;
|
||||
inherit (inputs.nix-colors) colorSchemes;
|
||||
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) nixWallpaperFromScheme;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.nix-colors.homeManagerModule
|
||||
../../modules
|
||||
../../secrets
|
||||
];
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
xdg.portal.enable = true;
|
||||
|
||||
homeModules = {
|
||||
sops.enable = true;
|
||||
|
||||
config = {
|
||||
nix.enable = true;
|
||||
nixColors.enable = true;
|
||||
home.enable = true;
|
||||
userDirs.enable = true;
|
||||
};
|
||||
|
||||
console = {
|
||||
editor.helix = {
|
||||
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