2024-03-21 19:37:29 +00:00
|
|
|
{ lib, config, pkgs, ... }:
|
2024-03-21 18:33:54 +00: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 should not change this value, even if you update Home Manager. If you do
|
|
|
|
# want to update the value, then make sure to first check the Home Manager
|
|
|
|
# release notes.
|
|
|
|
home.stateVersion = "23.11"; # Please read the comment before changing.
|
|
|
|
|
|
|
|
# The home.packages option allows you to install Nix packages into your
|
|
|
|
# environment.
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
git
|
|
|
|
git-lfs
|
|
|
|
difftastic
|
|
|
|
|
|
|
|
# Tools
|
|
|
|
ripgrep
|
|
|
|
bat
|
|
|
|
tmux
|
|
|
|
jq
|
2024-04-18 16:50:00 +00:00
|
|
|
yq
|
2024-03-21 18:33:54 +00:00
|
|
|
fd
|
|
|
|
fzf
|
|
|
|
gnumake
|
|
|
|
age
|
|
|
|
sops
|
|
|
|
http-prompt
|
|
|
|
watchexec
|
|
|
|
devbox
|
|
|
|
nodePackages.prettier
|
|
|
|
direnv
|
|
|
|
sqlfluff
|
2024-03-28 14:33:00 +00:00
|
|
|
tree
|
|
|
|
redis
|
2024-04-18 16:50:00 +00:00
|
|
|
dive
|
|
|
|
ctop
|
|
|
|
bottom
|
2024-04-25 18:46:12 +00:00
|
|
|
tailscale
|
2024-03-21 18:33:54 +00:00
|
|
|
|
|
|
|
# Nodejs
|
|
|
|
nodejs_20
|
2024-04-25 18:46:12 +00:00
|
|
|
deno
|
2024-03-21 18:33:54 +00:00
|
|
|
|
|
|
|
# Golang
|
|
|
|
go
|
|
|
|
gopls
|
|
|
|
golangci-lint
|
|
|
|
|
|
|
|
# C & CPP
|
|
|
|
gcc
|
|
|
|
|
|
|
|
# Rust
|
|
|
|
cargo
|
|
|
|
|
|
|
|
# Shell
|
|
|
|
zsh
|
|
|
|
shfmt
|
|
|
|
|
|
|
|
# Lua
|
|
|
|
stylua
|
|
|
|
|
|
|
|
# Services
|
|
|
|
terraform
|
|
|
|
opentofu
|
|
|
|
flyctl
|
|
|
|
awscli2
|
|
|
|
|
|
|
|
# Kubernetes
|
|
|
|
k9s
|
|
|
|
kubectl
|
2024-03-21 19:37:29 +00:00
|
|
|
|
|
|
|
# Gnome
|
|
|
|
gnomeExtensions.pop-shell
|
2024-03-21 18:33:54 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
|
|
|
# plain files is through 'home.file'.
|
|
|
|
home.file = {
|
|
|
|
"~/.tmux.conf".source = ../tmux/tmux.conf;
|
|
|
|
"~/.ssh/authorized_keys".source = ../ssh/authorized_keys;
|
|
|
|
"${config.xdg.configHome}/starship.toml".source = ../starship/starship.toml;
|
|
|
|
"${config.xdg.configHome}/bat" = {
|
|
|
|
recursive = true;
|
|
|
|
source = ../bat;
|
|
|
|
};
|
|
|
|
"${config.xdg.configHome}/kitty" = {
|
|
|
|
recursive = true;
|
|
|
|
source = ../kitty;
|
|
|
|
};
|
|
|
|
"${config.xdg.configHome}/nvim" = {
|
|
|
|
recursive = true;
|
|
|
|
source = ../nvim;
|
|
|
|
};
|
2024-04-18 16:50:00 +00:00
|
|
|
"${config.xdg.configHome}/Code/User" = {
|
|
|
|
recursive = true;
|
|
|
|
source = ../code;
|
|
|
|
};
|
2024-03-21 18:33:54 +00:00
|
|
|
};
|
|
|
|
|
2024-03-21 19:37:29 +00:00
|
|
|
programs.gh = {
|
|
|
|
enable = true;
|
|
|
|
gitCredentialHelper.enable = true;
|
|
|
|
};
|
|
|
|
|
2024-03-21 18:33:54 +00:00
|
|
|
programs.git = {
|
|
|
|
enable = true;
|
|
|
|
userName = "Tine";
|
|
|
|
userEmail = "tine@tjo.space";
|
|
|
|
|
|
|
|
difftastic.enable = true;
|
|
|
|
lfs.enable = true;
|
|
|
|
|
2024-03-21 19:37:29 +00:00
|
|
|
includes = [
|
|
|
|
{ path = "~/.gitconfig.local"; }
|
|
|
|
];
|
|
|
|
|
2024-03-21 18:33:54 +00:00
|
|
|
extraConfig = {
|
|
|
|
user = {
|
|
|
|
signingkey = "~/.ssh/id_ed25519";
|
|
|
|
};
|
|
|
|
|
|
|
|
commit = {
|
|
|
|
gpgsign = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
gpg = {
|
|
|
|
format = "ssh";
|
|
|
|
};
|
|
|
|
|
2024-03-21 19:37:29 +00:00
|
|
|
credential = {
|
|
|
|
helper = "secretservice";
|
2024-03-21 18:33:54 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
init = {
|
|
|
|
defaultBranch = "main";
|
|
|
|
};
|
|
|
|
|
|
|
|
push = {
|
|
|
|
autoSetupRemote = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
pull = {
|
|
|
|
ff = "only";
|
|
|
|
};
|
2024-04-25 09:12:44 +00:00
|
|
|
|
|
|
|
url = {
|
|
|
|
"git@github.com:" = {
|
|
|
|
insteadOf = "https://github.com/";
|
|
|
|
};
|
|
|
|
};
|
2024-03-21 18:33:54 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.starship = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.neovim = {
|
|
|
|
enable = true;
|
|
|
|
defaultEditor = true;
|
|
|
|
viAlias = true;
|
|
|
|
vimAlias = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.direnv = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.zsh = {
|
|
|
|
enable = true;
|
|
|
|
history = {
|
|
|
|
size = 10000000;
|
|
|
|
save = 10000000;
|
|
|
|
ignoreAllDups = true;
|
|
|
|
path = "${config.xdg.dataHome}/zsh/history";
|
|
|
|
};
|
|
|
|
autosuggestion.enable = true;
|
|
|
|
enableCompletion = true;
|
|
|
|
syntaxHighlighting.enable = true;
|
|
|
|
shellAliases = {
|
|
|
|
"ll" = "ls -l";
|
|
|
|
"gicm" = "(git checkout main || git checkout master) && git pull";
|
|
|
|
"gic" = "git checkout";
|
|
|
|
"gip" = "git pull";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
# Let Home Manager install and manage itself.
|
|
|
|
programs.home-manager.enable = true;
|
|
|
|
}
|