fixed stuff

This commit is contained in:
afoucaultc 2026-07-10 13:22:08 +02:00
parent f9413c476c
commit 2482644028
58 changed files with 296 additions and 339 deletions

View file

@ -1,21 +1,12 @@
{ ... }:
{
config,
pkgs,
lib,
...
}:
{
# ─────────────────────────────────────────────────────────────
# Machine à faible RAM (4 GiB) : on privilégie TOUJOURS les
# binaires pré-compilés (caches) plutôt que la compilation locale.
# ─────────────────────────────────────────────────────────────
# privilège pour les paquets précompilés pour que la RAM ne soit pas trop sollicitée
nix.settings = {
experimental-features = [
"nix-command"
"flakes"
];
# Caches binaires : on récupère un maximum de paquets déjà
# compilés pour éviter de compiler sur cette machine.
# Caches binaires
substituters = [
"https://cache.nixos.org"
"https://hyprland.cachix.org"
@ -35,38 +26,31 @@
"root"
"@wheel"
];
# Toujours interroger les caches, ne jamais partir du principe
# qu'un paquet doit être compilé localement.
# utiliser les caches par défaut
builders-use-substitutes = true;
fallback = true; # si un cache tombe, on tente ailleurs
connect-timeout = 10;
# Limiter la pression mémoire pendant la construction :
# peu de jobs en parallèle, sinon 4 Gio saturent vite.
# limitation de l'utilisation de la RAM
max-jobs = 1; # une dérivation à la fois
cores = 2; # les 2 cœurs du i5-6200U par job
cores = 2; # les 2 coeurs du i5-6200U par job
};
# Auto-optimisation du store (déduplication) pour économiser le disque.
# optimisation du store
nix.settings.auto-optimise-store = true;
# ─────────────────────────────────────────────────────────────
# zram : swap compressé en RAM. Indispensable avec 4 Gio, à la
# fois pour l'usage courant et pour absorber les pics du rebuild.
# ─────────────────────────────────────────────────────────────
# zram : compression du swap en RAM pour absorber les pics du rebuild
zramSwap = {
enable = true;
algorithm = "zstd";
memoryPercent = 150; # jusqu'à 1.5x la RAM (zstd compresse ~3:1)
memoryPercent = 150;
priority = 100;
};
# Le noyau peut « swaper » agressivement vers zram (rapide) plutôt
# que de tuer des process pendant un build.
# swap du noyau si nécessaire
boot.kernel.sysctl = {
"vm.swappiness" = 180; # favorise zram
"vm.swappiness" = 180;
"vm.watermark_boost_factor" = 0;
"vm.watermark_scale_factor" = 125;
"vm.page-cluster" = 0; # recommandé avec zram
"vm.page-cluster" = 0;
};
# earlyoom : tue proprement le process le plus gourmand avant que la
# machine ne se fige totalement (utile si un build déborde malgré tout).
# empêche la machine de freeze totalement si un process est trop gourmand
services.earlyoom = {
enable = true;
freeMemThreshold = 5; # agit quand il reste < 5% de RAM libre