154 lines
3.7 KiB
Nix
154 lines
3.7 KiB
Nix
{ 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
|
||
'';
|
||
};
|
||
};
|
||
};
|
||
}
|