diff --git a/docker-arm/home-manager/home.nix b/docker-arm/home-manager/home.nix index a368e20..dc01fc5 100644 --- a/docker-arm/home-manager/home.nix +++ b/docker-arm/home-manager/home.nix @@ -1,14 +1,9 @@ { - config, - lib, - pkgs, + util, ... }: -let - util = import ../../util.nix { inherit config lib pkgs; }; -in { - nixpkgs = util.nixpkgs; + imports = [ ../../util.nix ]; home = { # # https://nix-community.github.io/home-manager/release-notes.xhtml @@ -17,16 +12,12 @@ in username = "agent-arm64"; homeDirectory = "/home/agent-arm64"; - packages = util.packages; - - file = util.file // { + file = { ".codex/config.toml" = util.symlink "docker-arm/codex/config.toml"; }; }; - programs = util.programs // { + programs = { bash.enable = true; # Necessary for aliases and Starship to work. }; - - assertions = util.assertions; } diff --git a/docker-x86/home-manager/home.nix b/docker-x86/home-manager/home.nix index 107df59..d77da1c 100644 --- a/docker-x86/home-manager/home.nix +++ b/docker-x86/home-manager/home.nix @@ -1,14 +1,9 @@ { - config, - lib, - pkgs, + util, ... }: -let - util = import ../../util.nix { inherit config lib pkgs; }; -in { - nixpkgs = util.nixpkgs; + imports = [ ../../util.nix ]; home = { # # https://nix-community.github.io/home-manager/release-notes.xhtml @@ -17,16 +12,12 @@ in username = "agent-amd64"; homeDirectory = "/home/agent-amd64"; - packages = util.packages; - - file = util.file // { + file = { ".codex/config.toml" = util.symlink "docker-x86/codex/config.toml"; }; }; - programs = util.programs // { + programs = { bash.enable = true; # Necessary for aliases and Starship to work. }; - - assertions = util.assertions; } diff --git a/macos/home-manager/home.nix b/macos/home-manager/home.nix index 51b9e6b..0f300f7 100644 --- a/macos/home-manager/home.nix +++ b/macos/home-manager/home.nix @@ -1,14 +1,11 @@ { - config, lib, pkgs, + util, ... }: -let - util = import ../../util.nix { inherit config lib pkgs; }; -in { - nixpkgs = util.nixpkgs; + imports = [ ../../util.nix ]; # Enabling this causes permission issues: # https://github.com/nix-community/home-manager/pull/8031 @@ -21,15 +18,13 @@ in username = "samueles"; homeDirectory = "/Users/samueles"; - packages = util.packages; - # Necessary for `git send-email` to work. sessionVariables = { NIX_SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; }; - file = util.file // { + file = { "Library/Application Support/Code/User/keybindings.json" = util.symlink "macos/vscode/keybindings.json"; "Library/Application Support/Code/User/settings.json" = util.symlink "vscode/settings.json"; @@ -63,9 +58,7 @@ in }; }; - programs = util.programs // { + programs = { zsh.enable = true; # Necessary for aliases and Starship to work. }; - - assertions = util.assertions; } diff --git a/nixos/home-manager/home.nix b/nixos/home-manager/home.nix index 737351a..42ddfdf 100644 --- a/nixos/home-manager/home.nix +++ b/nixos/home-manager/home.nix @@ -1,14 +1,11 @@ { - config, lib, pkgs, + util, ... }: -let - util = import ../../util.nix { inherit config lib pkgs; }; -in { - nixpkgs = util.nixpkgs; + imports = [ ../../util.nix ]; home = { # https://nix-community.github.io/home-manager/release-notes.xhtml @@ -17,7 +14,7 @@ in username = "sam"; homeDirectory = "/home/sam"; - packages = util.packages ++ [ + packages = [ pkgs.discord pkgs.obsidian pkgs.prismlauncher @@ -26,7 +23,7 @@ in pkgs.xsel # Used by the VS Code "Open In GitHub" extension. ]; - file = util.file // { + file = { ".config/Code/User/keybindings.json" = util.symlink "vscode/keybindings.json"; ".config/Code/User/settings.json" = util.symlink "vscode/settings.json"; }; @@ -46,9 +43,7 @@ in }; }; - programs = util.programs // { + programs = { bash.enable = true; # Necessary for aliases and Starship to work. }; - - assertions = util.assertions; } diff --git a/ubuntu/home-manager/home.nix b/ubuntu/home-manager/home.nix index 199c4f5..687e5b2 100644 --- a/ubuntu/home-manager/home.nix +++ b/ubuntu/home-manager/home.nix @@ -1,14 +1,10 @@ { - config, - lib, pkgs, + util, ... }: -let - util = import ../../util.nix { inherit config lib pkgs; }; -in { - nixpkgs = util.nixpkgs; + imports = [ ../../util.nix ]; home = { # # https://nix-community.github.io/home-manager/release-notes.xhtml @@ -17,11 +13,11 @@ in username = "saestep"; homeDirectory = "/home/saestep"; - packages = util.packages ++ [ + packages = [ pkgs.xsel # Used by the VS Code "Open In GitHub" extension. ]; - file = util.file // { + file = { ".config/Code/User/keybindings.json" = util.symlink "vscode/keybindings.json"; ".config/Code/User/settings.json" = util.symlink "vscode/settings.json"; }; @@ -33,9 +29,7 @@ in vulkan.enable = true; }; - programs = util.programs // { + programs = { bash.enable = true; # Necessary for aliases and Starship to work. }; - - assertions = util.assertions; } diff --git a/util.nix b/util.nix index a314cea..6977e77 100644 --- a/util.nix +++ b/util.nix @@ -2,19 +2,23 @@ config, lib, pkgs, + ... }: -rec { +let symlink = subpath: { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/github/samestep/env/${subpath}"; }; +in +{ + _module.args.util = { + inherit symlink; + }; # https://nix-community.github.io/home-manager/options.xhtml#opt-nixpkgs.config - nixpkgs = { - config.allowUnfree = true; - }; + nixpkgs.config.allowUnfree = true; # https://nix-community.github.io/home-manager/options.xhtml#opt-home.packages - packages = [ + home.packages = [ pkgs.btop pkgs.cloc pkgs.gh @@ -46,10 +50,10 @@ rec { ]; # https://nix-community.github.io/home-manager/options.xhtml#opt-home.file - file = { - ".codex/config.toml" = symlink "codex/config.toml"; - ".config/cloc" = symlink "cloc"; - ".gitconfig" = symlink ".gitconfig"; + home.file = { + ".codex/config.toml" = lib.mkDefault (symlink "codex/config.toml"); + ".config/cloc" = lib.mkDefault (symlink "cloc"); + ".gitconfig" = lib.mkDefault (symlink ".gitconfig"); }; programs = { @@ -124,6 +128,5 @@ rec { }; }; - assertions = [ - ]; + assertions = [ ]; }