Refactoring configuration

This commit is contained in:
Lyes Saadi 2024-04-10 01:08:29 +02:00
parent 09e3cc520a
commit a87c269dfc
No known key found for this signature in database
GPG key ID: 17418538BAA17767
9 changed files with 336 additions and 287 deletions

102
system.nix Normal file
View file

@ -0,0 +1,102 @@
{ pkgs, ... }:
{
# OS Configuration
boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.extraEntries = {
"fedora.conf" = ''
title Fedora
efi /EFI/fedora/grubx64.efi
'';
};
boot.loader.systemd-boot.configurationLimit = 10;
boot.loader.efi.canTouchEfiVariables = true;
boot.plymouth.enable = true;
boot.supportedFilesystems = [ "ntfs" ];
fileSystems = {
"/".options = [ "compress=zstd:1" ];
"/home".options = [ "compress=zstd:1" ];
"/nix".options = [ "compress=zstd:1" "noatime" ];
};
zramSwap.enable = true;
# Firmware
services.fwupd.enable = true;
services.fprintd.enable = true;
# Time
time.timeZone = "Europe/Paris";
# Keyboard & Touchpad
i18n.defaultLocale = "fr_FR.UTF-8";
console = {
font = "Lat2-Terminus16";
#keyMap = "fr";
useXkbConfig = true;
};
services.xserver.layout = "fr";
services.xserver.xkbVariant = "oss";
services.xserver.libinput.enable = true;
# Printing
services.printing.enable = true;
services.avahi.enable = true;
services.avahi.nssmdns = 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 ];
# Graphics
services.xserver.enable = true;
programs.xwayland.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
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;
documentation.nixos.enable = true;
# Virtualisation
virtualisation.libvirtd.enable = true;
# Containers
virtualisation.containers.enable = true;
virtualisation.podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
extraPackages = [ pkgs.zfs ];
enableNvidia = true;
};
}