nix-git/yodaTab/home-manager.nix
2023-08-31 13:13:56 +02:00

90 lines
2.3 KiB
Nix

{ config, pkgs, ... }:
let
# Import Home Manager with niv.
home-manager = (import ./nix/sources.nix).home-manager;
in
{
imports = [
(import "${home-manager}/nixos")
];
/* Enable home-manager to configure GNOME */
programs.dconf.enable = true;
home-manager.users.yoda = {
/* The home.stateVersion option does not have a default and must be set */
/* https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion */
home.stateVersion = "23.05";
/* Here goes the rest of your home-manager config, e.g. home.packages = [ pkgs.foo ]; */
#home.username = "yoda";
#home.homeDirectory = "/home/yoda";
# Git config using Home Manager modules
programs.git = {
enable = true;
userName = "Daniel Langbein";
userEmail = "daniel@systemli.org";
aliases = {
#st = "status";
};
};
#services.gpg-agent = {
# enable = true;
# enableSshSupport = true;
# defaultCacheTtl = 1800;
#};
programs.ssh = {
enable = true;
userKnownHostsFile = "~/.ssh/known_hosts ${../known_hosts}";
matchBlocks = {
"nas" = {
hostname = "p1st.de";
user = "yoda";
port = 2222;
compression = true;
# TODO
#preferredAuthentication = "publickey";
};
};
};
# TODO: See history.path below.
# xdg = {
# enable = true;
# #dataHome = "${config.xdg.home.homeDirectory}/.local/share";
# };
programs.zsh = {
enable = true;
shellAliases = {
#ll = "ls -l";
#update = "sudo nixos-rebuild switch";
};
history.size = 1000;
history.ignoreDups = true;
#history.ignoreAllDups = true;
# TODO:
# Currently, `config` is my NixOS config. However, I want to access Home Manager's `config`.
# I could change home-manager.users.yoda to be a function and take config as an argument there.
#history.path = "${config.xdg.dataHome}/.histfile";
oh-my-zsh = {
enable = true;
plugins = [
# Provides many aliases and a few useful functions.
#"git"
# Easily prefix your current or previous commands with sudo by pressing `esc` twice.
#"sudo"
];
#theme = "robbyrussell";
theme = "agnoster";
};
};
};
}