nixfiles/general/system.nix

120 lines
3.3 KiB
Nix

{ pkgs, ... }:
{
# OS Configuration
boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.configurationLimit = 10;
boot.loader.efi.canTouchEfiVariables = true;
boot.plymouth.enable = true;
boot.kernelParams = [ "quiet" ];
boot.supportedFilesystems = [ "ntfs" ];
zramSwap.enable = true;
# Firmware
services.fwupd.enable = true;
services.fprintd.enable = true;
security.pam.services.login.fprintAuth = false;
security.pam.services.gdm-fingerprint.text = ''
auth required pam_shells.so
auth requisite pam_nologin.so
auth requisite pam_faillock.so preauth
auth required ${pkgs.fprintd}/lib/security/pam_fprintd.so
auth optional pam_permit.so
auth required pam_env.so
auth [success=ok default=1] ${pkgs.gnome.gdm}/lib/security/pam_gdm.so
auth optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so
account include login
password required pam_deny.so
session include login
session optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start
'';
# Time
time.timeZone = "Europe/Paris";
# Keyboard & Touchpad
i18n.defaultLocale = "fr_FR.UTF-8";
console = {
font = "Lat2-Terminus16";
#keyMap = "fr";
useXkbConfig = true;
};
services.xserver.xkb.layout = "fr";
services.xserver.xkb.variant = "oss";
services.libinput.enable = true;
# Printing
services.printing.enable = true;
services.avahi.enable = true;
services.avahi.nssmdns4 = true;
services.avahi.openFirewall = true;
# Shell
programs.fish.enable = true;
programs.fish.promptInit = ''
any-nix-shell fish --info-right | source
'';
environment.shells = with pkgs; [ fish ];
# Environment Variables
environment.sessionVariables = {
EDITOR = "hx";
};
# Graphics
services.xserver.enable = true;
programs.xwayland.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# GNOME
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
# KDE
# services.desktopManager.plasma6.enable = true;
# programs.ssh.askPassword = lib.mkForce "${pkgs.gnome.seahorse}/libexec/seahorse/ssh-askpass";
programs.dconf.enable = true;
services.flatpak.enable = true;
services.joycond.enable = true;
# Sound
sound.enable = false;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
#jack.enable = true;
};
# Documentation
documentation.enable = true;
documentation.man.enable = true;
documentation.dev.enable = true;
# Fails for some reason
documentation.nixos.enable = false;
# Virtualisation
virtualisation.libvirtd.enable = true;
# Containers
virtualisation.containers.enable = true;
virtualisation.podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
extraPackages = [ pkgs.zfs ];
};
}