mirror of
https://codeberg.org/hyperreal/home-manager
synced 2024-11-01 17:23:06 +01:00
215 lines
5.1 KiB
Nix
215 lines
5.1 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
{
|
|
# 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
|
|
autossh
|
|
bat
|
|
catppuccin-kde
|
|
diskonaut
|
|
doggo
|
|
dust
|
|
fblog
|
|
fd
|
|
gcc
|
|
glances
|
|
glow
|
|
gum
|
|
html-tidy
|
|
hyfetch
|
|
hyperfine
|
|
just
|
|
kdePackages.kasts
|
|
kdePackages.yakuake
|
|
kdePackages.tokodon
|
|
kdePackages.kpeople
|
|
kdePackages.kbackup
|
|
kdePackages.kontrast
|
|
lagrange
|
|
lsd
|
|
nmap
|
|
nodejs
|
|
nodePackages.js-beautify
|
|
nodePackages.npm
|
|
nodePackages.prettier
|
|
procs
|
|
ripgrep
|
|
rustscan
|
|
starship
|
|
stylelint
|
|
tealdeer
|
|
vivid
|
|
wl-clipboard
|
|
wthrr
|
|
yazi
|
|
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;
|
|
|
|
# borgmatic config
|
|
programs.borgmatic = {
|
|
enable = true;
|
|
backups = {
|
|
home = {
|
|
location = {
|
|
sourceDirectories = [
|
|
"/home/jas/.config"
|
|
"/home/jas/.config-pt"
|
|
"/home/jas/.face"
|
|
"/home/jas/.face.icon"
|
|
"/home/jas/.icons"
|
|
"/home/jas/.librewolf"
|
|
"/home/jas/.local/share/color-schemes"
|
|
"/home/jas/.local/share/direnv"
|
|
"/home/jas/.local/share/dolphin"
|
|
"/home/jas/.local/share/klipper"
|
|
"/home/jas/.local/share/konsole"
|
|
"/home/jas/.local/share/Trash"
|
|
"/home/jas/.mozilla"
|
|
"/home/jas/.shellmarks"
|
|
"/home/jas/.ssh"
|
|
"/home/jas/.zsh_history"
|
|
"/home/jas/dashy"
|
|
"/home/jas/shared"
|
|
];
|
|
repositories = [ "/mnt/backup/moonshadow-home" ];
|
|
};
|
|
excludeHomeManagerSymlinks = true;
|
|
storage.encryptionPasscommand = "${pkgs.password-store}/bin/pass borg-repo";
|
|
retention = {
|
|
keepDaily = 7;
|
|
keepWeekly = 4;
|
|
keepMonthly = 12;
|
|
keepYearly = 4;
|
|
};
|
|
consistency = {
|
|
checks = [
|
|
{
|
|
name = "repository";
|
|
frequency = "2 weeks";
|
|
}
|
|
{
|
|
name = "archives";
|
|
frequency = "4 weeks";
|
|
}
|
|
{
|
|
name = "data";
|
|
frequency = "6 weeks";
|
|
}
|
|
{
|
|
name = "extract";
|
|
frequency = "6 weeks";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
# git config
|
|
programs.git = {
|
|
enable = true;
|
|
diff-so-fancy = {
|
|
enable = true;
|
|
pagerOpts = ["--tabs=4" "-RFX"];
|
|
};
|
|
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 = {
|
|
"nixos.tail7dd4a.ts.net" = {
|
|
hostname = "nixos.tail7dd4a.ts.net";
|
|
user = "jas";
|
|
identityFile = "~/.ssh/id_ed25519";
|
|
};
|
|
"aux-vm" = {
|
|
hostname = "10.0.0.26";
|
|
user = "jas";
|
|
identityFile = "~/.ssh/id_ed25519";
|
|
};
|
|
"bttracker.nirn.quest" = {
|
|
hostname = "bttracker.nirn.quest";
|
|
user = "jas";
|
|
identityFile = "~/.ssh/id_ed25519";
|
|
};
|
|
"hyperreal.coffee" = {
|
|
hostname = "hyperreal.coffee";
|
|
user = "jas";
|
|
identityFile = "~/.ssh/id_ed25519";
|
|
};
|
|
"qbittorrent" = {
|
|
hostname = "10.0.0.82";
|
|
user = "jas";
|
|
identityFile = "~/.ssh/id_ed25519";
|
|
};
|
|
"truenas" = {
|
|
hostname = "10.0.0.81";
|
|
user = "admin";
|
|
identityFile = "~/.ssh/id_ed25519";
|
|
};
|
|
};
|
|
|
|
|
|
programs.direnv = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
nix-direnv.enable = true;
|
|
};
|
|
|
|
services.kdeconnect = {
|
|
enable = true;
|
|
indicator = true;
|
|
};
|
|
|
|
xdg.userDirs = {
|
|
enable = true;
|
|
createDirectories = true;
|
|
desktop = "/home/jas/desktop";
|
|
documents = "/home/jas/shared/documents";
|
|
download = "/home/jas/downloads";
|
|
pictures = "/home/jas/shared/pictures";
|
|
publicShare = "/home/jas/shared";
|
|
}
|
|
}
|