home-manager/home.nix

134 lines
3.1 KiB
Nix
Raw Normal View History

2024-08-18 19:31:22 +02:00
{ config, pkgs, ... }:
{
2024-09-01 06:49:36 +02:00
nixpkgs.config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
};
2024-08-18 19:31:22 +02:00
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "jas";
home.homeDirectory = "/home/jas";
home.stateVersion = "24.05"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs; [
arp-scan
bat
diskonaut
doggo
dust
2024-08-29 20:17:36 +02:00
emacs28
2024-08-18 19:31:22 +02:00
fd
2024-08-28 21:35:12 +02:00
glances
2024-08-18 19:31:22 +02:00
glow
gum
html-tidy
hyfetch
hyperfine
just
lsd
2024-09-05 23:43:58 +02:00
nixfmt-rfc-style
2024-09-01 06:49:36 +02:00
parallel
2024-08-18 19:31:22 +02:00
starship
tealdeer
vivid
wthrr
zellij
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
".justfile".source = dotfiles/just/.justfile;
".zshrc".source = dotfiles/zsh/.zshrc;
".zshrc.d".source = dotfiles/zsh/.zshrc.d;
".zpath".source = dotfiles/zsh/.zpath;
".zshenv".source = dotfiles/zsh/.zshenv;
".config/zellij".source = dotfiles/config/.config/zellij;
".config/starship.toml".source = dotfiles/config/.config/starship.toml;
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# git config
programs.git = {
enable = true;
diff-so-fancy = {
enable = true;
2024-09-05 23:43:58 +02:00
pagerOpts = [
"--tabs=4"
"-RFX"
];
2024-08-18 19:31:22 +02:00
};
userName = "Jeffrey Serio";
userEmail = "hyperreal@moonshadow.dev";
extraConfig = {
core = {
editor = "emacsclient";
};
init = {
defaultBranch = "main";
};
pull = {
rebase = true;
};
};
};
# ssh config
programs.ssh.enable = true;
programs.ssh.matchBlocks = {
2024-08-28 21:35:12 +02:00
"nixos.tail7dd4a.ts.net" = {
hostname = "nixos.tail7dd4a.ts.net";
2024-08-18 19:31:22 +02:00
user = "jas";
identityFile = "~/.ssh/id_ed25519";
};
2024-09-05 23:43:58 +02:00
"thedas.tail7dd4a.ts.net" = {
hostname = "thedas.tail7dd4a.ts.net";
user = "jas";
identityFile = "~/.ssh/id_ed25519";
};
2024-08-28 21:35:12 +02:00
"aux-vm" = {
hostname = "10.0.0.26";
2024-08-18 19:31:22 +02:00
user = "jas";
identityFile = "~/.ssh/id_ed25519";
};
2024-08-28 21:35:12 +02:00
"bttracker.nirn.quest" = {
hostname = "bttracker.nirn.quest";
user = "jas";
2024-08-18 19:31:22 +02:00
identityFile = "~/.ssh/id_ed25519";
};
2024-08-28 21:35:12 +02:00
"hyperreal.coffee" = {
hostname = "hyperreal.coffee";
2024-08-18 19:31:22 +02:00
user = "jas";
identityFile = "~/.ssh/id_ed25519";
};
2024-08-28 21:35:12 +02:00
"qbittorrent" = {
hostname = "10.0.0.82";
2024-08-18 19:31:22 +02:00
user = "jas";
identityFile = "~/.ssh/id_ed25519";
};
2024-08-28 21:35:12 +02:00
"truenas" = {
hostname = "10.0.0.81";
user = "admin";
identityFile = "~/.ssh/id_ed25519";
};
};
2024-08-29 20:17:36 +02:00
# direnv
2024-08-28 21:35:12 +02:00
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
2024-08-18 19:31:22 +02:00
};
}