{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-23.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs-master.url = "github:nixos/nixpkgs?ref=master"; home-manager.url = "github:nix-community/home-manager/release-23.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-master, home-manager, ... }@inputs: let inherit (self) outputs; lib = nixpkgs.lib // home-manager.lib; system = "x86_64-linux"; makePkgs = repo: import repo { inherit system; config.allowUnfree = true; }; pkgs = makePkgs nixpkgs; pkgsU = makePkgs nixpkgs-unstable; pkgsM = makePkgs nixpkgs-master; in { inherit lib pkgs; formatter = pkgs.alejandra; nixosConfigurations = { workstation = lib.nixosSystem { inherit system; modules = [ # lix-module.nixosModules.default ./hosts/workstation/configuration.nix ({ pkgs, ... }: { nixpkgs.overlays = [ (self: super: { gnome = super.gnome.overrideScope' (gFinal: gPrev: { nautilus = gPrev.nautilus.overrideAttrs (nsuper: { buildInputs = nsuper.buildInputs ++ (with pkgs.gst_all_1; [ gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-plugins-base ]); }); mutter = gPrev.mutter.overrideAttrs (old: { src = super.pkgs.fetchgit { url = "https://gitlab.gnome.org/vanvugt/mutter.git"; # GNOME 45: triple-buffering-v4-45 rev = "0b896518b2028d9c4d6ea44806d093fd33793689"; sha256 = "sha256-mzNy5GPlB2qkI2KEAErJQzO//uo8yO0kPQUwvGDwR4w="; }; }); }); lutris = super.lutris.override { extraPkgs = pkgs: [ pkgs.winetricks pkgs.wine64Packages.stable pkgs.wineWowPackages.stable ]; }; nerdfonts = super.nerdfonts.override { fonts = [ "CascadiaCode" "ComicShannsMono" "Iosevka" ]; }; fooyin = pkgsM.fooyin; planify = pkgsU.planify; gdtoolkit = pkgsU.gdtoolkit; gallery-dl = pkgsU.gallery-dl; ns-usbloader = pkgsU.ns-usbloader; handbrake = super.handbrake.override { useGtk = true; }; discord = super.discord.override { withOpenASAR = true; }; ripgrep = super.ripgrep.override { withPCRE2 = true; }; blender = super.blender.override { cudaSupport = true; }; }) ]; }) ]; specialArgs = { inherit inputs outputs; }; }; }; }; }