2024-05-21 13:40:16 -04:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
machineConfig,
|
|
|
|
...
|
|
|
|
}:
|
2023-12-25 13:25:11 -05:00
|
|
|
|
2023-12-25 03:39:20 +01:00
|
|
|
{
|
2024-05-28 17:28:22 -04:00
|
|
|
imports =
|
|
|
|
[
|
|
|
|
./home/zsh.nix
|
|
|
|
./home/git.nix
|
|
|
|
]
|
|
|
|
++ lib.optionals (!machineConfig.server) [
|
2024-06-07 17:36:38 -04:00
|
|
|
./home/gammastep.nix
|
|
|
|
./home/doom
|
2024-05-28 17:28:22 -04:00
|
|
|
./home/hypr
|
|
|
|
./non-server.nix
|
|
|
|
];
|
2024-03-24 14:21:28 -04:00
|
|
|
|
2024-02-05 22:45:43 +01:00
|
|
|
home = {
|
2024-01-03 16:08:16 -05:00
|
|
|
# # 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
|
2024-07-23 11:38:21 -04:00
|
|
|
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-04-16 23:40:12 -04:00
|
|
|
neofetch
|
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-01-08 19:11:33 -05:00
|
|
|
|
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
|
|
|
|
helix
|
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
|
2024-05-28 17:28:22 -04:00
|
|
|
nh
|
2025-03-03 10:31:53 -05:00
|
|
|
nix-prefetch-scripts
|
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
|
|
|
ruff-lsp
|
|
|
|
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
|
|
|
|
nodePackages.prettier
|
|
|
|
treefmt
|
2025-03-03 10:31:53 -05:00
|
|
|
|
2024-02-05 22:45:43 +01:00
|
|
|
];
|
|
|
|
};
|
2023-12-25 13:25:11 -05:00
|
|
|
|
2024-01-03 16:08:16 -05:00
|
|
|
programs = {
|
2024-03-24 15:54:50 -04:00
|
|
|
|
2024-01-03 16:08:16 -05:00
|
|
|
starship.enable = true;
|
2024-05-17 23:14:52 -04:00
|
|
|
|
2024-01-03 16:08:16 -05: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-01-08 19:11:33 -05:00
|
|
|
|
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;
|
2024-01-08 19:11:33 -05:00
|
|
|
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
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
2024-01-08 19:11:33 -05:00
|
|
|
};
|
2024-01-03 16:08:16 -05:00
|
|
|
};
|
2023-12-25 03:39:20 +01: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;
|
|
|
|
extraConfig = {
|
|
|
|
XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
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" ];
|
2024-05-21 01:01:07 -04:00
|
|
|
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;
|
2024-10-20 23:19:44 -04:00
|
|
|
frequency = "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
|
|
|
}
|