{ pkgs, ... }: let name = "Matthew Ess"; email = "mat@mat.services"; in { home = { sessionVariables = { EDITOR = "nvim"; }; packages = with pkgs; [ # nix utilities cachix niv nixfmt nix-prefetch-git fishPlugins.foreign-env # command line utils dnsutils fd fzy httpie jq neofetch rlwrap tealdeer ]; file = import ../hm-configs/files-all.nix; }; programs = { bat.enable = true; broot.enable = true; command-not-found.enable = true; direnv = { enable = true; enableNixDirenvIntegration = true; }; fish = { enable = true; interactiveShellInit = '' echo 'ヽ(´ᗜ`)ノ welcome ヽ(´ᗜ`)ノ' if not functions -q fisher set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher fish -c fisher update end fish_vi_key_bindings set VIRTUAL_ENV_DISABLE_PROMPT true alias cat=bat alias br=broot alias tree=br alias ack=rg alias ag=rg alias grep=rg alias sys="sudo systemctl" alias rebuild="sudo nixos-rebuild switch" alias rebuildd="sudo nixos-rebuild switch; and systemctl restart display-manager" alias upgrade="sudo rm -rf /root/.cache/nix/tarballs; and sudo nix-channel --update; and sudo nixos-rebuild switch --upgrade" bind \cr 'fzy_select_history (commandline -b)' bind -M insert \cr 'fzy_select_history (commandline -b)' bind \cf 'fzy_select_directory' bind -M insert \cf 'fzy_select_directory' bind -M insert ! __history_previous_command bind -M insert '$' __history_previous_command_arguments ''; }; git = { enable = true; userName = "${name}"; userEmail = "${email}"; ignores = [ ".*.sw[a-z]" "tags" ]; extraConfig = { color.ui = true; core.editor = "vim"; push.default = "simple"; init.defaultBranch = "main"; }; }; htop = { enable = true; highlightBaseName = true; }; kakoune = { enable = false; config = { numberLines = { enable = true; highlightCursor = true; relative = true; }; ui = { enableMouse = true; assistant = "cat"; }; wrapLines = { enable = true; indent = true; marker = "⏎"; word = true; }; }; }; keychain = { enable = true; extraFlags = [ "--quiet" "--nogui" ]; enableFishIntegration = true; enableXsessionIntegration = false; }; man.enable = true; neovim = import ../hm-configs/neovim.nix { inherit pkgs; }; ssh = { enable = true; serverAliveInterval = 60; extraOptionOverrides = { "AddKeysToAgent" = "true"; }; }; starship.enable = true; tmux = { enable = true; keyMode = "vi"; newSession = true; shortcut = "a"; baseIndex = 1; terminal = "tmux-256color"; extraConfig = '' set -g mouse on setw -g pane-base-index 1 unbind % bind | split-window -h bind _ split-window -v ''; }; }; }