Quand on commence à personnaliser GLF OS, tout tient dans /etc/nixos/customConfig/default.nix. Au bout de quelques semaines le fichier s'allonge, on ne retrouve plus ses réglages et on hésite à y toucher. La réponse tient en un mot : imports. Vous écrivez un petit fichier par sujet, vous l'ajoutez à la liste, et votre default.nix redevient lisible.
Cette page sert de point d'entrée à une série de douze articles. Chacun détaille un fichier complet, pris sur une machine qui tourne au quotidien : ce qu'il apporte, ce que fait chaque ligne, les pièges rencontrés, les options que vous pourriez vouloir changer, et quoi faire quand cela ne marche pas.
Remarque
Si vous découvrezcustomConfig, lisez d'abord Ajouter vos programmes et Configuration personnalisée. Les douze articles partent du principe que ces deux pages sont acquises.
Le principe, en une page
Un module, c'est un fichier .nix rangé à côté de default.nix, dans /etc/nixos/customConfig/. Il commence par un en-tête déclarant ce dont il a besoin, suivi d'un bloc de réglages. Vous le nommez comme vous voulez.
Voici à quoi ressemble un default.nix une fois les modules sortis :
{
lib,
config,
pkgs,
pkgs-unstable,
...
}:
{
imports = [
./claude-code.nix
./guake.nix
./zsh.nix
./vim.nix
./protonvpn.nix
./secret-mngt.nix
./vivaldi.nix
./mes-programmes.nix
./protonup-qt.nix
./ssh.nix
./invite-vm.nix
./samba.nix
];
environment.systemPackages = [
# Add your stable apps here (exemple: pkgs.btop)
# Add your unstable apps here (exemple: pkgs-unstable.btop)
];
# Add your custom configuration here ↓
}
Trois choses à retenir :
- le chemin est relatif au dossier
customConfig, d'où le./en tête ; importsse place juste après l'accolade ouvrante qui suit}:, avant le reste ;- toutes les listes des fichiers importés s'additionnent avec celles de
default.nix, vous ne perdez rien en déplaçant un paquet.
Chaque fichier porte son propre en-tête, qui liste uniquement ce qu'il utilise :
{ pkgs, ... }: # le fichier n'utilise que pkgs
{ lib, pkgs, ... }: # il utilise aussi lib (mkForce, mkDefault, mkIf)
{ pkgs, pkgs-unstable, ... }: # il pioche dans la branche instable
Astuce
Un#devant une ligne d'import désactive le module sans supprimer le fichier. C'est la façon la plus simple de savoir si l'un de vos ajouts est responsable d'un problème.
Une fois vos fichiers écrits et vos lignes ajoutées, une seule commande applique le tout :
glf-update
Les douze articles
Environnement de travail
- Installer Claude Code et son outillage : l'assistant en ligne de commande, Windsurf, direnv et les serveurs de langage Nix.
- Installer Guake, le terminal déroulant : un terminal qui descend sur F12, et pourquoi il faut passer par dconf sous Wayland.
- Installer zsh et le thème Powerlevel10k : oh-my-zsh, les greffons, les polices Nerd Font et les pièges du changement de shell.
- Configurer vim et ses greffons : des greffons déclarés dans Nix, sans Vundle ni vim-plug.
Applications
- Installer Vivaldi avec les codecs propriétaires : comprendre
overrideà travers un cas concret. - Installer FileZilla : le cas le plus simple, et comment ne pas se marcher sur les pieds avec GLF Packages.
- Installer ProtonUp-Qt : GE-Proton, Wine-GE, et pourquoi votre nouvelle version n'apparaît pas dans Steam.
- Installer Proton VPN : l'application officielle, la variante en ligne de commande, et le tunnel WireGuard entièrement déclaratif.
Réseau et sécurité
- Chiffrer ses secrets avec sops : pourquoi un mot de passe n'a rien à faire dans un fichier
.nix, et comment faire autrement. - Ouvrir un accès SSH et se connecter par clé : l'authentification par clé, et l'ordre des opérations pour ne pas se retrouver à la porte.
- Partager un dossier avec Samba : un partage authentifié, un partage ouvert, toutes les options, et le montage depuis une autre machine.
- Installer les agents invités QEMU/KVM et SPICE : presse-papiers partagé, définition d'écran qui suit, extinction propre.
En cas de problème
Remarque
Une erreur d'évaluation n'installe rien. Votre système reste exactement dans l'état où il était, et vous pouvez corriger tranquillement. On ne casse pas une installation NixOS en se trompant dans un fichier.
Les messages que vous rencontrerez le plus souvent :
- undefined variable 'pkgs-unstable' : l'en-tête du fichier ne mentionne pas ce qu'il utilise. Ajoutez le mot manquant entre les accolades de la première ligne.
- path '/etc/nixos/customConfig/mon-fichier.nix' does not exist : une faute de frappe dans
imports, ou un fichier créé ailleurs. Le chemin part toujours du dossiercustomConfig. - The option 'x' has conflicting definition values : GLF OS a déjà posé cette valeur. Ce n'est pas une faute de votre part, le système vous demande de trancher, avec
lib.mkForce. - attribute 'y' missing : le nom du paquet n'existe pas tel quel. Vérifiez-le sur search.nixos.org, les tirets et les majuscules comptent.
Si un démarrage se passe mal après une modification, la génération précédente est toujours proposée dans le menu de démarrage. Et sans redémarrer :
sudo nixos-rebuild switch --rollback
Et vous ?
Si vous avez composé des modules pour d'autres usages, ils ont toute leur place dans Partagez vos configs. Et si un point reste obscur dans l'un des douze articles, posez la question en réponse sous celui qui vous concerne : la réponse profitera aux suivants.