Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/nix.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,6 @@ jobs:

- name: Run nix flake check
run: nix flake check .

- name: Evaluate darwin home-manager config
run: nix eval .#homeConfigurations.testuser-darwin.config.home.username
89 changes: 58 additions & 31 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -39,24 +39,25 @@
...
}:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [ llm-agents.overlays.shared-nixpkgs ];
config.allowUnfreePredicate =
pkg:
builtins.elem (nixpkgs.lib.getName pkg) [
"claude-code"
"copilot.vim"
"copilot-cli"
"barbar.nvim"
"antigravity-cli"
];
};
mkPkgs =
system:
import nixpkgs {
inherit system;
overlays = [ llm-agents.overlays.shared-nixpkgs ];
config.allowUnfreePredicate =
pkg:
builtins.elem (nixpkgs.lib.getName pkg) [
"claude-code"
"copilot.vim"
"copilot-cli"
"barbar.nvim"
"antigravity-cli"
];
};
mkHomeConfig =
username: homeDirectory: personal:
system: username: homeDirectory: identity:
home-manager.lib.homeManagerConfiguration {
inherit pkgs;
pkgs = mkPkgs system;
modules = [
nixvim.homeModules.nixvim
./home.nix
Expand All @@ -65,15 +66,15 @@
inherit
username
homeDirectory
personal
identity
takt
;
};
};
in
let
loadPackagesDir =
dir:
dir: pkgs:
let
allFiles = builtins.readDir dir;
nixFiles = builtins.filter (name: name != "default.nix" && builtins.match ".*\\.nix" name != null) (
Expand All @@ -86,22 +87,48 @@
value = import (dir + "/${name}") { inherit pkgs; };
}) nixFiles
);
npmPackages = loadPackagesDir ./modules/npm/packages;
in
{
packages.${system} = npmPackages;
homeConfigurations = {
"rito528" = mkHomeConfig "rito528" "/home/rito528" {
name = "rito528";
email = "39003544+rito528@users.noreply.github.com";
gpgKey = "F4022307254812F8";
npmPackages = loadPackagesDir ./modules/npm/packages (mkPkgs "x86_64-linux");

# 各マシン向け homeConfigurations の定義。新しいマシンを追加する場合はここにエントリを足す。
machines = {
rito528 = {
system = "x86_64-linux";
username = "rito528";
homeDirectory = "/home/rito528";
identity = {
name = "rito528";
email = "39003544+rito528@users.noreply.github.com";
gpgKey = "F4022307254812F8";
};
};
testuser = {
system = "x86_64-linux";
username = "testuser";
homeDirectory = "/home/testuser";
identity = {
name = "testuser";
email = "testuser@example.com";
gpgKey = "";
};
};
"testuser" = mkHomeConfig "testuser" "/home/testuser" {
name = "testuser";
email = "testuser@example.com";
gpgKey = "";
# aarch64-darwin 向け評価確認用。実 Mac 上の Unix ユーザー名は testuser のまま。
testuser-darwin = {
system = "aarch64-darwin";
username = "testuser";
homeDirectory = "/Users/testuser";
identity = {
name = "testuser";
email = "testuser@example.com";
gpgKey = "";
};
};
};
in
{
packages.x86_64-linux = npmPackages;
homeConfigurations = builtins.mapAttrs (
_: cfg: mkHomeConfig cfg.system cfg.username cfg.homeDirectory cfg.identity
) machines;
templates = {
seichi-assist = {
path = ./templates/seichi-assist;
Expand Down
10 changes: 5 additions & 5 deletions modules/git.nix
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{ lib, personal, ... }:
{ lib, identity, ... }:
{
programs.git = {
enable = true;
signing = {
format = "openpgp";
}
// lib.optionalAttrs (personal.gpgKey != "") {
key = personal.gpgKey;
// lib.optionalAttrs (identity.gpgKey != "") {
key = identity.gpgKey;
signByDefault = true;
};
ignores = [
Expand All @@ -23,8 +23,8 @@
];
settings = {
user = {
name = personal.name;
email = personal.email;
name = identity.name;
email = identity.email;
};
gpg.program = "gpg";
init.defaultBranch = "main";
Expand Down