fixed stuff
This commit is contained in:
parent
f9413c476c
commit
2482644028
58 changed files with 296 additions and 339 deletions
|
|
@ -1,20 +1,6 @@
|
|||
# Host `nixos-laptop` — ThinkPad E560
|
||||
|
||||
Profil **léger et faible RAM (4 Gio)** : i5-6200U, Intel HD 520 (pas de GPU
|
||||
dédié), pas de Steam, pas de Noctalia (remplacé par `mako`), pas de gros stack
|
||||
KDE (on utilise `nautilus`).
|
||||
|
||||
## Installer
|
||||
```bash
|
||||
./install.sh nixos-laptop # ou ./install.sh puis choisir 2
|
||||
```
|
||||
Le script pousse explicitement les caches binaires (cache.nixos.org, Hyprland,
|
||||
nix-community) dès le premier rebuild → quasiment aucune compilation locale.
|
||||
|
||||
## Mettre à jour
|
||||
```bash
|
||||
./update.sh nixos-laptop # ou juste ./update.sh (détecte le hostname)
|
||||
```
|
||||
Profil **léger et faible RAM (4 Gio)** : i5-6200U, Intel HD 520 (pas de GPU dédié)
|
||||
|
||||
## Faible RAM — ce qui est en place (`config/low-ram.nix`)
|
||||
- `max-jobs = 1`, `cores = 2` : on ne sature pas les 4 Gio pendant un build.
|
||||
|
|
@ -25,24 +11,13 @@ nix-community) dès le premier rebuild → quasiment aucune compilation locale.
|
|||
|
||||
### Si un rebuild rame quand même
|
||||
Un paquet absent des caches sera compilé localement. Deux options :
|
||||
1. Éviter les inputs qui forcent la compilation (ex. builds custom).
|
||||
2. Créer ton propre cache Cachix et y pousser depuis le poste maison :
|
||||
1. Éviter les inputs qui forcent la compilation
|
||||
2. Créer son propre cache Cachix et y pousser depuis le poste maison :
|
||||
```bash
|
||||
# sur le poste maison, après un build :
|
||||
cachix push mon-cache ./result
|
||||
```
|
||||
puis ajouter `https://mon-cache.cachix.org` aux `substituters` de
|
||||
`config/low-ram.nix`. Le laptop récupèrera alors les binaires sans compiler.
|
||||
|
||||
## Noms de paquets à vérifier (traduits depuis pacman/AUR)
|
||||
Je n'ai pas pu évaluer contre nixpkgs ici. Vérifie ceux-ci si un rebuild
|
||||
échoue sur un attribut manquant (`nix search nixpkgs <nom>`) :
|
||||
- `planify` (≈ `planner`), `nomacs`, `han-nom`, `bitwarden-cli`,
|
||||
`bitwarden-desktop`, `mattermost-desktop`, `vaapiIntel` (peut être aliasé).
|
||||
- Toolkits Octave : `image`, `statistics`, `symbolic` OK ; `dataframe` est
|
||||
commenté (indispo).
|
||||
- `octave-datatypes`, `grimblast`, `zen-browser` : gérés autrement (input zen,
|
||||
grim/slurp), pas besoin de l'AUR.
|
||||
puis ajouter `https://mon-cache.cachix.org` aux `substituters` de `config/low-ram.nix`. Le laptop récupèrera alors les binaires sans compiler.
|
||||
|
||||
## Empreinte digitale
|
||||
`services.fprintd.enable = true`. Enrôle avec `fprintd-enroll` après install.
|
||||
`services.fprintd.enable = true`. `fprintd-enroll` après install.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# grub utilisé pour le bootloader
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
boot.loader.grub = {
|
||||
enable = true;
|
||||
device = "nodev";
|
||||
efiSupport = true;
|
||||
useOSProber = true;
|
||||
# nombre de configurations à garder en mémoire
|
||||
configurationLimit = 5;
|
||||
};
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# ── Mullvad VPN ── (remplace mullvad-vpn-bin de l'AUR)
|
||||
# mullvad VPN
|
||||
services.mullvad-vpn = {
|
||||
enable = true;
|
||||
package = pkgs.mullvad-vpn;
|
||||
};
|
||||
# ── Intégration gestionnaire de fichiers (miniatures, montage…) ──
|
||||
services.gvfs.enable = true;
|
||||
services.tumbler.enable = true;
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
# intégration gestionnaire de fichiers (pour Dolphin)
|
||||
#services.gvfs.enable = true;
|
||||
#services.tumbler.enable = true;
|
||||
#environment.sessionVariables = {
|
||||
# NIXOS_OZONE_WL = "1";
|
||||
#};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }: {
|
||||
{ pkgs, ... }: {
|
||||
fonts.packages = with pkgs; [
|
||||
# Sans / Source (adobe-source-*-fonts, source-han-sans)
|
||||
source-sans
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
time.timeZone = "Europe/Paris";
|
||||
i18n.defaultLocale = "fr_FR.UTF-8";
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,19 +1,15 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
# ThinkPad E560 : TLP pour l'autonomie. Pas d'asusd (spécifique ASUS).
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||
# Seuils de charge batterie (préserve la batterie).
|
||||
# Fonctionne sur la plupart des ThinkPad via tp_smapi/acpi.
|
||||
START_CHARGE_THRESH_BAT0 = 40;
|
||||
STOP_CHARGE_THRESH_BAT0 = 80;
|
||||
};
|
||||
};
|
||||
services.power-profiles-daemon.enable = false;
|
||||
# Économie d'énergie supplémentaire.
|
||||
powerManagement.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# style global
|
||||
stylix = {
|
||||
enable = true;
|
||||
targets.gtksourceview.enable = false;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
networking = {
|
||||
hostName = "nixos-laptop";
|
||||
networkmanager.enable = true;
|
||||
# ouvrir des ports manuellement si besoin
|
||||
firewall.enable = true;
|
||||
};
|
||||
services = {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
users.users.afoucaultc = {
|
||||
isNormalUser = true;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{ inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
# généré à l'installation avec nixos-generate-config
|
||||
# à copier dans le dossier courant depuis /etc/nixos
|
||||
./hardware-configuration.nix
|
||||
# ensemble de packages et configurations système
|
||||
./config/bluetooth.nix
|
||||
./config/boot.nix
|
||||
./config/drivers_video.nix
|
||||
|
|
@ -15,7 +12,6 @@
|
|||
./config/fonts.nix
|
||||
./config/hyprland.nix
|
||||
./config/language.nix
|
||||
./config/low-ram.nix
|
||||
./config/power_management.nix
|
||||
./config/sound.nix
|
||||
./config/stylix.nix
|
||||
|
|
@ -23,15 +19,22 @@
|
|||
./config/system_saves.nix
|
||||
./config/system_services.nix
|
||||
./config/user.nix
|
||||
# profil nixos-hardware pour le ThinkPad E560 (Skylake, i5-6200U)
|
||||
# nécessite l'input nixos-hardware dans flake.nix.
|
||||
inputs.nixos-hardware.nixosModules.common-cpu-intel
|
||||
inputs.nixos-hardware.nixosModules.common-pc-laptop
|
||||
inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
|
||||
# ajout pour forcer l'utilisation de cachix au max
|
||||
./config/low-ram.nix
|
||||
# profil nixos-hardware pour le ThinkPad E560
|
||||
# nécessite l'input nixos-hardware dans flake.nix
|
||||
inputs.nixos-hardware.nixosModules.common-cpu-intel # active le microcode intel
|
||||
inputs.nixos-hardware.nixosModules.common-pc-laptop # active tlp
|
||||
];
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
# ne pas toucher, défini une seule fois en fonction de la version de nixos de l'ISO pour la 1ère installation
|
||||
system.stateVersion = "25.11";
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"electron-39.8.10"
|
||||
];
|
||||
# nécessaire pour permettre des dépendances problématiques parfois
|
||||
#nixpkgs.config.permittedInsecurePackages = [
|
||||
# "electron-39.8.10"
|
||||
#];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue