1
0
Fork 0
nix-system-configurations/home-manager/base.nix
2025-08-14 13:12:06 -05:00

130 lines
2.6 KiB
Nix

# SPDX-FileCopyrightText: 2025 Ethan Reece <contact@ethanreece.com>
#
# SPDX-License-Identifier: MIT
# TODO: Add `gitui`, `opencode`
{
config,
inputs,
pkgs,
...
}:
{
imports = [
inputs.catppuccin.homeModules.catppuccin
inputs.lix-module.nixosModules.default
inputs.stylix.homeModules.stylix
./ai.nix
./shell.nix
];
# https://nix-community.github.io/stylix/options/modules/alacritty.html
stylix = (import ../stylix { inherit config pkgs; }) // {
targets = {
kitty.variant256Colors = true;
bat.enable = false;
fzf.enable = false;
helix.enable = false;
starship.enable = false;
};
};
# https://nix.catppuccin.com/search/rolling/
catppuccin = {
enable = true;
flavor = "mocha";
};
home = {
stateVersion = "24.11";
language.base = "eo.utf8";
packages = [
pkgs.bzip3
# pkgs.cacert - TODO: should be used on NixOS
pkgs.curl
pkgs.e2fsprogs
pkgs.file
pkgs.gzip
pkgs.gnutar
# pkgs.languagetool - TODO: should be used on NixOS
pkgs.lsof
pkgs.mailutils
pkgs.ncdu
# pkgs.ncurses
pkgs.nixd
pkgs.pijul
pkgs.procps # TODO: switch to uutils when available
pkgs.procs
pkgs.speedtest-cli
# pkgs.sudo-rs - TODO: should be used on NixOS
pkgs.tcpdump
pkgs.trash-cli
pkgs.util-linux # TODO: switch to uutils when available
pkgs.uutils-coreutils-noprefix
pkgs.uutils-diffutils
pkgs.uutils-findutils
pkgs.wget
pkgs.xz
];
file = { };
sessionVariables = {
EDITOR = "hx";
};
};
programs = {
home-manager = {
enable = true;
};
bat = {
enable = true;
};
man = {
enable = true;
};
vim = {
enable = true;
};
# TODO: Disable Guix integration
# password-store = {
# enable = true;
# };
helix = {
enable = true;
defaultEditor = true;
settings = {
editor.soft-wrap = {
enable = true;
};
};
};
git = {
enable = true;
delta = {
enable = true;
};
signing = {
format = "openpgp";
signByDefault = true;
};
userEmail = "contact@ethanreece.com";
userName = "Ethan Reece";
};
gh = {
enable = true;
settings = {
git_protocol = "ssh";
};
};
jujutsu = {
enable = true;
settings = {
user = {
name = "Ethan Reece";
email = "contact@ethanreece.com";
};
signing = {
behavior = "own";
backend = "gpg";
};
};
};
};
}