58 lines
1.4 KiB
Nix
58 lines
1.4 KiB
Nix
{
|
|
config,
|
|
osConfig ? null,
|
|
inputs,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
mkDefaultSharedAttrs =
|
|
base: defaults: lib.mapAttrs (_: v: lib.mkDefault v) (lib.filterAttrs (k: _: base ? ${k}) defaults);
|
|
in
|
|
{
|
|
imports = [
|
|
./git.nix
|
|
./fish.nix
|
|
./nixvim
|
|
./hyprland.nix
|
|
./kitty.nix
|
|
./rofi
|
|
];
|
|
|
|
kekleo = lib.mkIf (osConfig != null) (mkDefaultSharedAttrs config.kekleo (osConfig.kekleo or { }));
|
|
|
|
nix =
|
|
let
|
|
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
|
|
in
|
|
lib.mkDefault {
|
|
package = pkgs.nix;
|
|
|
|
settings = {
|
|
experimental-features = osConfig.nix.settings.experimental-features or "nix-command flakes";
|
|
# Opinionated: disable global registry
|
|
flake-registry = "";
|
|
};
|
|
|
|
# Opinionated: make flake registry and nix path match flake inputs
|
|
registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs;
|
|
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
|
|
};
|
|
|
|
home.sessionVariables = {
|
|
XDG_CACHE_HOME = "$HOME/.cache";
|
|
XDG_CONFIG_HOME = "$HOME/.config";
|
|
XDG_DATA_HOME = "$HOME/.local/share";
|
|
XDG_STATE_HOME = "$HOME/.local/state";
|
|
};
|
|
|
|
programs.home-manager.enable = true;
|
|
|
|
# Nicely reload system units when changing configs
|
|
systemd.user.startServices = "sd-switch";
|
|
|
|
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
|
home.stateVersion = "25.11";
|
|
}
|