{ config, pkgs, ... }: let #home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/master.tar.gz"; 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"; }; }; }; }