104 lines
2.3 KiB
Nix

{
description = "My nixOS flake for home-manager";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
niri = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
binsider = {
url = "github:orhun/binsider";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser = {
url = "github:MarceColl/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
# sources to patch protontricks as it doesn't work with latest steam beta
# https://github.com/Matoking/protontricks/issues/304#issuecomment-2280920826
protontricks = {
url = "github:Matoking/protontricks/appinfo_v29";
flake = false;
};
vdf-patch = {
url = "github:Matoking/vdf/support_new_bvdf";
flake = false;
};
firefox-mod-theme = {
url = "github:datguypiko/Firefox-Mod-Blur";
flake = false;
};
};
outputs =
{
self,
nixpkgs,
home-manager,
niri,
rust-overlay,
agenix,
...
}@inputs:
let
username = "primary";
homeDirectory = "/home/${username}";
hostname = nixpkgs.lib.strings.removeSuffix "\n" (builtins.readFile /etc/hostname);
pkgs = import nixpkgs { };
in
{
homeConfigurations.${username} = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs username homeDirectory;
};
modules = [
./system-${hostname}.nix
niri.homeModules.config
agenix.homeManagerModules.age
# add declarative rust modules
(
{ pkgs, ... }:
{
nixpkgs.overlays = [
rust-overlay.overlays.default
niri.overlays.niri
];
# home-manager stuff
home = {
inherit username homeDirectory;
};
}
)
];
};
};
}