Add NixOS home manager config and fix flake warnings

- Add hosts/nixos/home-default.nix with nvim, ssh, and other modules
- Add hosts/nixos/hs/home.nix importing home-default
- Fix nixpkgs.config conflict by moving allowUnfree to system level
- Fix root user password conflicts by explicitly clearing all options
- Add home-manager integration to hs system configuration
- Update hostId from placeholder to actual value (8425e349)
- Add claude-code support for x86_64-linux architecture

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Yan Lin 2025-09-06 23:25:59 +02:00
parent 70485c0bc4
commit aafa5da904
4 changed files with 83 additions and 2 deletions

View file

@ -42,6 +42,7 @@
./hosts/nixos/hs/system.nix
./hosts/nixos/hs/disk-config.nix
];
specialArgs = { inherit home-manager nixvim claude-code; };
};
nixosConfigurations."hs-iso" = nixpkgs.lib.nixosSystem {
@ -64,6 +65,12 @@
modules = [ ./hosts/darwin/mba/home.nix ];
extraSpecialArgs = { inherit claude-code nixvim firefox-addons; };
};
"yanlin@hs" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [ ./hosts/nixos/hs/home.nix ];
extraSpecialArgs = { inherit claude-code nixvim; };
};
};
};
}

View file

@ -0,0 +1,45 @@
{ config, pkgs, nixvim, claude-code, ... }:
{
imports = [
nixvim.homeModules.nixvim
../../modules/nvim.nix
../../modules/tmux.nix
../../modules/zsh.nix
../../modules/ssh.nix
../../modules/git.nix
../../modules/lazygit.nix
../../modules/termscp.nix
../../modules/rsync.nix
../../modules/btop.nix
../../config/fonts.nix
];
home.username = "yanlin";
home.homeDirectory = "/home/yanlin";
home.stateVersion = "24.05";
programs.home-manager.enable = true;
home.packages = with pkgs; [
# Network and file transfer
lftp
httpie
openssh
gnumake
# Command-line utilities
ncdu
git-credential-oauth
zoxide
delta
fastfetch
# Development and build tools
python312
uv
claude-code.packages.x86_64-linux.claude-code
lazysql
sqlite
];
}

11
hosts/nixos/hs/home.nix Normal file
View file

@ -0,0 +1,11 @@
{ config, pkgs, ... }:
{
imports = [
../home-default.nix
];
# hs-specific home configuration
# Example: Server-specific tools, monitoring utilities, etc.
}

View file

@ -1,7 +1,8 @@
{ config, pkgs, ... }: {
{ config, pkgs, home-manager, nixvim, claude-code, ... }: {
imports = [
./hardware-configuration.nix
./disk-config.nix
home-manager.nixosModules.home-manager
];
# GRUB bootloader with ZFS support
@ -24,7 +25,7 @@
# Network configuration
networking = {
hostName = "hs";
hostId = "12345678"; # Required for ZFS, good practice for any system
hostId = "8425e349"; # Required for ZFS, good practice for any system
networkmanager.enable = true;
firewall.enable = false;
# firewall.allowedTCPPorts = [ 22 ]; # SSH
@ -49,6 +50,12 @@
# Define a user account
users.users.root = {
# Clear any inherited password settings
hashedPassword = null;
hashedPasswordFile = null;
password = null;
initialHashedPassword = null;
initialPassword = null;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG35m0DgTrEOAM+1wAlYZ8mvLelNTcx65cFccGPQcxmo yanlin@imac"
];
@ -110,6 +117,17 @@
autodetect = true;
};
# Allow unfree packages globally
nixpkgs.config.allowUnfree = true;
# Home Manager configuration
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.yanlin = import ./home.nix;
extraSpecialArgs = { inherit claude-code nixvim; };
};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. It's perfectly fine and recommended to leave