marleyos/flake.nix

154 lines
3.8 KiB
Nix

{
description = "marleyOS";
outputs = inputs:
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
imports = [inputs.easy-hosts.flakeModule];
systems = [
"x86_64-nixos"
"aarch64-darwin"
];
### Nixpkgs Config ###
perSystem = {system, ...}: {
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
config = {
allowUnfree = true;
};
overlays = with inputs; [
lix.overlays.default
nur.overlays.default
agenix.overlays.default
niri-flake.overlays.niri
(import ./overlays/ddclient.nix)
(import ./overlays/firefox-addons {
inherit (inputs.nixpkgs) lib;
inherit inputs;
})
(import ./overlays/jetbrains.nix {inherit inputs;})
(import ./overlays/maple-mono-NF.nix)
(import ./overlays/marleyvim.nix {inherit inputs;})
(import ./overlays/wezterm.nix {inherit inputs;})
# Custom packages
(import ./overlays/marleyos.nix)
];
};
};
easyHosts = {
### Module Imports ###
shared.modules = with inputs; [
lix.nixosModules.default
agenix.nixosModules.default
{
home-manager.sharedModules = [
nixcord.homeModules.nixcord
];
}
];
perClass = class: {
modules = with inputs;
(nixpkgs.lib.optionals (class == "nixos") [
home-manager.nixosModules.home-manager
agenix.nixosModules.default
stylix.nixosModules.default
niri-flake.nixosModules.niri
])
++ (nixpkgs.lib.optionals (class == "darwin") [
home-manager.darwinModules.home-manager
agenix.darwinModules.default
]);
};
hosts = {
### Desktop ###
nyx = {
arch = "x86_64";
class = "nixos";
};
### Macbook Air ###
mairley = {
arch = "aarch64";
class = "darwin";
nixpkgs = inputs.nixpkgs-darwin;
};
### Servers ###
marleycentre = {
arch = "x86_64";
class = "nixos";
};
marleynet = {
arch = "x86_64";
class = "nixos";
};
};
};
};
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-24.11-darwin";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
lix = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
easy-hosts.url = "github:tgirlcloud/easy-hosts";
darwin = {
url = "github:LnL7/nix-darwin/nix-darwin-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix = {
url = "github:ryantm/agenix";
inputs = {
nixpkgs.follows = "nixpkgs";
darwin.follows = "darwin";
home-manager.follows = "home-manager";
};
};
stylix.url = "github:danth/stylix/release-24.11";
niri-flake.url = "github:sodiboo/niri-flake";
wezterm = {
url = "github:wez/wezterm?dir=nix";
inputs.nixpkgs.follows = "nixpkgs";
};
marleyvim.url = "git+https://codewith.babesonthe.net/punkfairie/marleyvim";
nixcord.url = "github:kaylorben/nixcord";
};
}