Modularité

Le fichier /etc/nixos/customConfig/default.nix contient un bloc d'options commentées pour ajuster certaines fonctions de GLF OS : Firefox, pilote NVIDIA, mises à jour automatiques, RAID logiciel. Depuis l'arrivée de GLF Customizer, ce bloc ne sert plus à gérer les groupes de logiciels. Cette page détaille chaque ligne, celles à éviter, et comment appliquer vos changements.

Groupes de logiciels et profil : utilisez GLF Customizer

Les groupes de logiciels (Jeux, Bureautique, Communication, Multimedia, Photo, Production video, Streaming et Impression), leurs applications et le profil se règlent avec GLF Customizer, et non dans customConfig. L'application enregistre vos choix dans /etc/nixos/customized.nix.

:exclamation: Important
N'écrivez pas à la main de lignes glf.features.* dans customConfig/default.nix. Si vous l'avez déjà fait, retirez-les et refaites vos réglages dans GLF Customizer (voir « Conflits avec GLF Customizer »).

Les options de customConfig/default.nix

Modifier le fichier

Chaque option est précédée d'un commentaire bilingue et neutralisée par un #. Pour l'activer, retirez le # en début de ligne ; pour revenir en arrière, remettez-le. Pour ouvrir le fichier avec les droits nécessaires, suivez la méthode de Comment ajouter vos propres programmes.

:information_source: Remarque
Ce fichier est copié à l'installation et glf-update ne le met jamais à jour : votre modèle peut donc différer de celui présenté ici.

:warning: Attention
Ne modifiez jamais à la main configuration.nix, hardware-configuration.nix, customized.nix, flake.nix ni flake.lock : ils sont gérés par l'installeur, par GLF Customizer ou par glf-update.

Ce que fait chaque ligne

Ligne Effet réel Fonctionne ? À faire
glf.firefox.enable = lib.mkForce false; Retire Firefox et ses packs de langue Oui Décommenter
glf.gaming.enable = lib.mkForce false; Aucun : la ligne n'est plus lue Non, sans effet GLF Customizer, catégorie Jeux
glf.nvidia_config.enable = lib.mkForce false; Retire le pilote NVIDIA propriétaire Oui Décommenter, en gardant lib.mkForce
glf.printing.enable = lib.mkForce false; Bloque toute reconstruction du système Non, erreur Ne pas décommenter ; GLF Customizer, catégorie Impression
glf.autoUpgrade.enable = false; Arrête les mises à jour automatiques Oui Décommenter
glf.autoUpgrade.flatpak.enable = false; glf-update ne touche plus aux Flatpaks Oui Décommenter
boot.swraid.enable = true; Active le RAID logiciel mdadm Oui Seulement si le système est sur RAID mdadm
boot.initrd.kernelModules = [ "btrfs" "nbd" ]; Force des modules noyau au démarrage Oui, si les modules existent En connaissance de cause, liste adaptée
glf.autoUpgrade = lib.mkForce false; (ancienne forme) Arrête les mises à jour automatiques Oui, mais piégeuse Remplacer par glf.autoUpgrade.enable = false;

:stop_sign: Prudence
Ne décommentez jamais la ligne glf.printing.enable = lib.mkForce false;. Cette option n'existe plus. Tant que la ligne reste active, la construction échoue : glf-update, les mises à jour automatiques, glf-switch et GLF Customizer ne fonctionnent plus, et votre système ne reçoit plus aucune mise à jour. Pour retirer l'impression ou la numérisation, utilisez GLF Customizer, catégorie Impression.

Firefox

GLF Customizer ne gère pas Firefox : cette ligne est le moyen prévu pour le retirer. Vos profils Firefox ne sont pas supprimés, et sous GNOME son icône peut rester dans le dock.

Pilote NVIDIA

Quand il détecte une carte NVIDIA, l'installeur active le pilote dans configuration.nix. lib.mkForce est donc obligatoire ; sans lui, la construction échoue :

The option `glf.nvidia_config.enable' has conflicting definition values

Passer à une carte AMD

Sur une machine installée avec une seule carte NVIDIA, l'installeur a aussi désactivé la configuration AMD de GLF. En plus de la ligne NVIDIA, ajoutez sous # Add your custom configuration here ↓ :

  glf.amdgpu_config.enable = lib.mkForce true;

Elle réactive Mesa (64 et 32 bits) et le chargement précoce d'amdgpu pour l'écran de démarrage. Sur une installation plus ancienne, elle ne change rien.

Le changement prend effet au redémarrage. Une carte NVIDIA restée en place fonctionne alors avec le pilote libre, sans CUDA ni NVENC, avec des performances en jeu très réduites. Procédure complète : Changement de GPU.

Mises à jour automatiques

GLF OS lance une mise à jour une minute après le démarrage, puis toutes les 12 heures. glf.autoUpgrade.enable = false; supprime ce lancement automatique ; glf-update reste utilisable à la main et le nettoyage hebdomadaire continue. L'arrêt vaut après le redémarrage.

:stop_sign: Prudence
Désactiver les mises à jour automatiques est à vos risques et périls. Le système, les applications Flatpak et les correctifs de sécurité (noyau, Firefox, correctifs GLF) ne sont plus mis à jour tant que vous ne lancez pas vous-même glf-update.

Remplacer l'ancienne forme glf.autoUpgrade = lib.mkForce false;

Dans les anciennes versions de GLF OS, glf.autoUpgrade était un simple interrupteur ; c'est aujourd'hui un groupe de réglages (enable et flatpak.enable). L'ancienne forme est encore acceptée, mais :

  • son lib.mkForce porte sur tout le groupe et écarte vos autres réglages glf.autoUpgrade placés ailleurs ;
  • décommentée dans le même fichier que glf.autoUpgrade.flatpak.enable = false;, elle rend le fichier illisible et la construction échoue.

Utilisez donc glf.autoUpgrade.enable = false;.

Mises à jour des Flatpaks

Avec glf.autoUpgrade.flatpak.enable = false;, glf-update, automatique ou manuel, ne met plus à jour vos Flatpaks et ne retire plus les runtimes inutilisés. Mettez-les à jour avec EasyFlatpak ou flatpak update (Discord compris, installé en Flatpak par GLF OS). L'arrêt vaut après le redémarrage qui suit glf-update.

RAID logiciel mdadm

boot.swraid.enable = true; ajoute mdadm et rend disponibles au démarrage les modules md_mod, raid0, raid1, raid10 et raid456. Elle n'est utile que si / ou une partition montée au démarrage est sur un volume RAID mdadm ; sinon, elle alourdit l'initrd sans bénéfice. Si c'était le cas dès l'installation, hardware-configuration.nix l'active déjà, sans conflit.

:information_source: Remarque
Le commentaire du modèle mentionne dm_mod : c'est inexact, il s'agit de md_mod (dm_mod sert à LVM et LUKS).

Tant que ni MAILADDR ni PROGRAM n'est défini, la construction affiche cet avertissement, sans échouer :

mdadm: Neither MAILADDR nor PROGRAM has been set. This will cause the `mdmon` service to crash.

Réglez-le avec boot.swraid.mdadmConf, comme l'explique RAID mdadm.

Modules noyau au démarrage

boot.initrd.kernelModules charge des modules noyau dès le tout début du démarrage, en plus de ceux que GLF OS déclare déjà.

:warning: Attention

  • Remplacez l'exemple [ "btrfs" "nbd" ] par les modules dont vous avez besoin. btrfs est inutile si un système de fichiers nécessaire au démarrage est en Btrfs : NixOS l'ajoute déjà.
  • Un nom de module inconnu fait échouer la construction ; votre système actuel reste inchangé.
  • Un module qui plante peut empêcher le démarrage. Choisissez alors une génération précédente dans le menu de démarrage : les 10 dernières y figurent, mais le nettoyage automatique supprime celles de plus de 5 jours.

Appliquer vos modifications

Enregistrez le fichier, lancez la commande suivante, puis redémarrez votre ordinateur :

glf-update

glf-update met aussi à jour le système et installe la nouvelle configuration pour le prochain démarrage. Si la construction échoue, rien n'est installé. glf-build vérifie le fichier sans rien appliquer.

:information_source: Remarque
glf-switch applique la configuration immédiatement, mais ne met pas à jour les Flatpaks et n'effectue ni les migrations ni la reprise sur incident de glf-update. Pour cette page, préférez glf-update et un redémarrage, qu'un changement de pilote graphique impose de toute façon. Inutile de lancer glf-switch après glf-update.

Conflits avec GLF Customizer

GLF Customizer ne lit jamais customConfig. Il écrit dans customized.nix le profil, le bureau et, en lib.mkForce, uniquement les écarts par rapport au profil. Une ligne glf.features.* ajoutée à la main pose donc problème :

  • si le groupe est actif dans votre profil (Jeux en standard, par exemple), la ligne fonctionne, mais GLF Customizer affiche toujours le groupe comme actif et le réactiver n'écrit rien : votre ligne s'applique sans que l'interface le montre ;
  • si le groupe est inactif dans votre profil (Jeux en mini ou streamers, Impression en mini), l'activer dans GLF Customizer crée un conflit et la construction échoue avec has conflicting definition values.

Même risque avec glf.profile ou glf.environment.type définis dans customConfig avec une autre valeur. Enfin, une erreur dans customConfig empêche aussi GLF Customizer d'appliquer vos choix.

Si vous avez déjà ajouté de telles lignes, supprimez-les, puis réglez vos groupes dans GLF Customizer et cliquez sur Apply.

Réparer après avoir décommenté glf.printing.enable

Si vos mises à jour échouent depuis que vous avez décommenté cette ligne, glf-update signale un « Échec reconstruction » et renvoie vers /var/log/glfos-update.log, où figure l'erreur :

error: The option `glf.printing' does not exist. Definition values:

Votre système actuel n'est pas abîmé : il reste sur sa dernière version construite.

  1. Ouvrez customConfig/default.nix.
  2. Remettez le # devant la ligne :
      # glf.printing.enable = lib.mkForce false;
    
  3. Enregistrez, puis lancez glf-update.
  4. Redémarrez votre ordinateur.
  5. Pour retirer l'impression, passez par GLF Customizer, catégorie Impression.

:bulb: Astuce
Les lignes glf.nvidia.enable, glf.update.enable, glf.fanatec.enable et glf.new-lg4ff.enable d'anciens modèles provoquent la même erreur does not exist : remettez-leur aussi un #.

Modèle corrigé du fichier

Voici le modèle actuel, corrigé, pour repartir d'une base saine. Les lignes glf.gaming.enable et glf.printing.enable en ont été retirées volontairement, car elles ne fonctionnent pas. Avant de remplacer votre fichier, mettez de côté vos propres paquets et réglages.

{
  lib,
  config,
  pkgs,
  pkgs-unstable,
  ...
}:

{
  environment.systemPackages = [
    # Add your stable apps here (exemple: pkgs.btop)

    # Add your unstable apps here (exemple: pkgs-unstable.btop)

  ];

  # --- OPTIONS DE DÉSACTIVATION (décommenter pour désactiver) / DISABLE OPTIONS (uncomment to disable) ---
  # Après modification, appliquer avec : `glf-update` / After editing, apply with: `glf-update`

  # Désactiver Firefox / Disable Firefox
  # glf.firefox.enable = lib.mkForce false;

  # Désactiver le pilote NVIDIA (utile en cas de passage vers une carte AMD) / Disable NVIDIA driver (useful when switching to an AMD GPU)
  # glf.nvidia_config.enable = lib.mkForce false;

  # ⚠️ Désactiver les mises à jour automatiques (attention : risque pour la sécurité) / ⚠️ Disable automatic updates (warning: security risk)
  # glf.autoUpgrade.enable = false;

  # Ne pas mettre à jour ni nettoyer les Flatpaks pendant glf-update / Do not update or clean up Flatpaks during glf-update
  # glf.autoUpgrade.flatpak.enable = false;

  # Activer le support RAID logiciel (mdadm), nécessaire si votre rootfs est sur un volume md0/md1/... / Enable software RAID (mdadm) support, required when your rootfs lives on a md0/md1/... volume.
  # Rend disponibles md_mod + raid* dans l'initrd. Voir la page RAID mdadm du wiki / Makes md_mod + raid* available in the initrd. See the RAID mdadm wiki page.
  # boot.swraid.enable = true;

  # Ajouter des modules kernel supplémentaires à l'initrd / Add extra kernel modules to the initrd
  # Exemple : Btrfs RAID, NBD, etc. / Example : Btrfs RAID, NBD, etc.
  # boot.initrd.kernelModules = [ "btrfs" "nbd" ];

  # Add your custom configuration here ↓

}

Voir aussi