{ config, pkgs, inputs, ... }: { imports = [ ./flatpak.nix ]; # Common system configuration shared across all machines # User configuration (shared across all machines) users.users.zeph = { isNormalUser = true; description = "Zephrynis"; extraGroups = [ "networkmanager" "wheel" "video" "audio" ]; shell = pkgs.zsh; }; # Enable zsh system-wide programs.zsh.enable = true; # Hyprland - Tiling Wayland compositor (shared configuration) programs.hyprland = { enable = true; xwayland.enable = true; package = inputs.hyprland.packages.${pkgs.system}.hyprland; }; # Enable X11 for XWayland support services.xserver.enable = true; # Exclude xterm (we use alacritty instead) services.xserver.excludePackages = [ pkgs.xterm ]; # Display manager - SDDM with Wayland support services.displayManager.sddm = { enable = true; wayland.enable = true; }; # Fonts (shared across all machines) fonts.packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans noto-fonts-emoji liberation_ttf fira-code fira-code-symbols nerd-fonts.fira-code nerd-fonts.jetbrains-mono nerd-fonts.iosevka ]; # Bootloader boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Networking networking.networkmanager.enable = true; # Timezone and locale time.timeZone = "Europe/London"; i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8"; LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8"; }; # Enable sound services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; }; # Enable CUPS for printing services.printing.enable = true; # Enable bluetooth hardware.bluetooth = { enable = true; powerOnBoot = true; settings = { General = { Enable = "Source,Sink,Media,Socket"; }; }; }; services.blueman.enable = true; # Enable OpenGL hardware.graphics = { enable = true; enable32Bit = true; }; # System-wide packages environment.systemPackages = with pkgs; [ vim wget curl git htop neofetch unzip zip ]; # Enable flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Hyprland Cachix binary cache nix.settings = { substituters = [ "https://cache.nixos.org" "https://hyprland.cachix.org" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; }; # Allow unfree packages nixpkgs.config.allowUnfree = true; # Enable networking networking.firewall.enable = true; # System state version system.stateVersion = "25.05"; }