Some checks are pending
quality / changes (push) Waiting to run
quality / Nix Format Check (push) Blocked by required conditions
quality / Deadnix Check (push) Blocked by required conditions
quality / Statix Check (push) Blocked by required conditions
quality / Lua Format Check (push) Blocked by required conditions
quality / Lua Lint Check (push) Blocked by required conditions
quality / Prettier Format Check (push) Blocked by required conditions
169 lines
4.3 KiB
Nix
169 lines
4.3 KiB
Nix
{
|
|
description = "Barrett Ruth's Nix Configuration";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
|
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
|
claude-code.url = "github:ryoppippi/claude-code-overlay";
|
|
neovim-nightly.url = "github:nix-community/neovim-nightly-overlay";
|
|
disko = {
|
|
url = "github:nix-community/disko";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
nixpkgs,
|
|
home-manager,
|
|
nixos-hardware,
|
|
zen-browser,
|
|
claude-code,
|
|
neovim-nightly,
|
|
disko,
|
|
...
|
|
}:
|
|
let
|
|
overlays = [
|
|
claude-code.overlays.default
|
|
neovim-nightly.overlays.default
|
|
];
|
|
|
|
sharedUnfree = [
|
|
"slack"
|
|
"claude-code"
|
|
"claude"
|
|
"apple_cursor"
|
|
"graphite-cli"
|
|
];
|
|
|
|
mkPkgs =
|
|
system: extraUnfree:
|
|
import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfreePredicate =
|
|
pkg: builtins.elem (nixpkgs.lib.getName pkg) (sharedUnfree ++ extraUnfree);
|
|
inherit overlays;
|
|
};
|
|
|
|
xps15Config = {
|
|
isNixOS = true;
|
|
isLinux = true;
|
|
isDarwin = false;
|
|
gpu = "nvidia";
|
|
backlightDevice = "intel_backlight";
|
|
platform = "x86_64-linux";
|
|
};
|
|
|
|
macConfig = {
|
|
isNixOS = false;
|
|
isLinux = false;
|
|
isDarwin = true;
|
|
gpu = "apple";
|
|
backlightDevice = null;
|
|
platform = "aarch64-darwin";
|
|
};
|
|
|
|
macWorkConfig = {
|
|
isNixOS = false;
|
|
isLinux = false;
|
|
isDarwin = true;
|
|
gpu = "apple";
|
|
backlightDevice = null;
|
|
platform = "aarch64-darwin";
|
|
};
|
|
|
|
linuxWorkConfig = {
|
|
isNixOS = false;
|
|
isLinux = true;
|
|
isDarwin = false;
|
|
gpu = null;
|
|
backlightDevice = null;
|
|
platform = "x86_64-linux";
|
|
};
|
|
|
|
mkHome =
|
|
hostConfig:
|
|
home-manager.lib.homeManagerConfiguration {
|
|
pkgs = mkPkgs hostConfig.platform [ ];
|
|
extraSpecialArgs = {
|
|
inherit zen-browser hostConfig;
|
|
};
|
|
modules = [ ./home/home.nix ];
|
|
};
|
|
in
|
|
{
|
|
formatter.x86_64-linux = (mkPkgs "x86_64-linux" [ ]).nixfmt-tree;
|
|
|
|
devShells.x86_64-linux.default =
|
|
let
|
|
pkgs = mkPkgs "x86_64-linux" [ ];
|
|
in
|
|
pkgs.mkShell {
|
|
packages = [
|
|
pkgs.deadnix
|
|
pkgs.statix
|
|
pkgs.nixfmt
|
|
pkgs.pre-commit
|
|
pkgs.nodePackages.prettier
|
|
pkgs.shfmt
|
|
pkgs.stylua
|
|
pkgs.selene
|
|
];
|
|
};
|
|
|
|
nixosConfigurations.xps15 = nixpkgs.lib.nixosSystem {
|
|
modules = [
|
|
nixos-hardware.nixosModules.dell-xps-15-9500-nvidia
|
|
./hosts/xps15/configuration.nix
|
|
{
|
|
nixpkgs.hostPlatform = "x86_64-linux";
|
|
nixpkgs.overlays = overlays;
|
|
nixpkgs.config.allowUnfreePredicate =
|
|
pkg:
|
|
builtins.elem (nixpkgs.lib.getName pkg) (
|
|
sharedUnfree
|
|
++ [
|
|
"nvidia-x11"
|
|
"nvidia-settings"
|
|
"tailscale"
|
|
"libfprint-2-tod1-goodix"
|
|
"brgenml1lpr"
|
|
"cuda_cccl"
|
|
"cuda_cudart"
|
|
"libcublas"
|
|
"cuda_nvcc"
|
|
]
|
|
);
|
|
}
|
|
home-manager.nixosModules.home-manager
|
|
{
|
|
home-manager.useGlobalPkgs = true;
|
|
home-manager.useUserPackages = true;
|
|
home-manager.backupFileExtension = "bak";
|
|
home-manager.users.barrett = import ./home/home.nix;
|
|
home-manager.extraSpecialArgs = {
|
|
inherit zen-browser;
|
|
hostConfig = xps15Config;
|
|
};
|
|
}
|
|
];
|
|
specialArgs = {
|
|
inherit nixpkgs;
|
|
};
|
|
};
|
|
|
|
nixosConfigurations.netcup = nixpkgs.lib.nixosSystem {
|
|
modules = [
|
|
disko.nixosModules.disko
|
|
./hosts/netcup/configuration.nix
|
|
{ nixpkgs.hostPlatform = "x86_64-linux"; }
|
|
];
|
|
};
|
|
};
|
|
}
|