dotfiles.nix/users/mat-hm.nix

154 lines
3.7 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{ config, ... }:
let
name = "Matthew Ess";
email = "mat@mat.services";
in {
imports = [ <home-manager/nixos> ];
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
home-manager.users.mat = { pkgs, ... }: {
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
'';
};
};
};
}