Files
nix-dotfiles/users/alice/home.nix
T

188 lines
3.4 KiB
Nix
Raw Normal View History

2024-05-21 13:40:16 -04:00
{
config,
pkgs,
lib,
machineConfig,
...
}:
2023-12-25 03:39:20 +01:00
2023-12-25 13:25:11 -05:00
{
2025-08-01 00:16:57 -04:00
imports = [
./home/zsh.nix
./home/git.nix
]
++ lib.optionals (!machineConfig.server) [
./home/gammastep.nix
./home/doom
./home/hypr
./home/waybar.nix
./non-server.nix
];
2024-03-24 14:21:28 -04:00
2024-02-05 22:45:43 +01:00
home = {
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
2024-02-05 22:45:43 +01:00
username = "alice";
homeDirectory = "/home/alice";
packages = with pkgs; [
2024-03-28 20:25:14 -04:00
gnumake
2024-06-07 17:29:52 -04:00
python3
poetry
# pre-commit
pre-commit
deadnix
statix
nil
2024-03-28 20:25:14 -04:00
2024-04-16 23:40:12 -04:00
# useful tools
2024-12-26 02:42:56 -05:00
file
2024-12-15 22:12:41 -05:00
sqlite
2024-02-05 22:45:43 +01:00
ncdu
2024-06-22 02:47:01 -04:00
onefetch
hyfetch
2024-04-16 23:40:12 -04:00
smartmontools
wget
2024-04-20 12:20:06 -04:00
glances
2024-09-05 01:30:33 -04:00
onefetch
2024-02-05 22:45:43 +01:00
# Rust packages
2024-04-16 23:40:12 -04:00
bat
2024-02-05 22:45:43 +01:00
cargo-update
diesel-cli
tealdeer
2024-08-08 23:44:36 -04:00
ripunzip
2023-12-25 13:25:11 -05:00
2024-02-05 22:45:43 +01:00
# nix specific packages
2024-04-16 23:40:12 -04:00
nix-output-monitor
nix-prefetch
nix-tree
nh
2025-07-08 01:10:59 -04:00
home-manager
2023-12-25 13:25:11 -05:00
2024-02-05 22:45:43 +01:00
# doom emacs dependencies
fd
ripgrep
2024-07-30 10:45:39 -04:00
pyright
2024-04-16 23:40:12 -04:00
# audit
lynis
2024-04-25 19:15:13 -04:00
# dependencies for nix-dotfiles/hydra-check-action
nodejs_20
2026-04-02 23:50:26 -04:00
prettier
2024-04-25 19:15:13 -04:00
treefmt
2025-04-02 00:18:21 -04:00
gocryptfs
2025-04-09 11:41:02 -04:00
awscli2
2026-05-01 01:17:39 -04:00
claurst
2024-02-05 22:45:43 +01:00
];
};
2023-12-25 13:25:11 -05:00
programs = {
2024-03-24 15:54:50 -04:00
starship.enable = true;
2024-05-17 23:14:52 -04:00
fzf = {
enable = true;
enableZshIntegration = true;
};
2024-05-17 23:14:52 -04:00
2024-05-06 15:31:52 -04:00
direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
2024-05-17 23:14:52 -04:00
eza = {
enable = true;
2024-10-20 19:06:35 -04:00
icons = "auto";
2024-05-17 23:14:52 -04:00
git = true;
};
2024-03-28 02:39:29 -04:00
neovim = {
enable = true;
defaultEditor = true;
vimAlias = true;
vimdiffAlias = true;
extraConfig = ''
set bg=dark
set tabstop=2
set shiftwidth=2
set expandtab
set smartindent
'';
};
2024-03-24 14:21:28 -04:00
nix-index = {
enable = true;
enableZshIntegration = true;
};
2024-03-28 02:39:29 -04:00
tmux.enable = true;
topgrade = {
enable = true;
2024-03-03 18:06:28 -05:00
settings = {
misc = {
disable = [
"system"
"nix"
"shell"
2024-10-22 17:37:30 -04:00
"poetry"
2024-03-03 18:06:28 -05:00
];
};
};
};
2025-08-01 00:40:10 -04:00
fastfetch = {
enable = true;
};
};
2023-12-25 13:25:11 -05:00
2024-03-24 14:21:28 -04:00
services.ssh-agent.enable = true;
2024-03-28 02:39:29 -04:00
# TODO: add environment bs
home.sessionVariables = {
EDITOR = "nvim";
};
2024-04-16 23:25:52 -04:00
xdg = {
enable = true;
userDirs = {
enable = true;
createDirectories = true;
setSessionVariables = true;
2024-04-16 23:25:52 -04:00
extraConfig = {
SCREENSHOTS = "${config.xdg.userDirs.pictures}/Screenshots";
2024-04-16 23:25:52 -04:00
};
};
};
2024-10-20 20:36:35 -04:00
sops = lib.mkIf (!machineConfig.server) {
2024-05-26 19:03:40 -04:00
age.sshKeyPaths = [ "/home/alice/.ssh/id_ed25519_sops" ];
defaultSopsFile = ./secrets.yaml;
secrets."alice/wakatime-api-key".path = "/home/alice/.config/doom/wakatime";
};
2024-10-20 20:59:38 -04:00
nix.gc = {
automatic = true;
2025-09-07 22:25:22 -04:00
dates = "weekly";
2024-10-20 20:59:38 -04:00
options = "--delete-older-than 30d";
};
2023-12-26 02:56:52 +01:00
home.stateVersion = "23.11";
2023-12-25 13:25:11 -05:00
}