Files
nix-flake/system/common.nix

140 lines
3.0 KiB
Nix

{ 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;
# 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";
}