nix/hosts/nxs/home.nix

125 lines
2.2 KiB
Nix

{ config, lib, pkgs, inputs, ... }:
{
imports = [
inputs.nixvim.homeManagerModules.nixvim
../../modules/home/i3.nix
../../modules/home/i3blocks.nix
../../modules/home/neovim
../../modules/home/fish.nix
../../modules/home/tmux.nix
];
# Home Manager settings
home = {
username = "narrator";
homeDirectory = "/home/narrator";
stateVersion = "26.05";
packages = with pkgs; [
kitty
spotify
aider-chat
distrobox
ssh-to-age
pinentry-curses
cryptsetup
grc
nix-prefetch-github
gemini-cli
gh-copilot
picard
chromaprint
xorg.xmodmap
pavucontrol
mumble
kiwix
kiwix-tools
aria2
git
nicotine-plus
sl
firefox
i3blocks
strawberry
iproute2
gawk
inetutils
gnugrep
wireplumber
lm_sensors
btop
flameshot
xclip
psmisc
dmenu
picom
telegram-desktop
feh
alacritty
i3
lsd
polybar
tmux
zoxide
fortune
nixpkgs-fmt
rofi
pipewire
lshw
age
notepad-next
];
};
programs = {
home-manager.enable = true;
copilot-cli.enable = true;
direnv = {
enable = true;
nix-direnv.enable = true;
};
ssh = {
enable = true;
forwardAgent = true;
addKeysToAgent = "yes";
matchBlocks = {
"git.unime.it" = {
hostname = "git.unime.it";
port = 42000;
};
};
extraConfig = ''
Host git.nonaxiomatic.systems
ControlMaster no
'';
};
};
services.gpg-agent = {
enable = true;
defaultCacheTtl = 28800;
defaultCacheTtlSsh = 28800;
sshKeys = [ ];
};
let
staticDir = ../../static;
staticEntries = builtins.readDir staticDir;
# filter only directories
dirNames = builtins.attrNames
(lib.attrsets.filterAttrs (_name: type: type == "directory") staticEntries);
in {
xdg.configFile =
builtins.listToAttrs (map
(name: {
name = name; # becomes ~/.config/${name}
value = {
source = "${staticDir}/${name}";
recursive = true;
};
})
dirNames);
}