{ inputs, config, pkgs, ... }: { # allow flakes nix.settings.experimental-features = ["nix-command" "flakes"]; # allow unfree packages nixpkgs.config.allowUnfree = true; # hostname networking.hostName = config.hostName; # common system packages environment.systemPackages = with pkgs; [ # editor vim # lib libz openssl shared-mime-info # shell bash zsh # utility acpi alsa-utils curl dig file fuse htop killall mlocate ntfs3g openssh p7zip ripgrep sbctl tree unzip wget ]; # nix-ld programs.nix-ld.enable = true; # appimage programs.appimage = { enable = true; binfmt = true; }; # use the latest kernel boot.kernelPackages = pkgs.linuxPackages_latest; # sysrq boot.kernel.sysctl."kernel.sysrq" = 246; # timezone time.timeZone = "America/New_York"; # docs documentation = { info.enable = false; dev.enable = false; nixos.enable = false; }; # locale i18n.defaultLocale = "en_US.UTF-8"; # networking networking.networkmanager.enable = true; networking.networkmanager.dns = "systemd-resolved"; networking.firewall.enable = false; services.resolved.enable = true; # hardware services.dbus.implementation = "broker"; services.fwupd.enable = true; services.libinput.enable = true; services.pipewire = { enable = true; alsa.enable = true; pulse.enable = true; jack.enable = true; }; # power services.upower = { enable = true; percentageLow = 20; percentageCritical = 10; percentageAction = 4; criticalPowerAction = "Hibernate"; }; services.tlp = { enable = true; settings = { CPU_SCALING_GOVERNOR_ON_AC = "performance"; CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; CPU_MIN_PERF_ON_AC = 0; CPU_MAX_PERF_ON_AC = 100; CPU_MIN_PERF_ON_BAT = 0; CPU_MAX_PERF_ON_BAT = 20; }; }; # printing services.printing.enable = true; services.avahi = { enable = true; nssmdns4 = true; openFirewall = true; }; # docker virtualisation.docker.enable = true; virtualisation.docker.storageDriver = "btrfs"; # create user account users.users.${config.user} = { isNormalUser = true; description = config.fullName; extraGroups = ["networkmanager" "wheel" "sys" "video" "audio" "docker" "libvirtd"]; home = config.homePath; shell = pkgs.zsh; }; # certs security.pki.certificateFiles = [ ../files/certs/freyanet.crt ../files/certs/tinternet.crt ]; # mime environment.pathsToLink = [ "/share/mime" ]; # fonts fonts.packages = (with pkgs; [ corefonts dejavu_fonts fira-code fira-code-symbols jetbrains-mono material-icons nerd-fonts.fira-code noto-fonts noto-fonts-cjk-sans noto-fonts-emoji twemoji-color-font vistafonts ]) ++ (with inputs.apple-fonts.packages.${pkgs.system}; [ sf-pro sf-mono sf-compact ]); fonts.fontconfig = { enable = true; defaultFonts = { serif = [ "Twemoji" "DejaVu Serif" ]; sansSerif = [ "Twemoji" "DejaVu Sans" ]; monospace = [ "Fira Code" "FiraCode Nerd Font Mono" "Font Awesome 6 Pro Regular" "Twemoji" "DejaVu Sans Mono" ]; emoji = [ "Twemoji" "Noto Color Emoji" ]; }; }; # vms programs.virt-manager.enable = true; users.groups.libvirtd.members = [config.user]; virtualisation.libvirtd.enable = true; virtualisation.spiceUSBRedirection.enable = true; }