2020-12-21 19:41:29 -05:00
|
|
|
{ config, pkgs, ... }: {
|
2020-11-11 08:15:50 -05:00
|
|
|
# Let Home Manager install and manage itself.
|
|
|
|
programs.home-manager.enable = true;
|
|
|
|
|
|
|
|
# Home Manager needs a bit of information about you and the
|
|
|
|
# paths it should manage.
|
2022-06-30 15:45:46 -04:00
|
|
|
home.username = "walkah";
|
|
|
|
home.homeDirectory = if pkgs.stdenv.isDarwin then "/Users/walkah" else "/home/walkah";
|
2020-11-11 08:15:50 -05:00
|
|
|
|
2021-10-05 21:11:23 -04:00
|
|
|
home.sessionPath = [
|
|
|
|
"$HOME/.cargo/bin"
|
2022-06-13 22:12:56 -04:00
|
|
|
"$HOME/.deno/bin"
|
2021-10-05 21:11:23 -04:00
|
|
|
"$HOME/.emacs.d/bin"
|
|
|
|
"$HOME/.go/bin"
|
|
|
|
"$HOME/.local/bin"
|
|
|
|
];
|
2020-11-15 09:50:49 -05:00
|
|
|
|
|
|
|
home.packages = with pkgs; [
|
2022-06-14 21:00:11 -04:00
|
|
|
cachix
|
2020-11-15 09:50:49 -05:00
|
|
|
direnv
|
2022-01-06 20:51:37 -05:00
|
|
|
exa
|
2020-11-23 22:09:23 -05:00
|
|
|
fd
|
2020-11-15 09:50:49 -05:00
|
|
|
git
|
2022-06-27 19:32:01 -04:00
|
|
|
gh
|
2020-11-15 09:50:49 -05:00
|
|
|
htop
|
2020-11-23 22:09:23 -05:00
|
|
|
jq
|
|
|
|
mr
|
2021-12-17 22:15:05 -05:00
|
|
|
nixpkgs-fmt
|
2020-12-21 19:41:29 -05:00
|
|
|
nixfmt
|
2020-11-15 09:50:49 -05:00
|
|
|
ripgrep
|
2022-06-22 17:27:28 -04:00
|
|
|
rnix-lsp
|
2021-12-17 22:15:05 -05:00
|
|
|
tea
|
2020-11-17 17:34:43 -05:00
|
|
|
wakatime
|
2020-11-11 08:15:50 -05:00
|
|
|
];
|
|
|
|
|
2021-03-06 20:48:41 -05:00
|
|
|
home.file.".doom.d" = {
|
|
|
|
onChange = ''
|
|
|
|
#!/bin/sh
|
|
|
|
DOOM=$HOME/.emacs.d
|
|
|
|
if [ ! -d $DOOM ]; then
|
|
|
|
git clone --depth 1 https://github.com/hlissner/doom-emacs $DOOM
|
|
|
|
fi
|
|
|
|
$DOOM/bin/doom sync
|
|
|
|
'';
|
|
|
|
source = ./config/.doom.d;
|
|
|
|
recursive = true;
|
|
|
|
};
|
|
|
|
|
2021-09-28 21:37:26 -04:00
|
|
|
home.file.".ghci".text = ''
|
|
|
|
:set prompt "λ> "
|
|
|
|
'';
|
|
|
|
|
2020-11-11 08:15:50 -05:00
|
|
|
programs = {
|
|
|
|
zsh = {
|
|
|
|
enable = true;
|
|
|
|
enableAutosuggestions = true;
|
|
|
|
enableCompletion = true;
|
|
|
|
oh-my-zsh = {
|
|
|
|
enable = true;
|
|
|
|
plugins = [
|
2021-09-28 21:37:26 -04:00
|
|
|
"bundler"
|
2020-11-17 17:34:43 -05:00
|
|
|
"direnv"
|
2020-11-15 09:50:49 -05:00
|
|
|
"docker"
|
2020-11-23 22:09:23 -05:00
|
|
|
"docker-compose"
|
2020-11-11 08:15:50 -05:00
|
|
|
"git"
|
2021-09-28 21:37:26 -04:00
|
|
|
"golang"
|
|
|
|
"mix"
|
|
|
|
"rails"
|
2020-11-11 08:15:50 -05:00
|
|
|
"ssh-agent"
|
|
|
|
"tmux"
|
|
|
|
];
|
|
|
|
};
|
2021-09-28 21:37:26 -04:00
|
|
|
sessionVariables = {
|
|
|
|
EDITOR = "vim";
|
|
|
|
GOPATH = "$HOME/.go";
|
|
|
|
};
|
2022-01-06 20:51:37 -05:00
|
|
|
shellAliases = {
|
|
|
|
ls = "exa --git";
|
|
|
|
ll = "exa -lh --git";
|
|
|
|
};
|
2020-11-15 09:50:49 -05:00
|
|
|
};
|
2020-11-23 22:09:23 -05:00
|
|
|
starship = {
|
|
|
|
enable = true;
|
2021-03-26 16:11:19 -04:00
|
|
|
enableZshIntegration = true;
|
2020-11-23 22:09:23 -05:00
|
|
|
settings = {
|
|
|
|
character = {
|
|
|
|
success_symbol = "[»](bold green) ";
|
2020-12-21 19:41:29 -05:00
|
|
|
error_symbol = "[✗](bold red) ";
|
2020-11-23 22:09:23 -05:00
|
|
|
};
|
|
|
|
directory = {
|
|
|
|
fish_style_pwd_dir_length = 1;
|
|
|
|
truncation_length = 1;
|
|
|
|
};
|
|
|
|
hostname = {
|
|
|
|
ssh_only = false;
|
|
|
|
format = "[$hostname]($style):";
|
|
|
|
};
|
2020-12-21 19:41:29 -05:00
|
|
|
gcloud = { disabled = true; };
|
|
|
|
kubernetes = { disabled = false; };
|
|
|
|
username = { format = "[$user]($style)@"; };
|
2020-11-23 22:09:23 -05:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2020-11-11 08:15:50 -05:00
|
|
|
git = {
|
2020-12-21 19:41:29 -05:00
|
|
|
enable = true;
|
|
|
|
userName = "James Walker";
|
2020-11-11 08:15:50 -05:00
|
|
|
userEmail = "walkah@walkah.net";
|
|
|
|
|
2020-11-23 22:09:23 -05:00
|
|
|
aliases = {
|
2020-12-21 19:41:29 -05:00
|
|
|
lg =
|
|
|
|
"log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
|
2020-11-23 22:09:23 -05:00
|
|
|
st = "status -s";
|
2020-12-21 19:41:29 -05:00
|
|
|
undo = "reset HEAD~1 --mixed";
|
2020-11-23 22:09:23 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
extraConfig = {
|
2020-12-21 19:41:29 -05:00
|
|
|
github.user = "walkah";
|
2020-12-28 20:09:32 -05:00
|
|
|
init.defaultBranch = "main";
|
2020-11-23 22:09:23 -05:00
|
|
|
pull.rebase = true;
|
2020-12-21 19:41:29 -05:00
|
|
|
rebase.autoStash = true;
|
2020-11-23 22:09:23 -05:00
|
|
|
};
|
|
|
|
|
2020-11-11 08:15:50 -05:00
|
|
|
signing = {
|
2020-12-21 19:41:29 -05:00
|
|
|
key = "8896FEC44D47A81C";
|
2020-11-11 08:15:50 -05:00
|
|
|
signByDefault = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
tmux = {
|
|
|
|
enable = true;
|
2022-05-10 22:20:33 -04:00
|
|
|
clock24 = true;
|
|
|
|
plugins = with pkgs.tmuxPlugins; [
|
|
|
|
sensible
|
|
|
|
yank
|
|
|
|
{
|
|
|
|
plugin = dracula;
|
|
|
|
extraConfig = ''
|
|
|
|
set -g @dracula-show-battery true
|
|
|
|
set -g @dracula-show-fahrenheit false
|
|
|
|
set -g @dracula-show-left-icon session
|
|
|
|
set -g @dracula-show-powerline true
|
|
|
|
set -g @dracula-refresh-rate 10
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
];
|
2020-11-15 09:50:49 -05:00
|
|
|
extraConfig = ''
|
2020-11-23 22:09:23 -05:00
|
|
|
set -g set-titles on
|
|
|
|
set -g set-titles-string "[#S] #W@#h (#I)"
|
2020-11-15 09:50:49 -05:00
|
|
|
'';
|
|
|
|
shortcut = "o";
|
2020-11-11 08:15:50 -05:00
|
|
|
};
|
2020-11-27 18:40:30 -05:00
|
|
|
|
2021-01-31 12:57:57 -05:00
|
|
|
emacs = {
|
2020-11-27 18:40:30 -05:00
|
|
|
enable = true;
|
2021-09-28 21:37:26 -04:00
|
|
|
package = pkgs.emacs-nox;
|
2020-11-27 18:40:30 -05:00
|
|
|
extraPackages = epkgs: [ epkgs.vterm ];
|
2021-01-31 12:57:57 -05:00
|
|
|
};
|
2020-11-11 08:15:50 -05:00
|
|
|
|
2020-12-21 19:41:29 -05:00
|
|
|
vim = { enable = true; };
|
|
|
|
};
|
2020-11-23 22:09:23 -05:00
|
|
|
|
2020-11-11 08:15:50 -05:00
|
|
|
# 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.
|
2022-06-28 21:54:25 -04:00
|
|
|
home.stateVersion = "22.05";
|
2020-11-11 08:15:50 -05:00
|
|
|
}
|