diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-03-30 20:46:26 +0200 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-03-30 20:46:26 +0200 |
| commit | 67e324107e05f3245ddac034607afd0e1dea478f (patch) | |
| tree | d14a4b6e98fc707c72e24f0879b0e4297aaad78f /system | |
| parent | 2316eab54de77c351e88c5657eeaaa703ff4c498 (diff) | |
Refactored the entire configuration
Diffstat (limited to 'system')
| -rw-r--r-- | system/audio.nix | 15 | ||||
| -rw-r--r-- | system/bluetooth.nix | 15 | ||||
| -rw-r--r-- | system/boot.nix | 44 | ||||
| -rw-r--r-- | system/default.nix | 18 | ||||
| -rw-r--r-- | system/desktop.nix | 16 | ||||
| -rw-r--r-- | system/graphics.nix | 13 | ||||
| -rw-r--r-- | system/networking.nix | 3 | ||||
| -rw-r--r-- | system/nix.nix | 32 | ||||
| -rw-r--r-- | system/packages.nix | 69 | ||||
| -rw-r--r-- | system/programs.nix | 13 | ||||
| -rw-r--r-- | system/services.nix | 13 | ||||
| -rw-r--r-- | system/stylix.nix | 75 | ||||
| -rw-r--r-- | system/users.nix | 7 |
13 files changed, 333 insertions, 0 deletions
diff --git a/system/audio.nix b/system/audio.nix new file mode 100644 index 0000000..80dd60b --- /dev/null +++ b/system/audio.nix @@ -0,0 +1,15 @@ +{pkgs, ...}: { + security.rtkit.enable = true; + + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; + + environment.systemPackages = with pkgs; [ + pavucontrol + ]; +} diff --git a/system/bluetooth.nix b/system/bluetooth.nix new file mode 100644 index 0000000..a4bc960 --- /dev/null +++ b/system/bluetooth.nix @@ -0,0 +1,15 @@ +{...}: { + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + settings = { + General = { + Experimental = true; + FastConnectable = true; + }; + Policy = { + AutoEnable = true; + }; + }; + }; +} diff --git a/system/boot.nix b/system/boot.nix new file mode 100644 index 0000000..a238999 --- /dev/null +++ b/system/boot.nix @@ -0,0 +1,44 @@ +{ + pkgs, + lib, + ... +}: { + boot = { + kernelPackages = pkgs.linuxPackages_latest; + + initrd = { + kernelModules = ["i915"]; + systemd.enable = true; + }; + + loader = { + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; + }; + grub = { + enable = lib.mkDefault true; + device = "nodev"; + useOSProber = lib.mkDefault false; + efiSupport = true; + }; + systemd-boot = { + enable = false; + consoleMode = "keep"; + configurationLimit = 5; + }; + }; + + plymouth = { + enable = false; + theme = "deus_ex"; + themePackages = [ + (pkgs.adi1090x-plymouth-themes.override { + selected_themes = ["deus_ex"]; + }) + ]; + }; + }; + + fileSystems."/boot".options = ["fmask=0077" "dmask=0077"]; +} diff --git a/system/default.nix b/system/default.nix new file mode 100644 index 0000000..638ae02 --- /dev/null +++ b/system/default.nix @@ -0,0 +1,18 @@ +{...}: { + imports = [ + ./nix.nix + ./boot.nix + ./audio.nix + ./bluetooth.nix + ./graphics.nix + ./networking.nix + ./packages.nix + ./programs.nix + ./services.nix + ./users.nix + ./desktop.nix + ./stylix.nix + ]; + + system.stateVersion = "25.11"; +} diff --git a/system/desktop.nix b/system/desktop.nix new file mode 100644 index 0000000..0337478 --- /dev/null +++ b/system/desktop.nix @@ -0,0 +1,16 @@ +{...}: { + # X server and window manager + services.xserver = { + enable = true; + windowManager.i3.enable = true; + + # Czech QWERTZ layout + xkb = { + layout = "cz"; + options = "eurosign:e,caps:escape"; + }; + }; + + # Compositor (system-level service) + services.picom.enable = true; +} diff --git a/system/graphics.nix b/system/graphics.nix new file mode 100644 index 0000000..e2d9629 --- /dev/null +++ b/system/graphics.nix @@ -0,0 +1,13 @@ +{pkgs, ...}: { + services.xserver.videoDrivers = ["intel"]; + + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ + intel-vaapi-driver + intel-media-driver + intel-compute-runtime + mesa + ]; + }; +} diff --git a/system/networking.nix b/system/networking.nix new file mode 100644 index 0000000..e1e9450 --- /dev/null +++ b/system/networking.nix @@ -0,0 +1,3 @@ +{...}: { + networking.networkmanager.enable = true; +} diff --git a/system/nix.nix b/system/nix.nix new file mode 100644 index 0000000..ef92dc1 --- /dev/null +++ b/system/nix.nix @@ -0,0 +1,32 @@ +{pkgs, ...}: { + nix = { + package = pkgs.lixPackageSets.stable.lix; + + settings = { + substituters = [ + "https://cache.lix.systems" + "https://cache.nixos.org/" + ]; + + trusted-public-keys = [ + "cache.lix.systems-1:32QFpmvZsbQ8HhH3dBHDx1E8zFGbxqMNxjE2Rk5OGcQ=" + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + ]; + + experimental-features = ["nix-command" "flakes"]; + }; + }; + + # Fix nixpkgs.overlays for Lix compatibility + nixpkgs.overlays = [ + (final: prev: { + inherit + (prev.lixPackageSets.stable) + nixpkgs-review + nix-eval-jobs + nix-fast-build + colmena + ; + }) + ]; +} diff --git a/system/packages.nix b/system/packages.nix new file mode 100644 index 0000000..a27d59e --- /dev/null +++ b/system/packages.nix @@ -0,0 +1,69 @@ +{pkgs, ...}: { + nixpkgs.config.allowUnfree = true; + + environment.systemPackages = with pkgs; [ + # Core + neovim + wget + git + lazygit + + # CLI utilities + tree + ripgrep + fd + unzip + bzip2 + killall + acpi + + # System monitoring + btop + auto-cpufreq + + # Audio/Media + alsa-utils + helvum + playerctl + pipewire + + # Bluetooth & Wireless + blueman + bluez + wirelesstools + + # Display & Graphics + feh + flameshot + xss-lock + brightnessctl + imagemagick + ghostscript + + # Development + stdenv + tree-sitter + clang + libgcc + lua + lua53Packages.luarocks + lua-language-server + stylua + nil + python314 + pyright + ruff + vtsls + ]; + + fonts = { + enableDefaultPackages = true; + packages = with pkgs; [ + fira-code + noto-fonts + noto-fonts-color-emoji + blackout + beon + ]; + }; +} diff --git a/system/programs.nix b/system/programs.nix new file mode 100644 index 0000000..4fdffc3 --- /dev/null +++ b/system/programs.nix @@ -0,0 +1,13 @@ +{...}: { + programs.firefox.enable = true; + programs.zsh.enable = true; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + }; + + programs.ssh.startAgent = true; +} diff --git a/system/services.nix b/system/services.nix new file mode 100644 index 0000000..b6aa377 --- /dev/null +++ b/system/services.nix @@ -0,0 +1,13 @@ +{...}: { + security.pam.sshAgentAuth.enable = true; + + time.timeZone = "Europe/Prague"; + + services = { + displayManager.ly.enable = true; + printing.enable = true; + libinput.enable = true; + openssh.enable = true; + tailscale.enable = true; + }; +} diff --git a/system/stylix.nix b/system/stylix.nix new file mode 100644 index 0000000..38cdc19 --- /dev/null +++ b/system/stylix.nix @@ -0,0 +1,75 @@ +{pkgs, ...}: { + stylix = { + enable = true; + autoEnable = true; + + # Base16 scheme - Nord Blue inspired + base16Scheme = { + base00 = "2D333F"; # background + base01 = "3B4252"; # lighter background + base02 = "434C5E"; # selection background + base03 = "4C566A"; # comments + base04 = "D8DEE9"; # dark foreground + base05 = "C6D0F5"; # foreground + base06 = "E5E9F0"; # light foreground + base07 = "ECEFF4"; # lightest foreground + base08 = "BF616A"; # red + base09 = "D5A18E"; # orange/tan + base0A = "EBCB8B"; # yellow + base0B = "A3BE8C"; # green + base0C = "88C0D0"; # cyan + base0D = "82A3C0"; # blue (accent) + base0E = "B48EAD"; # purple + base0F = "5E81AC"; # dark blue + }; + + # Wallpaper + image = pkgs.fetchurl { + url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/master/wallpapers/nix-wallpaper-simple-blue.png"; + sha256 = "sha256-7l9bnGFwJE4hMl4xLsZvVLrFniIA0cXgg5XqKsuygas="; + }; + + # Fonts + fonts = { + monospace = { + package = pkgs.nerd-fonts.jetbrains-mono; + name = "JetBrainsMono Nerd Font"; + }; + sansSerif = { + package = pkgs.noto-fonts; + name = "Noto Sans"; + }; + serif = { + package = pkgs.noto-fonts; + name = "Noto Serif"; + }; + emoji = { + package = pkgs.noto-fonts-color-emoji; + name = "Noto Color Emoji"; + }; + sizes = { + terminal = 10; + applications = 11; + desktop = 11; + }; + }; + + # Cursor + cursor = { + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Classic"; + size = 24; + }; + + # Opacity + opacity = { + terminal = 0.95; + applications = 1.0; + desktop = 1.0; + popups = 0.95; + }; + + # Polarity (dark or light theme) + polarity = "dark"; + }; +} diff --git a/system/users.nix b/system/users.nix new file mode 100644 index 0000000..3b589b8 --- /dev/null +++ b/system/users.nix @@ -0,0 +1,7 @@ +{pkgs, ...}: { + users.users.mun = { + isNormalUser = true; + extraGroups = ["wheel" "bluetooth" "networkmanager" "kvm" "nixos"]; + shell = pkgs.zsh; + }; +} |
