{ config, pkgs, ... }: let mkPersistentLink = path: pkgs.runCommand "persistent-link" {} '' ln -s /home/pfke/.local/share/pfke/nix-config/${path} $out ''; in { imports = [ ./modules/cli/bat.nix ./modules/cli/starship.nix ./modules/cli/zsh.nix ./modules/desktop/hprland ./modules/keychain.nix ]; monitors = [ { name = "DP-0"; width = 3440; height = 1440; noBar = true; x = 0; workspace = "1"; enabled = true; } ]; 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 = "pfke"; home.homeDirectory = "/home/pfke"; # 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 = "pfke"; userEmail = "heiko.blobner@pfke.de"; aliases = { st = "status"; }; }; programs.neovim = { enable = true; vimAlias = true; }; home.sessionVariables = { EDITOR = "nvim"; GU_ENV = "1"; MAKE_J_OPTION = "$(nproc)"; MAKEFLAGS = "-j$(nproc)"; }; services.gpg-agent = { enable = true; defaultCacheTtl = 1800; enableSshSupport = true; }; }