{ pkgs, ... }: let # a small useful script with common nix+nixos commands, invoked with `nx` nx-script = pkgs.writeShellScriptBin "nx" (builtins.readFile ../../scripts/nx.sh); in { imports = [ ../foundation/home ./shell.nix ./code.nix ./zed.nix ]; programs = { git = { enable = true; signing = { key = "D75A C286 ACA7 00B4 D8EC 377D 2082 F8EC 11CC 009B"; signByDefault = true; }; ignores = [ # ignore most vim swap-files "*~" "[._]*.sw?" ]; settings = { user = { name = "Mel"; email = "mel@rnrd.eu"; }; alias = { "skip" = "update-index --skip-worktree"; "unskip" = "update-index --no-skip-worktree"; }; init.defaultBranch = "main"; pull.rebase = true; }; }; direnv = { enable = true; nix-direnv.enable = true; }; }; xdg.configFile = { # home-manager does not have the option to pass an alacritty # config file directly. "alacritty/alacritty.toml".source = ../../configs/alacritty.toml; }; home.file = { # base .vimrc for tools outside of vim, like the # VSCode Vim plugin. ".vimrc".source = ../../configs/.vimrc; # special .vimrc for the IdeaVim plugin in JetBrains IDEs. # `source`s the normal ~/.vimrc and enables IdeaVim-specfic plugins. ".ideavimrc".source = ../../configs/.ideavimrc; }; home.sessionPath = [ "$HOME/.local/share/JetBrains/Toolbox/scripts" ]; home.packages = [ nx-script ]; }