test: dn-lap test build

This commit is contained in:
DACHXY 2024-12-24 10:44:37 +08:00
parent 36b9f4e2b0
commit 04ce8d76ba
25 changed files with 245 additions and 160 deletions

View file

@ -8,33 +8,42 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = outputs = { self, nixpkgs-unstable, nixpkgs, ... }@inputs:
{ self, nixpkgs-unstable, nixpkgs, ... }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
pkgsUnstable = nixpkgs-unstable.legacyPackages.${system}; pkgsUnstable = nixpkgs-unstable.legacyPackages.${system};
nixvim.url = "github:azuwis/lazyvim-nixvim"; nixvim.url = "github:azuwis/lazyvim-nixvim";
in { in {
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style; formatter.x86_64-linux =
nixosConfigurations.dn-nix = nixpkgs.lib.nixosSystem { nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
modules =
[ nixosConfigurations.dn-pre7780 = nixpkgs.lib.nixosSystem {
./system/configuration.nix modules = [ ./system/dev/dn-pre7780 ];
]; specialArgs = {
specialArgs = { inherit inputs; inherit pkgsUnstable; }; inherit inputs;
inherit pkgsUnstable;
};
}; };
# homeConfigurations = { nixosConfigurations.dn-lap = nixpkgs.lib.nixosSystem {
# danny = home-manager.lib.homeManagerConfiguration { modules = [ ./system/dev/dn-lap ];
# inherit pkgs; specialArgs = {
# modules = [ ./home ]; inherit inputs;
# extraSpecialArgs = { inherit pkgsUnstable;
# inherit pkgs-unstable; };
# inherit inputs; };
# };
# }; # homeConfigurations = {
# }; # danny = home-manager.lib.homeManagerConfiguration {
# programs.home-manager.enable = true; # inherit pkgs;
# modules = [ ./home ];
# extraSpecialArgs = {
# inherit pkgs-unstable;
# inherit inputs;
# };
# };
# };
# programs.home-manager.enable = true;
}; };
} }

View file

@ -1,6 +1,5 @@
let configDir = ../config; let configDir = ../config;
in in {
{
home.file = { home.file = {
".config/nvim" = { ".config/nvim" = {
source = "${configDir}/nvim"; source = "${configDir}/nvim";

View file

@ -28,7 +28,8 @@
#XDG_BIN_HOME = "\${HOME}/.local/bin"; #XDG_BIN_HOME = "\${HOME}/.local/bin";
XDG_DATA_HOME = "\${HOME}/.local/share"; XDG_DATA_HOME = "\${HOME}/.local/share";
GTK_IM_MODULE = ""; GTK_IM_MODULE = "";
XDG_DATA_DIRS = "\${XDG_DATA_DIRS}:/usr/share:/var/lib/flatpak/exports/share:\${HOME}/.local/share/flatpak/exports/share"; XDG_DATA_DIRS =
"\${XDG_DATA_DIRS}:/usr/share:/var/lib/flatpak/exports/share:\${HOME}/.local/share/flatpak/exports/share";
# GPU # GPU
LIBVA_DRIVER_NAME = "nvidia"; LIBVA_DRIVER_NAME = "nvidia";

View file

@ -1,8 +1,7 @@
let let
userName = "dachxy"; userName = "dachxy";
email = "Danny10132024@gmail.com"; email = "Danny10132024@gmail.com";
in in {
{
programs.git = { programs.git = {
enable = true; enable = true;
userName = userName; userName = userName;

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: { pkgs, ... }: {
{
programs = { programs = {
neovim = { neovim = {
enable = true; enable = true;

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: { pkgs, ... }: {
{
programs = { programs = {
# nushell = { # nushell = {
# enable = true; # enable = true;
@ -12,10 +11,12 @@
interactiveShellInit = '' interactiveShellInit = ''
set fish_greeting # Disable greeting set fish_greeting # Disable greeting
''; '';
plugins = [ plugins = [{
{ name = "grc"; src = pkgs.fishPlugins.grc.src; } name = "grc";
# Other plugins can be located in config file src = pkgs.fishPlugins.grc.src;
]; }
# Other plugins can be located in config file
];
}; };
carapace = { carapace = {

View file

@ -1,5 +1,4 @@
{ ... }: { ... }: {
{
dconf.settings = { dconf.settings = {
"org/virt-manager/virt-manager/connections" = { "org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///system" ]; autoconnect = [ "qemu:///system" ];

View file

@ -1,15 +0,0 @@
{ lib, pkgs, inputs, ... }:
{
imports = [ ./hardware-configuration.nix ./modules inputs.home-manager.nixosModules.default ];
system.stateVersion = "24.11";
home-manager = {
backupFileExtension = "backup";
extraSpecialArgs = { inherit inputs; };
users = {
"danny" = import ../home;
};
};
}

View file

@ -0,0 +1,12 @@
{ config, pkgs, lib, ... }:
{
boot.loader.systemd-boot.enable = true;
boot.extraModprobeConfig = ''
options hid_apple fnmode=2
'';
boot.initrd.systemd.enable = true;
boot.initrd.kernelModules = [ "i915" ];
boot.swraid.enable = true;
}

View file

@ -0,0 +1,44 @@
{ lib, pkgs, inputs, ... }:
{
imports = [
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
# Modules
./boot.nix
../../modules/dn-ca.nix
../../modules/fonts.nix
../../modules/hardware.nix
../../modules/hyprland.nix
../../modules/internationalisation.nix
../../modules/misc.nix
../../modules/networking.nix
../../modules/nixsettings.nix
../../modules/packages.nix
../../modules/plymouth.nix
../../modules/polkit.nix
../../modules/programs.nix
../../modules/sddm-theme.nix
../../modules/security.nix
../../modules/services.nix
../../modules/sound.nix
../../modules/theme.nix
../../modules/time.nix
../../modules/users.nix
../../modules/virtualization.nix
../../modules/wireguard.nix
];
# Overrides
networking.hostName = "dn-lap";
programs.steam.enable = false;
system.stateVersion = "24.11";
home-manager = {
backupFileExtension = "backup";
extraSpecialArgs = { inherit inputs; };
users = { "danny" = import ../home; };
};
}

View file

@ -2,14 +2,16 @@
{ {
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.kernelParams = ["nvidia-drm.fbdev=1" "nvidia.NVreg_PreserveVideoMemoryAllocations=1"]; boot.kernelParams =
[ "nvidia-drm.fbdev=1" "nvidia.NVreg_PreserveVideoMemoryAllocations=1" ];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
options hid_apple fnmode=2 options hid_apple fnmode=2
options nvidia_drm modeset=1 dbdev=1 options nvidia_drm modeset=1 dbdev=1
''; '';
boot.initrd.systemd.enable = true; boot.initrd.systemd.enable = true;
boot.initrd.kernelModules = [ "nvidia" "i915" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ]; boot.initrd.kernelModules =
[ "nvidia" "i915" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ];
boot.swraid.enable = true; boot.swraid.enable = true;
boot.swraid.mdadmConf = boot.swraid.mdadmConf =
"\n MAILADDR smitty\n ARRAY /dev/md126 metadata=1.2 name=stuff:0\n UUID=3b0b7c51-2681-407e-a22a-e965a8aeece7\n "; "\n MAILADDR smitty\n ARRAY /dev/md126 metadata=1.2 name=stuff:0\n UUID=3b0b7c51-2681-407e-a22a-e965a8aeece7\n ";

View file

@ -0,0 +1,22 @@
{ lib, pkgs, inputs, ... }:
{
imports = [
./hardware-configuration.nix
../../modules
../../modules/nvidia.nix
./boot.nix
inputs.home-manager.nixosModules.default
];
# Overrides
networking.hostName = "dn-pre7780";
system.stateVersion = "24.11";
home-manager = {
backupFileExtension = "backup";
extraSpecialArgs = { inherit inputs; };
users = { "danny" = import ../home; };
};
}

View file

@ -4,26 +4,34 @@
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "vmd" "dm-raid" "xhci_pci" "thunderbolt" "nvme" "usbhid" "uas" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = [
"vmd"
"dm-raid"
"xhci_pci"
"thunderbolt"
"nvme"
"usbhid"
"uas"
"sd_mod"
"rtsx_pci_sdmmc"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelParams = []; boot.kernelParams = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-label/nixos"; device = "/dev/disk/by-label/nixos";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-label/BOOT"; device = "/dev/disk/by-label/BOOT";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };
swapDevices = [ ]; swapDevices = [ ];
@ -36,5 +44,6 @@
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View file

@ -2,8 +2,7 @@
{ {
imports = [ imports = [
./boot.nix ./plymouth.nix # Boot splash
./plymouth.nix # Boot splash
./fonts.nix ./fonts.nix
./gaming.nix ./gaming.nix
./hardware.nix ./hardware.nix

View file

@ -1,19 +1,17 @@
{ ... }: { ... }:
{ {
security.pki.certificates = [ security.pki.certificates = [''
'' -----BEGIN CERTIFICATE-----
-----BEGIN CERTIFICATE----- MIIBhzCCAS2gAwIBAgIQUwzjgrU4LTTmE7FTvaCHlzAKBggqhkjOPQQDAjAiMQsw
MIIBhzCCAS2gAwIBAgIQUwzjgrU4LTTmE7FTvaCHlzAKBggqhkjOPQQDAjAiMQsw CQYDVQQKEwJETjETMBEGA1UEAxMKRE4gUm9vdCBDQTAeFw0yNDExMTAwMjE5MzRa
CQYDVQQKEwJETjETMBEGA1UEAxMKRE4gUm9vdCBDQTAeFw0yNDExMTAwMjE5MzRa Fw0zNDExMDgwMjE5MzRaMCIxCzAJBgNVBAoTAkROMRMwEQYDVQQDEwpETiBSb290
Fw0zNDExMDgwMjE5MzRaMCIxCzAJBgNVBAoTAkROMRMwEQYDVQQDEwpETiBSb290 IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhjokYiCE96DzqXb0pXgV7/DW
IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhjokYiCE96DzqXb0pXgV7/DW ns8BTBq67KGeLaH77Ywv15PzR1ydwaJ1NvvwNbyZh5TwpkMtXIEG7Cr44w/Ip6NF
ns8BTBq67KGeLaH77Ywv15PzR1ydwaJ1NvvwNbyZh5TwpkMtXIEG7Cr44w/Ip6NF MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE
MEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYE FBgyUYt4st+TkVu4WWEfOhuVjbzqMAoGCCqGSM49BAMCA0gAMEUCIGUdeDfQJ+m0
FBgyUYt4st+TkVu4WWEfOhuVjbzqMAoGCCqGSM49BAMCA0gAMEUCIGUdeDfQJ+m0 tdlSDJgnIXbJyU0u4cSvi8faJa7OtVovAiEAxvEteXU7f4+5U1yyk0NxJ7jg8B6P
tdlSDJgnIXbJyU0u4cSvi8faJa7OtVovAiEAxvEteXU7f4+5U1yyk0NxJ7jg8B6P K5hP1e2clgjFv/k=
K5hP1e2clgjFv/k= -----END CERTIFICATE-----
-----END CERTIFICATE----- ''];
''
];
} }

View file

@ -1,14 +1,13 @@
{ pkgs, ... }: { pkgs, ... }:
# Nvidia only
let let
offload = pkgs.writeShellScriptBin "offload" '' offload = pkgs.writeShellScriptBin "offload" ''
#!/bin/bash #!/bin/bash
export __NV_PRIME_RENDER_OFFLOAD=1 export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
export __GLX_VENDOR_LIBRARY_NAME=nvidia export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only export __VK_LAYER_NV_optimus=NVIDIA_only
exec "$@" exec "$@"
''; '';
in { in { environment.systemPackages = [ offload ]; }
environment.systemPackages = [ offload ];
}

View file

@ -7,7 +7,20 @@
experimental-features = [ "nix-command" "flakes" ]; experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true; auto-optimise-store = true;
substituters = [ "https://nix-gaming.cachix.org" ]; substituters = [ "https://nix-gaming.cachix.org" ];
trusted-public-keys = [ "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" ]; trusted-public-keys = [
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
];
}; };
}; };
hardware.steam-hardware.enable = true;
nixpkgs.config.allowUnfree = true;
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"steam"
"steam-original"
"steam-unwrapped"
"steam-run"
];
} }

View file

@ -1,16 +1,12 @@
{ config, pkgs, nixpkgs, ... }: { config, pkgs, nixpkgs, ... }:
{ {
services.xserver.videoDrivers = [ "nvidia" ];
nixpkgs.config.packageOverrides = pkgs: { nixpkgs.config.packageOverrides = pkgs: {
intel-vaapi-driver = pkgs.intel-vaapi-driver.override { enableHybridCodec = true; }; intel-vaapi-driver =
pkgs.intel-vaapi-driver.override { enableHybridCodec = true; };
}; };
hardware = { hardware = {
steam-hardware.enable = true;
bluetooth = { bluetooth = {
enable = true; enable = true;
powerOnBoot = true; powerOnBoot = true;
@ -22,6 +18,8 @@
FastConnectable = true; FastConnectable = true;
}; };
}; };
# Xbox controller
xpadneo.enable = true; xpadneo.enable = true;
graphics = { graphics = {
@ -33,25 +31,6 @@
]; ];
}; };
nvidia.open = false;
nvidia.modesetting.enable = true;
nvidia.powerManagement.enable = true;
nvidia.powerManagement.finegrained = true;
nvidia.nvidiaSettings = true;
nvidia.dynamicBoost.enable = true;
nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
nvidia.prime = {
offload = {
enable = true;
enableOffloadCmd = true;
};
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
}; };
# Enable bluetooth # Enable bluetooth

View file

@ -25,4 +25,18 @@
rofi rofi
waybar waybar
]; ];
nix = {
settings = {
warn-dirty = false;
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
];
};
};
} }

View file

@ -2,10 +2,9 @@
{ {
networking = { networking = {
hostName = "dn-nix";
networkmanager.enable = true; networkmanager.enable = true;
enableIPv6 = false; enableIPv6 = false;
firewall = { firewall = {
enable = true; enable = true;
allowedTCPPorts = [ 22 ]; allowedTCPPorts = [ 22 ];
allowedUDPPorts = [ 51820 ]; allowedUDPPorts = [ 51820 ];

View file

@ -3,27 +3,5 @@
{ {
documentation.nixos.enable = false; documentation.nixos.enable = false;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"steam"
"steam-original"
"steam-unwrapped"
"steam-run"
];
nixpkgs.config.rcomSupport = true; nixpkgs.config.rcomSupport = true;
nix = {
settings = {
warn-dirty = false;
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
substituters =
[ "https://nix-gaming.cachix.org" "https://hyprland.cachix.org" ];
trusted-public-keys = [
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
];
};
};
} }

24
system/modules/nvidia.nix Normal file
View file

@ -0,0 +1,24 @@
{ ... }:
{
services.xserver.videoDrivers = [ "nvidia" ];
nvidia.open = false;
nvidia.modesetting.enable = true;
nvidia.powerManagement.enable = true;
nvidia.powerManagement.finegrained = true;
nvidia.nvidiaSettings = true;
nvidia.dynamicBoost.enable = true;
nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
nvidia.prime = {
offload = {
enable = true;
enableOffloadCmd = true;
};
# This may different between devices
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
}

View file

@ -4,19 +4,22 @@
enable = true; enable = true;
theme = "catppuccin-frappe"; theme = "catppuccin-frappe";
themePackages = with pkgs; [ themePackages = with pkgs; [
(adi1090x-plymouth-themes.override { (adi1090x-plymouth-themes.override { selected_themes = [ "motion" ]; })
selected_themes = [ "motion" ]; (catppuccin-plymouth.override { variant = "frappe"; })
})
(catppuccin-plymouth.override {
variant = "frappe";
}
)
]; ];
}; };
consoleLogLevel = 0; consoleLogLevel = 0;
initrd.verbose = false; initrd.verbose = false;
kernelParams = [ "quiet" "splash" "boot.shell_on_fail" "loglevel=3" "rd.systemd.show_status=false" "rd.udev.log_level=3" "udev.log_priority=3" ]; kernelParams = [
"quiet"
"splash"
"boot.shell_on_fail"
"loglevel=3"
"rd.systemd.show_status=false"
"rd.udev.log_level=3"
"udev.log_priority=3"
];
loader.timeout = 0; loader.timeout = 0;
}; };
} }

View file

@ -3,7 +3,7 @@
{ {
users.users.danny = { users.users.danny = {
isNormalUser = true; isNormalUser = true;
shell = pkgs.bash; # Actually fish shell = pkgs.bash; # Actually fish
extraGroups = [ "wheel" "input" "networkmanager" "docker" ]; extraGroups = [ "wheel" "input" "networkmanager" "docker" ];
}; };
} }

View file

@ -1,9 +1,7 @@
{config, pkgs, ...}: { config, pkgs, ... }:
{ {
networking.firewall = { networking.firewall = { allowedUDPPorts = [ 51820 ]; };
allowedUDPPorts = [ 51820 ];
};
networking.wg-quick.interfaces.wg0.configFile = "/etc/wireguard/wg0.conf"; networking.wg-quick.interfaces.wg0.configFile = "/etc/wireguard/wg0.conf";
} }