Files
nixconf/program-homemanager.nix
T
2026-02-14 10:45:06 +01:00

118 lines
3.4 KiB
Nix

{ config, pkgs, ... }:
let
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz";
in
{
imports = [
(import "${home-manager}/nixos")
];
# Home-manager configuration for the root user
home-manager.users.root = {
home.stateVersion = config.vars.stateVersion; # Set to your current home-manager version
programs.git = {
enable = true;
settings = {
user = {
name = config.vars.hm_git_username;
email = config.vars.usermail;
};
credential.helper = "store --file ~/.git-credentials";
};
};
programs.fzf.enable = true;
programs.fzf.enableZshIntegration = true;
programs.zoxide.enable = true;
programs.zoxide.enableZshIntegration = true;
programs.zsh = {
enable = true;
initContent = ''
zipdirs() {
for f in ./*; do
if [ -d "$f" ]; then
find "$f" -type f -name "*.txt" -delete
if [ -n "$(find "$f" -mindepth 1 -type d -print -quit)" ]; then
echo "Skipping $f: contains sub-folders"
continue
fi
zip -0 -r -j "$f.zip" "$f"/* && rm -rf "$f"
fi
done
}
'';
envExtra = ''
export LANG=en_US.UTF-8
export EDITOR='nano'
'';
};
};
home-manager.users."${config.vars.username}" = {
/* The home.stateVersion option does not have a default and must be set */
home.stateVersion = config.vars.stateVersion;
/* Here goes the rest of your home-manager config, e.g. home.packages = [ pkgs.foo ]; */
programs.git = {
enable = true;
settings = {
user = {
name = config.vars.hm_git_username;
email = config.vars.usermail;
};
credential.helper = "store --file ~/.git-credentials";
};
};
programs.fzf.enable = true;
programs.fzf.enableZshIntegration = true;
programs.zoxide.enable = true;
programs.zoxide.enableZshIntegration = true;
programs.ssh = {
enable = true;
enableDefaultConfig = false; # Disable old defaults
matchBlocks = {
# Global settings for all hosts
"*" = {
addKeysToAgent = "yes"; # Moved from top-level
forwardAgent = false;
compression = false;
serverAliveInterval = 0;
serverAliveCountMax = 3;
hashKnownHosts = false;
controlMaster = "no";
};
"nixconf" = {
hostname = "github.com";
user = "${config.vars.usermail}";
identityFile = "/home/${config.vars.username}/.ssh/id_nix";
};
};
};
};
programs.nix-ld.enable = true;
programs.zsh = {
enable = true;
syntaxHighlighting.enable = true;
enableCompletion = true;
autosuggestions.enable = true;
shellAliases = {
nixapply = "sudo nixos-rebuild switch";
nixupdate = "sudo nix-channel --update && sudo nixos-rebuild switch";
nixclean = "sudo nix-collect-garbage -d";
cp="rsync -ah --info=progress2";
sct="systemctl";
jct="journalctl";
};
ohMyZsh = {
enable = true;
plugins = [ "git" "python" "man" "command-not-found" "safe-paste" "tmux" "zoxide" "kubectl" "zsh-interactive-cd" ];
theme = "agnoster";
customPkgs = [
pkgs.nix-zsh-completions
# and even more...
];
};
};
}