WIP: Integration branch with darwin and deck support

- Added darwin and jovian inputs
- Added platform-specific package configurations
- Added darwinConfigurations and deck nixosConfiguration
- Copied darwin and deck specific files
- Fixed darwin version compatibility

Some configurations still need debugging
This commit is contained in:
Anish Lakhwara
2025-09-12 14:26:38 -07:00
parent 01c65f54af
commit 2ca6feff4d
43 changed files with 2114 additions and 164 deletions
+130 -1
View File
@@ -38,6 +38,33 @@
# Matrix
nix-matrix-appservices.url = "gitlab:coffeetables/nix-matrix-appservices";
# Darwin
darwin = {
url = "github:LnL7/nix-darwin/nix-darwin-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-homebrew = {
url = "github:zhaofengli-wip/nix-homebrew";
};
homebrew-bundle = {
url = "github:homebrew/homebrew-bundle";
flake = false;
};
homebrew-core = {
url = "github:homebrew/homebrew-core";
flake = false;
};
homebrew-cask = {
url = "github:homebrew/homebrew-cask";
flake = false;
};
# Steam Deck / Gaming
jovian = {
url = "github:Jovian-Experiments/Jovian-NixOS";
inputs.nixpkgs.follows = "unstable";
};
# Others
nur.url = "github:nix-community/NUR";
rust-overlay = {
@@ -57,7 +84,8 @@
outputs = { self, nixpkgs, unstable, nixos-hardware, home-manager, deploy-rs
, agenix, disko, basant, grasp, nix-matrix-appservices, nur, tidalcycles
, rust-overlay, vimwikicli, ... }@inputs:
, rust-overlay, vimwikicli, darwin, nix-homebrew, homebrew-bundle
, homebrew-core, homebrew-cask, jovian, ... }@inputs:
let
forAllSystems = nixpkgs.lib.genAttrs [
"aarch64-linux"
@@ -118,6 +146,65 @@
tidalcycles.overlays.default # needed for nvim which comes pre-installed lol
];
});
# Package set for Darwin systems
darwinPkgsFor = forAllSystems (system:
import nixpkgs {
inherit system;
config = {
permittedInsecurePackages = [
"olm-3.2.16"
];
allowUnfreePredicate = pkg:
builtins.elem (nixpkgs.lib.getName pkg) [
"ripcord"
"vcv-rack"
"SunVox"
"renoise"
];
};
overlays = [
rust-overlay.overlays.default
tidalcycles.overlays.default
agenix.overlays.default
nur.overlay
unstableOverlay
vimwikiOverlay
self.overlays.additions
self.overlays.modifications
];
});
# Package set for Steam Deck (gaming-focused)
deckPkgsFor = forAllSystems (system:
import unstable {
inherit system;
config = {
permittedInsecurePackages = [
"olm-3.2.16"
];
allowUnfreePredicate = pkg:
builtins.elem (nixpkgs.lib.getName pkg) [
"ripcord"
"vcv-rack"
"SunVox"
"renoise"
"steam"
"steam-original"
"steam-runtime"
];
};
overlays = [
rust-overlay.overlays.default
tidalcycles.overlays.default
agenix.overlays.default
nur.overlay
unstableOverlay
vimwikiOverlay
self.overlays.additions
self.overlays.modifications
];
});
in {
# Your custom packages
# Acessible through 'nix build', 'nix shell', etc
@@ -224,6 +311,48 @@
}
];
};
deck = unstable.lib.nixosSystem rec {
specialArgs = { inherit inputs self; };
system = "x86_64-linux";
pkgs = deckPkgsFor.${system};
modules = [
./hosts/deck
jovian.nixosModules.default
self.nixosModules.wireguard
agenix.nixosModules.age
self.nixosModules.backup
home-manager.nixosModules.home-manager
{
nix.registry.nixpkgs.flake = unstable;
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.anish = import ./home/gui;
}
];
};
};
# Darwin configuration entrypoint
darwinConfigurations = {
"Anishs-MacBook-Pro" = darwin.lib.darwinSystem rec {
system = "aarch64-darwin";
pkgs = darwinPkgsFor.${system};
specialArgs = { inherit inputs self; };
modules = [
./hosts/darwin
home-manager.darwinModules.home-manager
agenix.darwinModules.default
{
users.users.anishlakhwara.home = "/Users/anishlakhwara";
home-manager = {
users.anishlakhwara = import ./home/darwin;
useGlobalPkgs = true;
useUserPackages = true;
};
}
];
};
};
# Standalone home-manager configuration entrypoint