refactor(flake-parts): initial flake-parts configuration

This commit is contained in:
ooks-io 2024-05-13 22:50:56 +12:00
parent 8f67be9e68
commit 5603001d65
230 changed files with 380 additions and 717 deletions

237
flake.nix
View file

@ -1,181 +1,104 @@
{
# ooknix
description = "a nix configuration written by an orangutan";
outputs = { flake-parts, nixpkgs, self, ... } @ inputs:
flake-parts.lib.mkFlake {inherit inputs;} ({withSystem, ...}: {
systems = [
"x86_64-linux"
"aarch64-linux"
];
imports = [
./outputs/pkgs
];
flake = {
nixosConfigurations = import ./outputs/nixos {inherit self inputs nixpkgs;};
};
});
# External inputs we depend on
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
## TODO:
## look into nix-super
## IMPLEMENT SECRETS YOU APE (agenix looks best)
# unstable because why not
nixpkgs.url = "github:Nixos/nixpkgs/nixos-unstable";
nixpkgs-small.url = "github:Nixos/nixpkgs/nixos-unstable-small";
home-manager.url = "github:nix-community/home-manager";
# contains more up-to-date wayland related packages
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
# split your flake into... parts?
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
# dotfile configuration
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# nix shell environment on android
nix-on-droid = {
url = "github:nix-community/nix-on-droid/release-23.11";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
hardware.url = "github:nixos/nixos-hardware";
nix-colors.url = "github:misterio77/nix-colors";
ags.url = "github:Aylur/ags";
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
# schizofox = {
# url = "github:schizofox/schizofox";
# inputs.nixpkgs.follows = "nixpkgs";
# };
hyprwm-contrib = {
url = "github:hyprwm/contrib";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland = {
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
hyprlock.url = "github:hyprwm/hyprlock";
xdg-portal-hyprland.url = "github:hyprwm/xdg-desktop-portal-hyprland";
hypridle = {
url = "github:hyprwm/hypridle";
inputs.nixpkgs.follows = "nixpkgs";
};
ooks-scripts = {
url = "github:ooks-io/scripts";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprpaper.url = "github:hyprwm/hyprpaper";
helix = {
url = "github:helix-editor/helix";
inputs.nixpkgs.follows = "nixpkgs";
};
# wrapper for nix rebuild
nh = {
url = "github:viperML/nh";
inputs.nixpkgs.follows = "nixpkgs";
};
anyrun = {
url = "github:Kirottu/anyrun";
# nix language server that berates me for my mistakes
nil = {
url = "github:oxalica/nil";
inputs.nixpkgs.follows = "nixpkgs-small";
};
# colorschemes library
nix-colors.url = "github:misterio77/nix-colors";
# hyprland "ecosystem". hyprDE perhaps?
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
hyprlock.url = "github:hyprwm/hyprlock";
hypridle.url = "github:hyprwm/hypridle";
hyprpaper.url = "github:hyprwm/hyprpaper";
hyprland-contrib.url = "github:hyprwm/contrib";
xdg-portal-hyprland.url = "github:hyprwm/xdg-desktop-portal-hyprland";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
# helix because noun -> verb helps scratches my ape brain in the right spot
helix = {
url = "github:helix-editor/helix";
inputs.nixpkgs.follows = "nixpkgs-small";
};
# packaged firefox addons
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
# zellij status bar
zjstatus.url = "github:dj95/zjstatus";
nixarr = {
url = "github:rasmus-kirk/nixarr";
};
# media server module for hosting my legally purchased linux isos
nixarr.url = "github:rasmus-kirk/nixarr";
nixpkgs-wayland = {
url = "github:nix-community/nixpkgs-wayland";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, nix-on-droid, ... }@inputs:
let
inherit (self) outputs;
lib = nixpkgs.lib // home-manager.lib;
systems = [ "x86_64-linux" "aarch64-linux" ];
forEachSystem = f: lib.genAttrs systems (sys: f pkgsFor.${sys});
pkgsFor = nixpkgs.legacyPackages;
hm = inputs.home-manager.nixosModules.home-manager;
in
{
inherit lib;
overlays = import ./overlays { inherit inputs outputs; };
packages = forEachSystem (pkgs: {
live-buds-cli = pkgs.callPackage ./pkgs/live-buds-cli { };
});
devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
formatter = forEachSystem (pkgs: pkgs.nixpkgs-fmt);
nixosConfigurations = {
# T480s
ookst480s = lib.nixosSystem {
modules = [ ./system/hosts/ookst480s ];
specialArgs = { inherit inputs outputs; };
};
# Main Desktop
ooksdesk = lib.nixosSystem {
modules = [
./system/hosts/ooksdesk
hm
];
specialArgs = { inherit inputs outputs self; };
};
# GPD Micro-PC
ooksmicro = lib.nixosSystem {
modules = [ ./system/hosts/ooksmicro ];
specialArgs = { inherit inputs outputs; };
};
# Media Server/Alternative desktop
ooksmedia = lib.nixosSystem {
modules = [ ./system/hosts/ooksmedia ];
specialArgs = { inherit inputs outputs; };
};
};
homeConfigurations = {
# T480s
"ooks@ookst480s" = lib.homeManagerConfiguration {
modules = [ ./home/user/ooks/ookst480s ];
pkgs = pkgsFor.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
};
# Main Desktop
"ooks@ooksdesk" = lib.homeManagerConfiguration {
modules = [ ./home/user/ooks/ooksdesk ];
pkgs = pkgsFor.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
};
# GPD Micro-PC
"ooks@ooksmicro" = lib.homeManagerConfiguration {
modules = [ ./home/user/ooks/ooksmicro ];
pkgs = pkgsFor.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
};
# Media Server/Alternative desktop
"ooks@ooksmedia" = lib.homeManagerConfiguration {
modules = [ ./home/user/ooks/ooksmedia ];
pkgs = pkgsFor.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
};
};
nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration {
modules = [ ./system/hosts/ooksphone ];
pkgs = import nixpkgs {
system = "aarch64-linux";
};
system = "aarch64-linux";
extraSpecialArgs = { inherit inputs outputs; };
};
# personal scripts repo
ooks-scripts.url = "github:ooks-io/scripts";
};
}