Switching to flake-parts

This commit is contained in:
Joe Frikker
2026-09-16 21:27:37 -04:00
parent 41bd32951d
commit a806ae81bc
11 changed files with 1918 additions and 242 deletions
+33 -137
View File
@@ -22,170 +22,66 @@
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-parts.url = "github:hercules-ci/flake-parts";
};
outputs =
{
inputs@{
self,
nixpkgs,
flake-parts,
home-manager,
claude-code,
nix-index-database,
...
}:
let
modules-for-system =
pkgs:
pkgs.stdenv.mkDerivation {
name = "home-manager-modules";
src = pkgs.lib.fileset.toSource {
root = ./.;
fileset = pkgs.lib.fileset.unions [
./home.org
];
};
buildPhase = ''
runHook preBuild
${pkgs.emacs}/bin/emacs --batch --eval "(require 'org)" --eval '(org-babel-tangle-file "home.org")'
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -R target $out
runHook postInstall
'';
pkgs-for-system =
system:
import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
claude-code.overlays.default
];
};
in
{
homeConfigurations.redbook =
let
pkgs = import nixpkgs {
system = "aarch64-darwin";
config.allowUnfree = true;
};
modules = modules-for-system pkgs;
in
home-manager.lib.homeManagerConfiguration {
inherit pkgs;
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
inputs.home-manager.flakeModules.home-manager
];
flake = {
homeModules.jfrikker = import ./modules/home;
homeConfigurations.redbook = home-manager.lib.homeManagerConfiguration {
pkgs = pkgs-for-system "aarch64-darwin";
modules = [
nix-index-database.homeModules.default
"${modules}"
]
++ [
{
home.stateVersion = "22.05";
home.username = "jfrikker";
home.homeDirectory = "/Users/jfrikker";
home.packages = [ pkgs.pinentry_mac ];
jfrikker.enable = true;
jfrikker.desktop.enable = true;
jfrikker.redbook.enable = true;
}
self.homeModules.jfrikker
(import ./home/redbook.nix)
];
extraSpecialArgs = {
claude-code = claude-code.packages.aarch64-darwin.default;
};
};
homeConfigurations.home =
let
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
};
modules = modules-for-system pkgs;
in
home-manager.lib.homeManagerConfiguration {
inherit pkgs;
homeConfigurations.home = home-manager.lib.homeManagerConfiguration {
pkgs = pkgs-for-system "x86_64-linux";
modules = [
nix-index-database.homeModules.default
"${modules}"
]
++ [
{
home.stateVersion = "22.05";
home.username = "jfrikker";
home.homeDirectory = "/home/jfrikker";
jfrikker.enable = true;
}
self.homeModules.jfrikker
(import ./home/home.nix)
];
extraSpecialArgs = {
claude-code = claude-code.packages.x86_64-linux.default;
};
};
homeConfigurations.home-laptop =
let
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
};
modules = modules-for-system pkgs;
in
home-manager.lib.homeManagerConfiguration {
inherit pkgs;
homeConfigurations.home-laptop = home-manager.lib.homeManagerConfiguration {
pkgs = pkgs-for-system "x86_64-linux";
modules = [
nix-index-database.homeModules.default
"${modules}"
]
++ [
{
home.stateVersion = "22.05";
home.username = "jfrikker";
home.homeDirectory = "/home/jfrikker";
# home.packages = [ pkgs.pinentry ];
jfrikker.enable = true;
jfrikker.desktop.enable = true;
programs.ghostty = {
enable = true;
settings = {
font-family = "Iosevka Term Extended";
font-size = 10;
};
};
programs.foot = {
enable = true;
settings = {
main = {
font = "Iosevka Term:size=10:width=expanded";
};
};
};
home.pointerCursor = {
enable = true;
package = pkgs.vanilla-dmz;
name = "Vanilla-DMZ";
sway.enable = true;
gtk.enable = true;
};
wayland.windowManager.sway = {
enable = true;
config.modifier = "Mod4";
# config.terminal = "${pkgs.ghostty}/bin/ghostty";
config.input = {
"1452:628:bcm5974" = {
scroll_factor = "0.4";
};
};
};
programs.emacs.package = pkgs.emacs-pgtk;
}
self.homeModules.jfrikker
(import ./home/home-laptop.nix)
];
# extraSpecialArgs = { kube = kube.packages.x86_64-linux.default; };
extraSpecialArgs = {
claude-code = claude-code.packages.x86_64-linux.default;
};
};
packages.x86_64-linux.default = modules-for-system nixpkgs.legacyPackages.x86_64-linux;
packages.aarch64-darwin.default = modules-for-system nixpkgs.legacyPackages.aarch64-darwin;
};
};
}