Migrate to common module structure

This commit is contained in:
2025-11-04 02:38:41 +08:00
parent d6fd2eca4c
commit c27291b1b9
6 changed files with 157 additions and 35 deletions

View File

@@ -4,16 +4,18 @@ let
in in
{ {
imports = [ imports = [
../../modules/darwin/sane-defaults ../../modules/common/sane-defaults
../../modules/common/users
]; ];
system.primaryUser = "yadunut"; system.primaryUser = "yadunut";
users.users."yadunut" = {
openssh.authorizedKeys.keys = [ keys.yadunut ]; nut = {
}; users.enable = true;
users.users."root" = { sane-defaults.enable = true;
openssh.authorizedKeys.keys = [ keys.yadunut ];
}; };
nixpkgs.config.allowUnfree = true;
homebrew = { homebrew = {
enable = true; enable = true;
onActivation.cleanup = "zap"; onActivation.cleanup = "zap";

View File

@@ -0,0 +1,32 @@
{
_class,
lib,
config,
...
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nut.sane-defaults;
nixosModule = mkIf cfg.enable { };
darwinModule = mkIf cfg.enable {
system.defaults = {
NSGlobalDomain = {
InitialKeyRepeat = 10;
KeyRepeat = 1;
AppleShowAllExtensions = true;
ApplePressAndHoldEnabled = false;
};
dock.autohide = true;
dock.autohide-delay = 0.0;
};
};
in
{
imports = [
(lib.optionalAttrs (_class == "nixos") nixosModule)
(lib.optionalAttrs (_class == "darwin") darwinModule)
];
options.nut.sane-defaults = {
enable = mkEnableOption "enable sane defaults";
};
}

View File

@@ -0,0 +1,19 @@
{
_class,
lib,
config,
...
}:
let
inherit (lib) mkIf;
cfg = config.nut.template;
nixosModule = mkIf cfg.enable { };
darwinModule = mkIf cfg.enable { };
in
{
imports = [
(lib.optionalAttrs (_class == "nixos") nixosModule)
(lib.optionalAttrs (_class == "darwin") darwinModule)
];
options.nut.template = { };
}

View File

@@ -0,0 +1,53 @@
{
_class,
lib,
config,
inputs,
...
}:
let
keys = import ../../../keys.nix;
cfg = config.nut.users;
nixosModule = {
config = lib.mkIf cfg.enable {
# Enable Home Manager for NixOS and define the user
home-manager.useUserPackages = true;
home-manager.users.yadunut = {
imports = [ ./home.nix ];
home.homeDirectory = lib.mkForce "/home/yadunut";
};
};
};
darwinModule = {
config = lib.mkIf cfg.enable {
users.users."yadunut" = {
openssh.authorizedKeys.keys = [ keys.yadunut ];
};
users.users."root" = {
openssh.authorizedKeys.keys = [ keys.yadunut ];
};
home-manager.useUserPackages = true;
home-manager.users.yadunut = {
imports = [ ./home.nix ];
home.homeDirectory = lib.mkForce "/Users/yadunut";
};
};
};
in
{
imports = [
# Import the correct Home Manager module for the current platform
(
if _class == "darwin" then
inputs.home-manager.darwinModules.home-manager
else
inputs.home-manager.nixosModules.home-manager
)
(lib.optionalAttrs (_class == "nixos") nixosModule)
(lib.optionalAttrs (_class == "darwin") darwinModule)
];
options.nut.users = {
enable = lib.mkEnableOption "user setup";
};
}

View File

@@ -0,0 +1,45 @@
{
_class,
config,
lib,
pkgs,
...
}:
let
config = {
nut = {
git = {
enable = true;
gpgProgram = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign";
signingKey = "~/.ssh/yadunut_ed25519.pub";
};
zsh.enable = true;
};
home.username = "yadunut";
home.packages = [
pkgs.entr
pkgs.jq
pkgs.just
pkgs.rsync
pkgs.codex
pkgs.dive
pkgs.cachix
pkgs.ouch
pkgs.claude-code
pkgs.codex
pkgs.amp-cli
];
nixpkgs.config.allowUnfree = true;
programs.home-manager.enable = true;
home.stateVersion = "25.05";
};
in
{
imports = [
config
../../home/git
../../home/zsh
];
}

View File

@@ -1,29 +0,0 @@
{
self,
lib,
inputs,
clan-core,
specialArgs,
config,
options,
_class,
modulesPath,
_prefix,
}@args:
let
_ = builtins.trace "MODULE ARGS:\n${lib.generators.toPretty { } (builtins.attrNames args)}" null;
in
{
system.defaults = {
NSGlobalDomain = {
InitialKeyRepeat = 10;
KeyRepeat = 1;
AppleShowAllExtensions = true;
ApplePressAndHoldEnabled = false;
};
dock.autohide = true;
dock.autohide-delay = 0.0;
};
}