Files
alt-illogical-impulse/flake.nix
T
Celes Renata 22b65891ac Unbitch flake.nix - extract shell scripts to separate files
- Moved all inline shell scripts to packages/scripts/
- Created packages/default.nix for clean package definitions
- Reduced flake.nix from 400+ lines to ~80 lines
- Maintained all functionality while improving maintainability
- All builds and checks still pass
2025-08-08 22:13:46 -07:00

104 lines
2.9 KiB
Nix

{
description = "NixOS adaptation of end-4's dots-hyprland using installer replication";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
quickshell.url = "github:outfoxxed/quickshell";
dots-hyprland = {
url = "github:celesrenata/dots-hyprland/installer-replication";
flake = false;
};
};
outputs = { self, nixpkgs, home-manager, quickshell, dots-hyprland, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [ self.overlays.default ];
};
# Import our utility packages
utilityPackages = import ./packages { inherit pkgs; };
in
{
overlays.default = final: prev: {
quickshell = quickshell.packages.${system}.default;
};
packages.${system} = utilityPackages // {
default = utilityPackages.update-flake;
};
devShells.${system}.default = pkgs.mkShell {
buildInputs = with pkgs; [
nixpkgs-fmt
nil
git
jq
] ++ (with utilityPackages; [
update-flake
test-python-env
test-quickshell
compare-modes
]);
shellHook = builtins.readFile ./packages/scripts/dev-shell-hook.sh;
};
homeManagerModules.default = import ./modules/home-manager.nix;
homeManagerModules.dots-hyprland = self.homeManagerModules.default;
homeConfigurations = {
declarative = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
self.homeManagerModules.default
{
home.username = "celes";
home.homeDirectory = "/home/celes";
home.stateVersion = "24.05";
programs.dots-hyprland = {
enable = true;
source = dots-hyprland;
packageSet = "essential";
mode = "declarative";
};
}
];
};
writable = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
self.homeManagerModules.default
{
home.username = "celes";
home.homeDirectory = "/home/celes";
home.stateVersion = "24.05";
programs.dots-hyprland = {
enable = true;
source = dots-hyprland;
packageSet = "essential";
mode = "writable";
writable = {
stagingDir = ".configstaging";
setupScript = "initialSetup.sh";
backupExisting = true;
};
};
}
];
};
example = self.homeConfigurations.declarative;
};
};
}