Introduce a "user" module that can be interpolated everywhere.
Signed-off-by: Mariano Uvalle <juvallegarza@microsoft.com>
This commit is contained in:
parent
c6aad094b0
commit
4c8cd258c1
5 changed files with 60 additions and 20 deletions
|
|
@ -159,14 +159,15 @@
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/msft-mac/configuration.nix
|
./hosts/msft-mac/configuration.nix
|
||||||
home-manager.darwinModules.home-manager
|
home-manager.darwinModules.home-manager
|
||||||
{
|
({ config, ... }: {
|
||||||
home-manager.extraSpecialArgs = {
|
home-manager.extraSpecialArgs = {
|
||||||
pkgs-unstable = pkgs-unstable_aarch64-darwin;
|
pkgs-unstable = pkgs-unstable_aarch64-darwin;
|
||||||
|
inherit (config) user;
|
||||||
};
|
};
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.users.jmug.imports = [ ./hosts/msft-mac/home.nix ];
|
home-manager.users.jmug.imports = [ ./hosts/msft-mac/home.nix ];
|
||||||
}
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
{ self, pkgs, ... }: {
|
{ self, pkgs, config, ... }: {
|
||||||
|
|
||||||
imports = [ ./hotkeys.nix ];
|
imports = [
|
||||||
|
./hotkeys.nix
|
||||||
|
../../modules/common
|
||||||
|
];
|
||||||
|
|
||||||
# To reflect hotkeys without a login cycle.
|
# To reflect hotkeys without a login cycle.
|
||||||
system.activationScripts.postActivation.text = ''
|
system.activationScripts.postActivation.text = ''
|
||||||
sudo -u jmug /System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u
|
sudo -u ${config.user.name} /System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# List packages installed in system profile. To search by name, run:
|
# List packages installed in system profile. To search by name, run:
|
||||||
|
|
@ -14,7 +17,9 @@
|
||||||
git-credential-manager
|
git-credential-manager
|
||||||
];
|
];
|
||||||
|
|
||||||
system.primaryUser = "jmug";
|
user.name = "jmug";
|
||||||
|
|
||||||
|
system.primaryUser = config.user.name;
|
||||||
|
|
||||||
homebrew = {
|
homebrew = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -45,7 +50,7 @@
|
||||||
nerd-fonts.bigblue-terminal
|
nerd-fonts.bigblue-terminal
|
||||||
];
|
];
|
||||||
|
|
||||||
users.users.jmug.home = "/Users/jmug";
|
users.users.${config.user.name}.home = config.user.homeDirectory;
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,13 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
pkgs-unstable,
|
pkgs-unstable,
|
||||||
|
user,
|
||||||
...
|
...
|
||||||
} : {
|
} :
|
||||||
|
let
|
||||||
|
username = user.name;
|
||||||
|
homeDirectory = user.homeDirectory;
|
||||||
|
in {
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
../../home-modules/default.nix
|
../../home-modules/default.nix
|
||||||
|
|
@ -28,8 +33,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
username = "jmug";
|
username = username;
|
||||||
homeDirectory = "/Users/jmug";
|
homeDirectory = homeDirectory;
|
||||||
|
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
jq
|
jq
|
||||||
|
|
@ -67,24 +72,24 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
Host *
|
Host *
|
||||||
IdentityAgent /Users/jmug/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh
|
IdentityAgent ${homeDirectory}/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
# TODO BEGIN Interpolate the name of the host here.
|
# TODO BEGIN Interpolate the name of the host here.
|
||||||
flakeconf = "nvim /Users/jmug/nixos/flake.nix";
|
flakeconf = "nvim ${homeDirectory}/nixos/flake.nix";
|
||||||
sysconf = "nvim /Users/jmug/nixos/hosts/macbook/configuration.nix";
|
sysconf = "nvim ${homeDirectory}/nixos/hosts/macbook/configuration.nix";
|
||||||
homeconf = "nvim /Users/jmug/nixos/hosts/macbook/home.nix";
|
homeconf = "nvim ${homeDirectory}/nixos/hosts/macbook/home.nix";
|
||||||
nvconf = "nvim /Users/jmug/nixos/home-modules/explicit-configs/nvim/init.lua";
|
nvconf = "nvim ${homeDirectory}/nixos/home-modules/explicit-configs/nvim/init.lua";
|
||||||
# TODO: Interpolate the name of the host here.
|
# TODO: Interpolate the name of the host here.
|
||||||
rshellconf="source /Users/jmug/.zshrc";
|
rshellconf="source ${homeDirectory}/.zshrc";
|
||||||
radev = "/Users/jmug/dev/aks-rp/bin/aksdev";
|
radev = "${homeDirectory}/dev/aks-rp/bin/aksdev";
|
||||||
ksc = "KUBECONFIG=/Users/jmug/Downloads/cxkubeconfig.yaml kubectl";
|
ksc = "KUBECONFIG=${homeDirectory}/Downloads/cxkubeconfig.yaml kubectl";
|
||||||
kso = "KUBECONFIG=/Users/jmug/Downloads/overlaykubeconfig.yaml kubectl";
|
kso = "KUBECONFIG=${homeDirectory}/Downloads/overlaykubeconfig.yaml kubectl";
|
||||||
k = "kubectl";
|
k = "kubectl";
|
||||||
nrsw = "sudo darwin-rebuild switch --flake /Users/jmug/nixos#msft-mac";
|
nrsw = "sudo darwin-rebuild switch --flake ${homeDirectory}/nixos#msft-mac";
|
||||||
};
|
};
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
export GONOPROXY='github.com,golang.org,googlesource.com,opentelemetry.io,uber.org'
|
export GONOPROXY='github.com,golang.org,googlesource.com,opentelemetry.io,uber.org'
|
||||||
|
|
|
||||||
5
modules/common/default.nix
Normal file
5
modules/common/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./user-config.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
24
modules/common/user-config.nix
Normal file
24
modules/common/user-config.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options.user = lib.mkOption {
|
||||||
|
type = lib.types.submodule {
|
||||||
|
options = {
|
||||||
|
name = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Primary username for the system";
|
||||||
|
};
|
||||||
|
|
||||||
|
homeDirectory = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Home directory path for the user";
|
||||||
|
default =
|
||||||
|
if pkgs.stdenv.isDarwin
|
||||||
|
then "/Users/${config.user.name}"
|
||||||
|
else "/home/${config.user.name}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
description = "User configuration options";
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue