aboutsummaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-03-30 20:46:26 +0200
committerNatasha Moongrave <natasha@256phi.eu>2026-03-30 20:46:26 +0200
commit67e324107e05f3245ddac034607afd0e1dea478f (patch)
treed14a4b6e98fc707c72e24f0879b0e4297aaad78f /system
parent2316eab54de77c351e88c5657eeaaa703ff4c498 (diff)
Refactored the entire configuration
Diffstat (limited to 'system')
-rw-r--r--system/audio.nix15
-rw-r--r--system/bluetooth.nix15
-rw-r--r--system/boot.nix44
-rw-r--r--system/default.nix18
-rw-r--r--system/desktop.nix16
-rw-r--r--system/graphics.nix13
-rw-r--r--system/networking.nix3
-rw-r--r--system/nix.nix32
-rw-r--r--system/packages.nix69
-rw-r--r--system/programs.nix13
-rw-r--r--system/services.nix13
-rw-r--r--system/stylix.nix75
-rw-r--r--system/users.nix7
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;
+ };
+}