# Module: Base System Configuration # Description: Core NixOS configuration with Nix settings, base packages, fonts, # localization (FR), Fish shell, and security (GPG) # Services: gvfs, udisks2, gnupg-agent { pkgs, customConfig, ... }: { nix.settings = { experimental-features = [ "nix-command" "flakes" ]; substituters = [ "https://cache.nixos.org/" "https://parsec-cloud.cachix.org" ]; trusted-public-keys = [ "parsec-cloud.cachix.org-1:MuWfCBKBfuUWqwB6xKFK0armIJ+A+Mi++HohuB6YvTk=" ]; }; programs.nh = { enable = true; clean.enable = true; clean.extraArgs = "--keep-since 4d --keep 3"; flake = builtins.toString customConfig.configFlakePath; }; nixpkgs.config.allowUnfree = true; time.timeZone = customConfig.timezone; services.gvfs.enable = true; services.udisks2.enable = true; i18n.defaultLocale = customConfig.locale; programs.fish.enable = true; users.defaultUserShell = pkgs.fish; environment.systemPackages = with pkgs; [ wget jq linuxPackages.cpupower element-desktop ntfs3g zip unzip scream ]; fonts.packages = with pkgs; [ nerd-fonts.dejavu-sans-mono nerd-fonts.droid-sans-mono ]; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; # WARNING: DO NOT CHANGE this value after installation! # See: https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion system.stateVersion = "24.05"; }