{ pkgs, config, lib, ... }: let cfg = config.nixfiles.profile.pc; inherit (lib) mkDefault; in { options.nixfiles.profile.pc.enable = lib.mkEnableOption "minimal PC profile" // { description = '' Whether to enable the minimal PC profile. This profile configures basic system configuration for physical PCs, such as enabling sound and Bluetooth support. ''; }; config = lib.mkIf cfg.enable { nixfiles.profile.base.enable = lib.mkDefault true; nixfiles.binfmt.enable = lib.mkDefault true; # networking.hostName = "nixos"; # Define your hostname. # Pick only one of the below networking options. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # FIXME find somewhere else to put this networking.networkmanager.enable = lib.mkDefault true; # Easiest to use and most distros use this by default. # contains icons for bootnext desktop entries (the Windows icon); there's # probably no reason to *not* include this. environment.systemPackages = with pkgs; [ nixfiles-assets ]; # enable option sets nixfiles = { hardware = { bluetooth.enable = mkDefault true; sound.enable = mkDefault true; }; }; # enable sysrq boot.kernel.sysctl."kernel.sysrq" = mkDefault 1; # enable filesystems boot.supportedFilesystems = { # not yet; need kernel 6.7. update the lts kernel first. # bcachefs = mkDefault true; cifs = mkDefault true; ext4 = mkDefault true; ecryptfs = mkDefault true; exfat = mkDefault true; f2fs = mkDefault true; # nfs causes a startup delay # nfs = mkDefault true; squashfs = mkDefault true; vfat = mkDefault true; xfs = mkDefault true; }; # probably unnecessary, this will be enabled by whatever session i use # Enable the X11 windowing system. # services.xserver.enable = true; # this solves some inconsistent behavior with xdg-open xdg.portal.xdgOpenUsePortal = lib.mkDefault true; # Enable CUPS to print documents. services.printing = { enable = mkDefault true; cups-pdf.enable = mkDefault true; }; }; }