97 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ inputs, lib, pkgs, config, outputs, ... }:
 | 
						|
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.packages = with pkgs; [ sops ];
 | 
						|
 | 
						|
    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";
 | 
						|
        TZ = "Pacific/Auckland";
 | 
						|
      };
 | 
						|
    };
 | 
						|
    xdg.userDirs = {
 | 
						|
      enable = true;
 | 
						|
      createDirectories = true;
 | 
						|
      extraConfig = {
 | 
						|
        XDG_CODE_DIR = "${config.home.homeDirectory}/Coding";
 | 
						|
        XDG_SCREENSHOT_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
 | 
						|
        XDG_NOTES_DIR = "${config.xdg.userDirs.documents}/Notes";
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    xdg.portal.enable = true;
 | 
						|
 | 
						|
    homeModules = {
 | 
						|
      sops.enable = true;
 | 
						|
      console = {
 | 
						|
        editor.helix = {
 | 
						|
          enable = true;
 | 
						|
          default = true;
 | 
						|
        };
 | 
						|
        prompt.starship.enable = true;
 | 
						|
        shell = {
 | 
						|
          fish.enable = true;
 | 
						|
          bash.enable = true;
 | 
						|
        };
 | 
						|
        multiplexer.zellij.enable = true;
 | 
						|
        utility = {
 | 
						|
          ssh.enable = true;
 | 
						|
          nixIndex.enable = true;
 | 
						|
          git.enable = true;
 | 
						|
          tools.enable = true;
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };  
 | 
						|
 | 
						|
    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;
 | 
						|
  };
 | 
						|
}
 |