Archived
Zero W20 (repeated attribute keys), W10 (empty { ... }: variadic
pattern, use _: instead), and W04 (a = x.a instead of inherit)
warnings remain anywhere in the tree, and nixpkgs-fmt --check is
clean on all 46 .nix files.
Repeated-key merges go as deep as statix actually flags per file
(e.g. boot.loader.* nested under boot.loader = { ... } once the
outer boot.* merge exposed it as its own repeat) — every merge is a
pure attribute-path restructuring with no value changes, verified by
comparing config.system.build.toplevel.drvPath before/after for a
representative host per changed module plus a full 19-host + 4-package
eval sweep.
One indentation slip caught and fixed during this pass: nesting
modules/installer/common.nix's environment.etc."auto-install.sh".text
under an environment = { ... } block initially normalized the
script's shebang/set line indentation, which actually changes the
rendered file (Nix's '' string dedent treats it as real content, not
cosmetic whitespace) — reproduced the original's exact indentation
and reverified the rendered script is byte-identical to before.
modules/services/zfs/auto-mount-volumes.nix picked up formatting too;
worth noting it isn't imported by anything in this flake at all.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01La55Nsss8jZ7ZuzUV9mfot
70 lines
1.9 KiB
Nix
70 lines
1.9 KiB
Nix
{ config, pkgs, lib, vars, ... }:
|
|
|
|
let
|
|
remote = "root@proxmox-ip:/var/lib/vz/template/iso";
|
|
localMount = "${config.home.homeDirectory}/proxmox-iso";
|
|
in
|
|
{
|
|
|
|
imports = [
|
|
./aliases.nix
|
|
];
|
|
|
|
home = {
|
|
username = vars.primaryUser;
|
|
homeDirectory = "/home/${vars.primaryUser}";
|
|
stateVersion = "25.11"; # match your NixOS stateVersion
|
|
|
|
# Optional: packages
|
|
packages = with pkgs; [
|
|
git
|
|
vim
|
|
tmux
|
|
nano
|
|
sshfs
|
|
];
|
|
|
|
# Optional: set environment vars
|
|
sessionVariables = {
|
|
EDITOR = "nano";
|
|
};
|
|
};
|
|
|
|
programs.home-manager.enable = true; # mandatory to activate HM
|
|
|
|
programs.bash.enable = true;
|
|
|
|
# GitHub access-tokens setting used to live here in plaintext; it's now
|
|
# rendered system-wide from a sops-nix secret via nix.extraOptions in
|
|
# modules/common/configuration.nix instead (covers the daemon for every
|
|
# user, not just this one).
|
|
|
|
# systemd.user.services.mount-proxmox-iso = {
|
|
# Unit = {
|
|
# Description = "Mount Proxmox ISO dir via SSHFS";
|
|
# After = [ "network-online.target" ];
|
|
# Wants = [ "network-online.target" ];
|
|
# };
|
|
|
|
# Service = {
|
|
# Type = "simple";
|
|
# ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p ${localMount}";
|
|
# ExecStart = "${pkgs.sshfs}/bin/sshfs -o IdentityFile=${config.home.homeDirectory}/.ssh/id_ed25519,allow_other,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 root@proxmox-ip:/var/lib/vz/template/iso ${localMount}";
|
|
# ExecStop = "${pkgs.fuse3}/bin/fusermount3 -u ${localMount}";
|
|
# Restart = "on-failure";
|
|
# };
|
|
|
|
# Install = {
|
|
# WantedBy = [ "default.target" ];
|
|
# };
|
|
# };
|
|
# Optional: enable bash (or zsh, fish...)
|
|
# programs.bash.enable = true;
|
|
|
|
# Optional: manage dotfiles via symlinks
|
|
# home.file = {
|
|
# ".tmux.conf".source = ./dotfiles/tmux.conf;
|
|
# ".config/nvim/init.vim".source = ./dotfiles/init.vim;
|
|
# };
|
|
}
|