{ config, pkgs, ... }: { imports = [ # Le matériel reste propre à la machine et n'est pas stocké dans le dépôt. # Avec un build Flake, utiliser --impure afin d'autoriser cet import local. /etc/nixos/hardware-configuration.nix ./modules/software.nix ./modules/users.nix ./modules/homed.nix ./modules/security.nix ./modules/workstation-setup.nix ./modules/provisioning.nix ]; # Les flakes utilisent encore les fonctionnalités expérimentales du client Nix. nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Cette configuration est volontairement commune. Elle doit toujours être # appelée par une fiche de poste qui choisit explicitement un utilisateur. assertions = [ { assertion = config.nixosWorkstations.provisioning.enable; message = "Sélectionnez une fiche dans hosts/ au lieu de construire configuration.nix directement."; } ]; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; networking.networkmanager.enable = true; time.timeZone = "Europe/Paris"; i18n.defaultLocale = "fr_FR.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "fr_FR.UTF-8"; LC_IDENTIFICATION = "fr_FR.UTF-8"; LC_MEASUREMENT = "fr_FR.UTF-8"; LC_MONETARY = "fr_FR.UTF-8"; LC_NAME = "fr_FR.UTF-8"; LC_NUMERIC = "fr_FR.UTF-8"; LC_PAPER = "fr_FR.UTF-8"; LC_TELEPHONE = "fr_FR.UTF-8"; LC_TIME = "fr_FR.UTF-8"; }; services.xserver.enable = true; services.displayManager.sddm.enable = true; services.desktopManager.plasma6.enable = true; services.xserver.xkb = { layout = "fr"; variant = ""; }; console.keyMap = "fr"; services.printing.enable = true; services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; nixpkgs.config.allowUnfree = true; system.stateVersion = "26.05"; }