nix: expose shared home manager configuration via homeModules

This commit is contained in:
Primrose 2024-07-12 23:22:09 +02:00
parent 5155bd69e8
commit 5b95c43559
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
47 changed files with 45 additions and 29 deletions

View file

@ -0,0 +1,86 @@
{
pkgs,
config,
lib,
...
}:
let
inherit (pkgs) myPkgs;
in
{
options.extra = {
utilities.enable = lib.mkOption { default = false; };
workflow.enable = lib.mkOption { default = false; };
university.enable = lib.mkOption { default = false; };
};
config = {
programs.home-manager.enable = true;
home = {
username = lib.mkDefault "leana";
homeDirectory = lib.mkDefault (
lib.mkMerge [
(lib.mkIf pkgs.stdenv.isLinux "/home/leana")
(lib.mkIf pkgs.stdenv.isDarwin "/Users/leana")
]
);
stateVersion = "24.05";
};
programs.ripgrep.enable = true;
home.packages = lib.mkMerge [
[
# shell and script dependencies
pkgs.figlet
pkgs.gnused
pkgs.stow
pkgs.fd
pkgs.vivid
pkgs.rsync
# nix
pkgs.nixfmt-rfc-style
# utils
pkgs.tree
pkgs.tldr
pkgs.parallel
pkgs.findutils # xargs and more
pkgs.du-dust
]
(lib.mkIf pkgs.stdenv.isDarwin [
# coreutils
pkgs.uutils-coreutils-noprefix
])
(lib.mkIf config.extra.utilities.enable [
pkgs.jq
pkgs.hyperfine
pkgs.watchexec
pkgs.onefetch
pkgs.ghostscript
myPkgs.tokei
pkgs.gnumake
pkgs.just
pkgs.nurl
pkgs.tea
pkgs.agenix
])
(lib.mkIf config.extra.workflow.enable [
pkgs.act
pkgs.forgejo-actions-runner
])
(lib.mkIf config.extra.university.enable [
pkgs.rars
myPkgs.logisim-evolution
myPkgs.necrolib
myPkgs.why3
])
];
};
}