This commit is contained in:
KnightArtorias 2026-04-26 16:09:24 +00:00
parent f78db2272c
commit 6de59d6eaa
7 changed files with 173 additions and 163 deletions

163
flake.lock generated
View file

@ -1,125 +1,108 @@
{
"nodes": {
"home-manager": {
"flake-parts": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1776184304,
"narHash": "sha256-No6QGBmIv5ChiwKCcbkxjdEQ/RO2ZS1gD7SFy6EZ7rc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3c7524c68348ef79ce48308e0978611a050089b2",
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"import-tree": {
"locked": {
"lastModified": 1773693634,
"narHash": "sha256-BtZ2dtkBdSUnFPPFc+n0kcMbgaTxzFNPv2iaO326Ffg=",
"owner": "vic",
"repo": "import-tree",
"rev": "c41e7d58045f9057880b0d85e1152d6a4430dbf1",
"type": "github"
},
"original": {
"owner": "vic",
"repo": "import-tree",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1776169885,
"narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=",
"lastModified": 1776877367,
"narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0726a0ecb6d4e08f6adced58726b95db924cef57",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1774748309,
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "333c4e0545a6da976206c74db8773a1645b5870a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1775579569,
"narHash": "sha256-/m3yyS/EnXqoPGBJYVy4jTOsirdgsEZ3JdN2gGkBr14=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9",
"rev": "dfd9566f82a6e1d55c30f861879186440614696e",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"noctalia": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"noctalia-qs": "noctalia-qs"
},
"locked": {
"lastModified": 1776240823,
"narHash": "sha256-QAdipw26rtLJWKY7EWX7k+pyvCQwF4+PObggxWbiT74=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "76b03be48965cb01faabe167f80a8995fb76a92e",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"type": "github"
}
},
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"noctalia",
"nixpkgs"
],
"systems": "systems",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1775957204,
"narHash": "sha256-d4CVRtAty2GzDYXx4xYQmR+nlOjjKovyprQfZhgLckU=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "68e82fe34c68ee839a9c37e3466820e266af0c86",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"flake-parts": "flake-parts",
"import-tree": "import-tree",
"nixpkgs": "nixpkgs",
"noctalia": "noctalia"
"wrapper-modules": "wrapper-modules"
}
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"treefmt-nix": {
"wrapper-modules": {
"inputs": {
"nixpkgs": [
"noctalia",
"noctalia-qs",
"nixpkgs"
]
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1775636079,
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"lastModified": 1777158145,
"narHash": "sha256-xYXjoA5+9aDu/A4Og/89JF8n41b7vca9av1ecyR6dgo=",
"owner": "BirdeeHub",
"repo": "nix-wrapper-modules",
"rev": "fd6d1dc5fdfb1aa39c355f4da36773a972a35721",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"owner": "BirdeeHub",
"repo": "nix-wrapper-modules",
"type": "github"
}
}

View file

@ -1,80 +1,15 @@
{
description = "Nest's Flake";
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
flake-parts.url = "github:hercules-ci/flake-parts";
import-tree.url = "github:vic/import-tree";
wrapper-modules.url = "github:BirdeeHub/nix-wrapper-modules";
};
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, ... }@inputs:
let
inherit (self) outputs;
# Set the default user. Can be overitten on a system level
vars.user = "nest";
# List of system types our hosts use
systems = [ "x86_64-linux" ];
# Generic NixOS config
mkNixOSConfig = {
path,
extraModules ? [],
vars,
}:
nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs outputs vars;
};
modules = [
./nixos/common
path
]
++ extraModules;
};
# Additional modules for physical hosts
mkPhysicalNixOSConfig = path:
let
updatedVars = vars // {
hostType = "physical";
hostName = "crow";
};
in
mkNixOSConfig {
vars = updatedVars;
path = path;
extraModules = [ ./hosts/physical ];
};
# Additional modules for servers
# mkServerNixOSConfig = path: serverType:
# mkNixOSConfig {
# path = path;
# extraModules = [
# ./hosts/server
# ./nixos/roles/server/${serverType}
# ./nixos/modules/backup
# ];
# };
in {
# Format our nix files using alejandra
formatter = nixpkgs.lib.genAttrs systems (system: nixpkgs.legacyPackages.${system}.alejandra);
# Collection of all of our configs
nixosConfigurations = {
# =========== Desktops ===========
crow = mkPhysicalNixOSConfig ./hosts/physical/crow;
};
};
# import modules/ automatically
outputs = inputs: inputs.flake-parts.lib.mkFlake
{inherit inputs;}
(inputs.import-tree ./modules);
}

View file

@ -0,0 +1,25 @@
{ self, inputs, ... }: {
flake.nixosModules.bluetooth = { inputs, ... }: {
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
settings = {
General = {
# Shows battery charge of connected devices on supported
# Bluetooth adapters. Defaults to 'false'.
Experimental = true;
# When enabled other devices can connect faster to us, however
# the tradeoff is increased power consumption. Defaults to
# 'false'.
FastConnectable = true;
};
Policy = {
# Enable all controllers when they are found. This includes
# adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'true'.
AutoEnable = true;
};
};
};
};
}

View file

@ -0,0 +1,10 @@
{ self, inputs, ... }: {
flake.nixosModules.ckb-next = { inputs, ... }: {
hardware.ckb-next = {
enable = true;
package = pkgs.ckb-next.overrideAttrs (old: {
cmakeFlags = (old.cmakeFlags or [ ]) ++ [ "-DUSE_DBUS_MENU=0" ];
});
};
};
}

View file

@ -0,0 +1,17 @@
{ self, inputs, ... }: {
flake.nixosModules.crowConfiguration = { pkgs, lib, ... }: {
imports = [
./hardware-configuration.nix
];
nix.settings.experimental-features = [ "nix-commands" "flakes" ];
environment.systemPackages = with pkgs; [
pavucontrol
bolt-launcher
wine
usbutils
virt-manager
];
};
}

View file

@ -0,0 +1,5 @@
{ self, inputs, ... }: {
flake.nixosConfigurations.crow = inputs.nixpkgs.lib.nixosSystem {
modules= [ ];
};
}

View file

@ -0,0 +1,35 @@
{ self, inputs, ... }: {
flake.nixosModules.crowHardware = { config, lib, pkgs, modulesPath, ... }: {
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/310d77f1-247d-4db9-9db0-be6b70483bd8";
fsType = "ext4";
};
fileSystems."/mnt/steam" =
{ device = "/dev/disk/by-uuid/f800bb63-5798-4faa-b2d2-50073215e391";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/9F36-9DE8";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/d7fbd2b2-c943-457b-afc1-ad355d30a5c2"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
};
}