Skip to content

Commit

Permalink
support different user names
Browse files Browse the repository at this point in the history
  • Loading branch information
izumin5210 committed Mar 16, 2024
1 parent c85ec92 commit 0eef2cc
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 34 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@
/config/.vim/autoload/plug.vim
/config/.config/karabiner/*
!/config/.config/karabiner/karabiner.json

# Nix
/result
11 changes: 11 additions & 0 deletions bin/apply-configuration
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash

set -euo pipefail

cd $(dirname $0)/..

nix build .\#darwinConfigurations.$(hostname).system
./result/sw/bin/darwin-rebuild switch --flake ".#$(hostname)"

nix build .\#homeConfigurations.\"${USER}\".activationPackage
./result/activate
65 changes: 33 additions & 32 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,47 +4,48 @@
inputs = {
# Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-darwin = {
url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};

outputs = inputs@{ nixpkgs, home-manager, nix-darwin, ... }:
outputs = inputs@{ self, nixpkgs, home-manager, nix-darwin, ... }:
let
system = "aarch64-darwin";
username = "masayuki.izumi";
hostname = "CM2NX3M6CH";
pkgs = nixpkgs.legacyPackages.${system};

users = [
{ username = "izumin"; homeDir = "/Users/izumin"; hostname = "fleur"; }
{ username = "masayuki.izumi"; homeDir = "/Users/masayuki.izumi"; hostname = "CM2NX3M6CH"; }
];

genHomeConfigurations = usersList: builtins.foldl' (acc: user:
acc // {
"${user.username}" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
{ home.username = user.username; home.homeDirectory = user.homeDir; }
./home.nix
];
};
}
) { } usersList;

genDarwinConfigurations = usersList: builtins.foldl' (acc: user:
acc // {
"${user.hostname}" = nix-darwin.lib.darwinSystem {
inherit pkgs;
modules = [ ./darwin.nix ];
};
}
) { } usersList;
in {
darwinConfigurations = {
${hostname} = nix-darwin.lib.darwinSystem {
# system = "aarch64-darwin";
system = system;
inherit pkgs;
modules = [
./darwin.nix
home-manager.nixosModules.home-manager
# ({ pkgs, lib, ... }: {
# home-manager.useGlobalPkgs = true;
# home-manager.useUserPackages = true;
# home-manager.users."masayuki.izumi" = { ... }: {
# imports = [ ./home.nix ];
# };
# })
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
users.users."masayuki.izumi".home = "/Users/${username}";
home-manager.users."masayuki.izumi" = import ./home.nix;
}
];
};
};
homeConfigurations = genHomeConfigurations users;
darwinConfigurations = genDarwinConfigurations users;
};
}
4 changes: 2 additions & 2 deletions home.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "masayuki.izumi";
home.homeDirectory = "/Users/masayuki.izumi";
# home.username = user.name;
# home.homeDirectory = user.homeDir;

# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
Expand Down

0 comments on commit 0eef2cc

Please sign in to comment.