1
Fork 0
satellite/home/global.nix

96 lines
2.9 KiB
Nix
Raw Normal View History

{ inputs, lib, config, outputs, ... }:
2023-01-10 02:38:06 +01:00
let
2023-05-28 02:00:10 +02:00
# {{{ Imports
2023-01-10 02:38:06 +01:00
imports = [
2023-12-10 23:48:46 +01:00
# {{{ flake inputs
2023-03-12 05:24:25 +01:00
inputs.stylix.homeManagerModules.stylix
inputs.nur.nixosModules.nur
2023-04-27 01:08:20 +02:00
inputs.impermanence.nixosModules.home-manager.impermanence
inputs.spicetify-nix.homeManagerModules.spicetify
inputs.anyrun.homeManagerModules.default
2023-12-10 23:48:46 +01:00
inputs.nix-index-database.hmModules.nix-index
2024-01-31 20:03:00 +01:00
inputs.sops-nix.homeManagerModules.sops
2023-01-10 02:38:06 +01:00
2023-12-10 23:48:46 +01:00
# {{{ self management
2023-09-04 04:58:39 +02:00
# NOTE: using `pkgs.system` before `module.options` is evaluated
# leads to infinite recursion!
inputs.intray.homeManagerModules.x86_64-linux.default
inputs.smos.homeManagerModules.x86_64-linux.default
2023-12-10 23:48:46 +01:00
# }}}
# }}}
# {{{ global configuration
2023-12-02 00:46:56 +01:00
./features/cli
./features/persistence.nix
../common
2023-12-10 23:48:46 +01:00
# }}}
2023-01-10 02:38:06 +01:00
];
2023-05-28 02:00:10 +02:00
# }}}
2023-01-10 02:38:06 +01:00
in
{
# Import all modules defined in modules/home-manager
imports = builtins.attrValues outputs.homeManagerModules ++ imports;
2023-01-10 02:38:06 +01:00
2023-05-28 02:00:10 +02:00
# {{{ Nixpkgs
2023-01-10 02:38:06 +01:00
nixpkgs = {
# Add all overlays defined in the overlays directory
2023-12-10 23:48:46 +01:00
overlays = builtins.attrValues outputs.overlays ++
lib.lists.optional
config.satellite.toggles.neovim-nightly.enable
inputs.neovim-nightly-overlay.overlay;
2023-01-10 02:38:06 +01:00
2023-12-10 23:48:46 +01:00
config.allowUnfree = true;
2023-01-10 02:38:06 +01:00
};
2023-05-28 02:00:10 +02:00
# }}}
2023-12-10 23:48:46 +01:00
# {{{ Enable the home-manager and git clis
2023-01-10 02:38:06 +01:00
programs = {
home-manager.enable = true;
git.enable = true;
};
2023-12-10 23:48:46 +01:00
# }}}
# {{{ Set reasonable defaults for some settings
2023-01-10 02:38:06 +01:00
home = {
username = lib.mkDefault "adrielus";
homeDirectory = lib.mkDefault "/home/${config.home.username}";
2023-06-15 20:08:20 +02:00
stateVersion = lib.mkDefault "23.05";
2023-01-10 02:38:06 +01:00
};
2023-12-10 23:48:46 +01:00
# }}}
# {{{ Ad-hoc settings
# Nicely reload system units when changing configs
systemd.user.startServices = lib.mkForce "sd-switch";
2024-01-31 20:03:00 +01:00
# Tell sops-nix to use ssh keys for decrypting secrets
sops.age.sshKeyPaths = [ "${config.home.homeDirectory}/.ssh/id_ed25519" ];
2023-04-27 01:08:20 +02:00
# By default the paths given by sops contain annoying %r sections
sops.defaultSymlinkPath = "${config.home.homeDirectory}/.nix-sops";
2023-04-27 01:08:20 +02:00
# Allow root to read persistent files from this user.
home.persistence."/persist/home/adrielus".allowOther = true;
2023-12-10 23:48:46 +01:00
# {{{ Ad-hoc stylix targets
stylix.targets.xresources.enable = true;
# }}}
# }}}
# {{{ Xdg user directories
2023-04-27 01:08:20 +02:00
# Set the xdg env vars
xdg.enable = true;
2023-05-24 03:17:09 +02:00
xdg.userDirs = {
enable = lib.mkDefault true;
2023-06-09 13:17:34 +02:00
createDirectories = lib.mkDefault false;
desktop = null;
templates = null;
download = "${config.home.homeDirectory}/downloads";
publicShare = "${config.home.homeDirectory}/public";
music = "${config.home.homeDirectory}/media/music";
pictures = "${config.home.homeDirectory}/media/pictures";
videos = "${config.home.homeDirectory}/media/videos";
documents = "${config.home.homeDirectory}/media/documents";
extraConfig.XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/screenshots";
extraConfig.XDG_PROJECTS_DIR = "${config.home.homeDirectory}/projects";
2023-05-24 03:17:09 +02:00
};
2023-05-28 02:00:10 +02:00
# }}}
2023-01-10 02:38:06 +01:00
}