From 692b18c0f66e4051f7969f639d18ccde9bca3b99 Mon Sep 17 00:00:00 2001 From: ooks-io Date: Mon, 1 Apr 2024 15:00:37 +1300 Subject: [PATCH] refactor(base profile): move base profile configurations into modules --- home/modules/config/default.nix | 13 ++++ home/modules/config/home/default.nix | 29 ++++++++ home/modules/config/nix/default.nix | 26 +++++++ home/modules/config/nixColors/default.nix | 30 +++++++++ home/modules/config/userDirs/default.nix | 14 ++++ home/modules/console/utility/git/default.nix | 4 +- home/profile/base/default.nix | 71 +++----------------- 7 files changed, 124 insertions(+), 63 deletions(-) create mode 100644 home/modules/config/home/default.nix create mode 100644 home/modules/config/nix/default.nix create mode 100644 home/modules/config/nixColors/default.nix create mode 100644 home/modules/config/userDirs/default.nix diff --git a/home/modules/config/default.nix b/home/modules/config/default.nix index 090feb7..bbada63 100644 --- a/home/modules/config/default.nix +++ b/home/modules/config/default.nix @@ -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"; + }; } diff --git a/home/modules/config/home/default.nix b/home/modules/config/home/default.nix new file mode 100644 index 0000000..4ad5b61 --- /dev/null +++ b/home/modules/config/home/default.nix @@ -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; + }; + }; +} diff --git a/home/modules/config/nix/default.nix b/home/modules/config/nix/default.nix new file mode 100644 index 0000000..6914812 --- /dev/null +++ b/home/modules/config/nix/default.nix @@ -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; + }; + }; + }; +} diff --git a/home/modules/config/nixColors/default.nix b/home/modules/config/nixColors/default.nix new file mode 100644 index 0000000..2bd1b4a --- /dev/null +++ b/home/modules/config/nixColors/default.nix @@ -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; + }); + }; +} diff --git a/home/modules/config/userDirs/default.nix b/home/modules/config/userDirs/default.nix new file mode 100644 index 0000000..15b9b84 --- /dev/null +++ b/home/modules/config/userDirs/default.nix @@ -0,0 +1,14 @@ +{ lib, config, ... }: + +let + cfg = config.homeModules.config.userDirs; +in + +{ + config = lib.mkIf cfg.enable { + xdg.userDirs = { + enable = true; + createDirectories = true; + }; + }; +} diff --git a/home/modules/console/utility/git/default.nix b/home/modules/console/utility/git/default.nix index 5dc1b1c..cea195b 100644 --- a/home/modules/console/utility/git/default.nix +++ b/home/modules/console/utility/git/default.nix @@ -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"; diff --git a/home/profile/base/default.nix b/home/profile/base/default.nix index 91b8963..940444d 100644 --- a/home/profile/base/default.nix +++ b/home/profile/base/default.nix @@ -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; }; }