Files
dotfiles/flake.nix
2025-12-30 16:35:44 +00:00

155 lines
4.6 KiB
Nix

{
description = "Home Manager configuration of doloro";
inputs = {
# Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
nix-meow.url = "git+https://git.scug.io/nikkuss/nix-meow.git"; # config manager, meow'd
hyprland.url = "github:hyprwm/Hyprland";
rsRPC.url = "github:Doloro1978/rsRPC";
quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs";
};
nikkuss-pkgs = {
url = "git+https://git.scug.io/nikkuss/pkgs";
# inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs = {
# IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
# to have it up-to-date or simply don't specify the nixpkgs input
nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager";
};
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko/latest";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
spicetify-nix = {
url = "github:Gerg-L/spicetify-nix";
};
nix-warez = {
# Blender-bin
url = "github:edolstra/nix-warez?dir=blender";
};
nixpkgs-gamescope = {
url = "github:Nixos/nixpkgs?rev=8fcb6f1c4948305af52d19f887b89011ee2c080d";
};
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
};
outputs =
inputs@{
nixpkgs,
home-manager,
nix-meow,
...
}:
let
overlays = [
# inputs.nikkuss-pkgs.overlays.default
(final: prev: {
arrpc = prev.arrpc.overrideAttrs (preve: rec {
pname = preve.pname + "-meow";
version = "94d3ec81";
patches = [ ./deadlock.patch ];
src = prev.fetchFromGitHub {
owner = "XenHat";
repo = "arrpc";
# branch = "improved-detection-fixes";
rev = "94d3ec81339f94e563af512b83db369596d05d3b";
sha256 = "sha256-DI/HCrmiQo1lPkErCNXOpdQli2wua03PDjdlERrpxTg=";
};
npmDepsHash = prev.lib.fakeHash;
npmDeps = final.fetchNpmDeps {
inherit src;
name = "${pname}-${version}-npm-deps";
hash = "sha256-lw6pngFC2Pnk+I8818TOTwN4r+8IsjvdMYIyTsTi49g=";
};
});
})
(
final: prev:
let
system = prev.stdenv.hostPlatform.system;
pkgs_gamescope = import inputs.nixpkgs-gamescope {
inherit system;
config = {
allow_unfree = true;
};
};
packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/ga/gamescope/package.nix";
in
{
gamescope = pkgs_gamescope.callPackage packageNix { };
}
)
];
utils = nix-meow.lib.setup {
inherit (inputs) home-manager nixpkgs;
inherit inputs;
flakeRoot = ./.;
hostsFolder = ./hosts;
hardwaresFolder = ./hardwares;
modulesFolder = ./modules;
globalConfig = {
allowUnfree = true;
};
globalOverlays = overlays;
defaultUser = "doloro";
};
inherit (utils) mkHost;
configurations = [
(mkHost {
hardware = "doloro";
host = "doloro";
system = "x86_64-linux";
stateVersion = "25.05";
nixpkgsConfig = {
rocmSupport = false;
cudaSupport = true;
};
})
(mkHost {
hardware = "doloro-wsl";
host = "doloro-wsl";
system = "aarch64-linux";
stateVersion = "25.05";
nixpkgsConfig = {
rocmSupport = false;
};
})
(mkHost {
hardware = "doloro-laptop";
host = "doloro-laptop";
system = "x86_64-linux";
stateVersion = "25.11";
nixpkgsConfig = {
rocmSupport = false;
};
})
];
in
(utils.deepMerge configurations);
}