Jafner.net/dotfiles/flake.nix

129 lines
3.7 KiB
Nix

{
description = "Joey's Flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
hyprland = {
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
home-manager = {
url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
nixgl.url = "github:nix-community/nixGL";
nix-flatpak.url = "github:gmodena/nix-flatpak";
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-conf-editor = {
url = "github:snowfallorg/nixos-conf-editor";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
deploy-rs.url = "github:serokell/deploy-rs";
nix-ecuflash.url = "github:Jafner/Jafner.net?dir=projects/nix-ecuflash";
};
outputs = inputs@{
nixpkgs,
nixpkgs-unstable,
home-manager,
nixgl,
...
}:
let
vars = {
user = {
username = "joey";
realname = "Joey Hafner";
email = "joey@jafner.net";
};
laptop = {
hostname = "joey-laptop";
theme = "gruvbox-warm";
};
desktop = {
hostname = "joey-desktop";
};
};
system = "x86_64-linux";
lib = nixpkgs.lib;
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [ nixgl.overlay ];
config = { allowUnfreePredicate = (_: true); };
};
pkgs-unstable = import nixpkgs-unstable {
inherit system;
overlays = [ nixgl.overlay ];
config = { allowUnfreePredicate = (_: true); };
};
in {
nixosConfigurations = {
laptop = lib.nixosSystem {
modules = [
./nixos/laptop/configuration.nix
inputs.hyprland.nixosModules.default
#inputs.stylix.nixosModules.stylix
inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.home-manager.nixosModules.home-manager
{
home-manager = {
users.joey = import ./home-manager/laptop/home.nix;
sharedModules = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.stylix.homeManagerModules.stylix
];
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
};
}
];
inherit system;
specialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
};
homeConfigurations = {
laptop = home-manager.lib.homeManagerConfiguration {
modules = [
./home-manager/laptop/home.nix
inputs.stylix.homeManagerModules.stylix
inputs.plasma-manager.homeManagerModules.plasma-manager
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
inherit pkgs;
extraSpecialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
desktop = home-manager.lib.homeManagerConfiguration {
modules = [
./home-manager/desktop/home.nix
inputs.sops-nix.homeManagerModules.sops
inputs.stylix.homeManagerModules.stylix
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.plasma-manager.homeManagerModules.plasma-manager
];
inherit pkgs;
extraSpecialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
};
};
}