From 154093573c13cdba63a6077710f4e09ccbe2ade3 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Mon, 2 Feb 2026 13:29:35 +0100 Subject: refactored + added README --- modules/nixos/base/boot.nix | 46 ++++++++++++++ modules/nixos/base/default.nix | 16 +++++ modules/nixos/base/graphics.nix | 19 ++++++ modules/nixos/base/networking.nix | 20 ++++++ modules/nixos/base/nix.nix | 17 ++++++ modules/nixos/base/packages.nix | 124 ++++++++++++++++++++++++++++++++++++++ modules/nixos/base/programs.nix | 17 ++++++ modules/nixos/base/services.nix | 16 +++++ modules/nixos/base/users.nix | 12 ++++ 9 files changed, 287 insertions(+) create mode 100644 modules/nixos/base/boot.nix create mode 100644 modules/nixos/base/default.nix create mode 100644 modules/nixos/base/graphics.nix create mode 100644 modules/nixos/base/networking.nix create mode 100644 modules/nixos/base/nix.nix create mode 100644 modules/nixos/base/packages.nix create mode 100644 modules/nixos/base/programs.nix create mode 100644 modules/nixos/base/services.nix create mode 100644 modules/nixos/base/users.nix (limited to 'modules/nixos/base') diff --git a/modules/nixos/base/boot.nix b/modules/nixos/base/boot.nix new file mode 100644 index 0000000..a9aaff1 --- /dev/null +++ b/modules/nixos/base/boot.nix @@ -0,0 +1,46 @@ +{ config, lib, pkgs, ... }: + +{ + boot = { + kernelPackages = pkgs.linuxPackages_latest; + initrd = { + kernelModules = [ "i915" ]; + systemd.enable = true; + }; + loader = { + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; + }; + grub = { + enable = true; + device = "nodev"; + useOSProber = true; + efiSupport = true; + }; + systemd-boot = { + enable = false; + consoleMode = "keep"; + configurationLimit = 5; + }; + }; + plymouth = { + enable = false; + theme = "deus_ex"; + themePackages = with pkgs; [ + (adi1090x-plymouth-themes.override { + selected_themes = [ "deus_ex" ]; + }) + ]; + logo = pkgs.fetchurl { + url = "https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.icon-icons.com%2Ficons2%2F2699%2FPNG%2F512%2Fnixos_logo_icon_170910.png&f=1&nofb=1&ipt=71345d68f1fc864748db54e81111d5853a24fba1d39bdee7cc6fda3e58181bc0"; + sha256 = "sha256-fr1ZnKdX9EeXl2eTIrxEd17DkVKZL8BV9RGmluSgFfk="; + }; + extraConfig = '' + DeviceScale=1 + ''; + }; + }; + + fileSystems."/boot".options = [ "fmask=0077" "dmask=0077" ]; +} diff --git a/modules/nixos/base/default.nix b/modules/nixos/base/default.nix new file mode 100644 index 0000000..2a70d3b --- /dev/null +++ b/modules/nixos/base/default.nix @@ -0,0 +1,16 @@ +{ ... }: + +{ + imports = [ + ./nix.nix + ./boot.nix + ./networking.nix + ./users.nix + ./services.nix + ./programs.nix + ./graphics.nix + ./packages.nix + ]; + + system.stateVersion = "25.11"; +} diff --git a/modules/nixos/base/graphics.nix b/modules/nixos/base/graphics.nix new file mode 100644 index 0000000..e2913fe --- /dev/null +++ b/modules/nixos/base/graphics.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: + +{ + services.xserver.videoDrivers = [ "intel" ]; + + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ + intel-vaapi-driver + intel-media-driver + intel-compute-runtime + mesa + ]; + }; + + environment.variables = { + JAVA_HOME = "${pkgs.jdk17}/lib/openjdk"; + }; +} diff --git a/modules/nixos/base/networking.nix b/modules/nixos/base/networking.nix new file mode 100644 index 0000000..9d3a293 --- /dev/null +++ b/modules/nixos/base/networking.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: + +{ + networking.hostName = "kronos"; + networking.networkmanager.enable = true; + + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + settings = { + General = { + Experimental = true; + Enable = "Source,Sink,Media,Socket"; + AutoConnect = true; + FastConnectabke = true; + }; + Policy.AutoEnable = true; + }; + }; +} diff --git a/modules/nixos/base/nix.nix b/modules/nixos/base/nix.nix new file mode 100644 index 0000000..87e93f4 --- /dev/null +++ b/modules/nixos/base/nix.nix @@ -0,0 +1,17 @@ +{ config, lib, pkgs, ... }: + +{ + nix.settings = { + substituters = [ + "https://cache.nixos.org/" + ]; + + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + ]; + experimental-features = [ + "nix-command" + "flakes" + ]; + }; +} diff --git a/modules/nixos/base/packages.nix b/modules/nixos/base/packages.nix new file mode 100644 index 0000000..fedccd5 --- /dev/null +++ b/modules/nixos/base/packages.nix @@ -0,0 +1,124 @@ +{ config, lib, pkgs, ... }: + +{ + nixpkgs.config.allowUnfree = true; + + environment.systemPackages = with pkgs; [ + # === Core Development Tools === + neovim + wget + stdenv + tree-sitter + git + lazygit + killall + acpi + + # === CLI Utilities === + tree + ripgrep + fd + unzip + bzip2 + perl + + # === System Monitoring === + btop + auto-cpufreq + + # === Audio/Media === + alsa-utils + helvum + playerctl + zscroll + + # === Bluetooth & Wireless === + blueman + bluez + wirelesstools + + # === Display & Graphics === + feh + flameshot + xss-lock + brightnessctl + imagemagick + ghostscript + + # === Text/Document Tools === + thunderbird + libreoffice + texstudio + zathura + krita + libresprite + audacity + + # === Network & Utilities === + tor-browser + clipman + xclip + qbittorrent + + # === Development Languages & Compilers === + clang + lua-language-server + stylua + nil + lua53Packages.luarocks + mermaid-cli + lua + + # === Language Servers & Formatters === + ruff + vtsls + pyright + python314 + + # === System Packages === + ly + + # === Gaming & Emulation === + godotPackages_4_5.godot + prismlauncher + vlc + + # === Creative & Editors === + obsidian + vscodium + vscode + peazip + celestia + + # === Wine/Compatibility === + wine + bottles + comic-mono + libgcc + espeak + lutris + + # === Miscellaneous === + gnome-boxes + xfce.thunar + + # === TeX Live === + (texlive.combine { + inherit (texlive) scheme-full; + notestex = texlivePackages.notestex; + }) + + # === RetroArch with Cores === + (retroarch.withCores (cores: with cores; [ + fceumm + mgba + gambatte + sameboy + ])) + ]; + + fonts = { + enableDefaultPackages = true; + packages = with pkgs; [ fira-code noto-fonts noto-fonts-color-emoji blackout beon]; + }; +} diff --git a/modules/nixos/base/programs.nix b/modules/nixos/base/programs.nix new file mode 100644 index 0000000..15853ee --- /dev/null +++ b/modules/nixos/base/programs.nix @@ -0,0 +1,17 @@ +{ config, lib, pkgs, ... }: + +{ + programs.firefox.enable = true; + programs.zsh.enable = true; + programs.java = { + enable = true; + package = pkgs.jdk17; + }; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + }; +} diff --git a/modules/nixos/base/services.nix b/modules/nixos/base/services.nix new file mode 100644 index 0000000..b005d8c --- /dev/null +++ b/modules/nixos/base/services.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, ... }: + +{ + security.pam.sshAgentAuth.enable = true; + + time.timeZone = "Europe/Prague"; + + services.displayManager.ly = { + enable = true; + }; + + services.printing.enable = true; + services.pipewire = { enable = true; pulse.enable = true; }; + services.libinput.enable = true; + services.openssh.enable = true; +} diff --git a/modules/nixos/base/users.nix b/modules/nixos/base/users.nix new file mode 100644 index 0000000..c2db993 --- /dev/null +++ b/modules/nixos/base/users.nix @@ -0,0 +1,12 @@ +{ config, lib, pkgs, ... }: + +{ + users.users = { + mun = { + isNormalUser = true; + extraGroups = [ "wheel" "bluetooth" "networkmanager" "kvm" "nixos" ]; + packages = with pkgs; [ tree ]; + shell = pkgs.zsh; + }; + }; +} -- cgit v1.2.3