Files
nixconf/program-homemanager.nix
2025-07-29 16:04:18 +02:00

76 lines
2.2 KiB
Nix

{ config, pkgs, ... }:
let
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-25.05.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;
userName = config.vars.hm_git_username;
userEmail = config.vars.usermail;
extraConfig = {
credential.helper="store";
};
};
};
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;
userName = config.vars.hm_git_username;
userEmail = config.vars.usermail;
extraConfig = {
credential.helper = "store";
};
};
programs.zoxide.enable = true;
programs.zoxide.enableZshIntegration = true;
programs.zsh.envExtra = ["LANG=en_US.UTF-8" "EDITOR='nano'"];
programs.ssh = {
enable = true;
addKeysToAgent = "yes";
matchBlocks = {
"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...
];
};
};
}