My personal nix config files. Feel free to import flake.
1{
2 pkgs,
3 lib,
4 config,
5 ...
6}: let
7 inherit (lib) mkDefault;
8in {
9 options.teq.nixos = {
10 cachyos = lib.mkEnableOption "Enable CachyOS kernel.";
11 };
12 config = lib.mkIf config.teq.nixos.enable {
13 systemd.services.systemd-udev-settle.enable = mkDefault false; # don't wait for udev to settle on boot
14 systemd.services.NetworkManager-wait-online.enable = mkDefault false; # don't wait for network to be up on boot
15 boot = {
16 initrd = {
17 systemd = {
18 enable = mkDefault true;
19 };
20 # network = {
21 # flushBeforeStage2 = mkDefault true;
22 # enable = mkDefault true;
23 # ssh.enable = mkDefault false; # Optional SSH in the initrd
24 # ssh.ignoreEmptyHostKeys = mkDefault true;
25 # };
26# verbose = mkDefault false; # Remove extra NixOS logging from the initrd
27 };
28 plymouth = {
29 enable = mkDefault true;
30# theme = mkDefault "hud_3";
31# themePackages = mkDefault [
32# (pkgs.adi1090x-plymouth-themes.override {selected_themes = ["hud_3"];})
33# ];
34 };
35 kernelParams = [
36# "quiet" # Silences boot messages
37# "rd.systemd.show_status=false" # Silences successful systemd messages from the initrd
38# "rd.udev.log_level=3" # Silence systemd version number in initrd
39# "udev.log_priority=3" # Silence systemd version number
40# "boot.shell_on_fail" # If booting fails drop us into a shell where we can investigate
41# "splash" # Show a splash screen
42# "bgrt_disable" # Don't display the OEM logo after loading the ACPI tables
43# "plymouth.use-simpledrm" # Use simple DRM backend for Plymouth
44 ];
45# consoleLogLevel = mkDefault 3; # Silence dmesg
46 };
47 services.kmscon = {
48# enable = mkDefault true; # Use kmscon as the virtual console instead of gettys.
49 fonts = [
50 {
51 name = "Noto Sans Mono";
52 package = pkgs.noto-fonts-lgc-plus;
53 }
54 ];
55 extraOptions = mkDefault "--term xterm-256color";
56 extraConfig = mkDefault "font-size=10";
57 # hwRender = mkDefault true; # Whether to use 3D hardware acceleration to render the console.
58 };
59 nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
60 boot.kernelPackages =
61 if config.teq.nixos.cachyos
62 then pkgs.linuxPackages_cachyos # Use the CachyOS kernel
63 else pkgs.linuxPackages_latest; # Use the default kernel # linux-6.11 500MB
64 boot.kernel.sysctl = {
65 "vm.max_map_count" = 2147483642; # Required for some games
66 };
67 services.scx.enable = lib.mkDefault true; # by default uses scx_rustland scheduler
68 services.scx.scheduler = "scx_lavd";
69 services.irqbalance.enable = lib.mkDefault true;
70 services.ananicy.enable = true;
71 services.ananicy.rulesProvider = pkgs.ananicy-rules-cachyos;
72 };
73}