{ config, pkgs, ... }: let mkPersistentLink = path: pkgs.runCommand "persistent-link" {} '' ln -s /home/hblobner/.local/share/pfke/nix-config/${path} $out ''; in { imports = [ ./modules/cli/bat.nix ./modules/cli/fish.nix ./modules/keychain.nix ./modules/cli/starship.nix ]; home.file.".config/nvim".source = mkPersistentLink "dot_files/.config/nvim"; home.file.".config/nvim".onChange = "nvim --headless \"+Lazy! sync\" +qa"; # Home Manager needs a bit of information about you and the # paths it should manage. home.username = "hblobner"; home.homeDirectory = "/home/hblobner"; fonts.fontconfig.enable = true; # Packages that should be installed to the user profile. home.packages = with pkgs; [ (pkgs.nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; }) exa fasd fd htop fortune python3 ranger ripgrep rsync clang ]; # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage # when a new Home Manager release introduces backwards # incompatible changes. # # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. home.stateVersion = "23.05"; # Let Home Manager install and manage itself. programs.home-manager.enable = true; # git programs.git = { enable = true; userName = "hblobner"; userEmail = "hblobner@avm.de"; aliases = { st = "status"; }; }; programs.neovim = { enable = true; vimAlias = true; }; home.sessionPath = [ "/home/hblobner/.gu/bin" ]; home.sessionVariables = { EDITOR = "nvim"; PERL5LIB = "/home/hblobner/.gu/lib/perl"; GU_ENV = "1"; MAKE_J_OPTION = "$(nproc)"; MAKEFLAGS = "-j$(nproc)"; }; services.gpg-agent = { enable = true; defaultCacheTtl = 1800; enableSshSupport = true; }; }