Caution
⚠️ Attention : La modification du fichier
/etc/nixos/customConfig/default.nixest à vos risques et périls, n'y touchez que si vous savez ce que vous faites ! ⚠️
GLF-OS fournit un espace pour ajouter vos configurations personnalisés dans /etc/nixos/customConfig/default.nix
Si la configuration actuelle et les flatpaks ne répondent pas entièrement à vos besoins, vous avez la possibilité de modifier la configuration.
Note
A noter que vous pourrez trouver une grande quantité d'applications sur le lien suivant :
https://search.nixos.org/packages
Voici un exemple pratique, nous allons ajouter google chrome.
L'option permettant d'installer google chrome est pkgs.google-chrome trouvable ici https://search.nixos.org/packages?channel=25.05&from=0&size=50&sort=relevance&type=packages&query=google-chrome
/etc/nixos/customConfig/default.nix l'outil Éditeur de texte de Gnome fera l'affaire.pkgs.google-chrome en dessous du commentaire # Add your stable apps here (exemple: pkgs.btop){
lib,
config,
pkgs,
pkgs-unstable,
...
}:
{
environment.systemPackages = [
# Add your stable apps here (exemple: pkgs.btop)
pkgs.google-chrome
# Add your unstable apps here (exemple: pkgs-unstable.btop)
];
# Add your custom configuration here ↓
}
CTRL+S, le mot de passe root sera demandé.glf-update
Si maintenant vous souhaitez ouvrir des ports particulier dans le parefeu c'est dans la partie configuration du même fichier /etc/nixos/customConfig/default.nix que cela se passe.
{
lib,
config,
pkgs,
pkgs-unstable,
...
}:
{
environment.systemPackages = [
# Add your stable apps here (exemple: pkgs.btop)
pkgs.google-chrome
# Add your unstable apps here (exemple: pkgs-unstable.btop)
];
# Add your custom configuration here ↓
networking.firewall.allowedTCPPortRanges = [
{ from = 51413; to = 51413; }
];
}
Sauvegardez votre fichier avec CTRL+S, le mot de passe root sera demandé.
Exécutez la commande:
glf-update
Rebootez la machine
Vous pouvez configurer votre système de manière plus fine en suivant les conseils sur cette page.
C'est la notion la plus utile de cette page, et elle explique tous les exemples qui suivent.
NixOS ne lit pas votre fichier « après » le nôtre pour l'écraser : il fusionne les deux. Le comportement dépend du type de l'option.
| Type d'option | Ce qui se passe |
|---|---|
| Une liste | vos éléments s'ajoutent aux nôtres, rien n'est perdu |
| Une valeur simple (booléen, chaîne, paquet) | conflit si nous l'avons déjà posée, il faut lib.mkForce |
Note
Vous n'avez rien à retirer chez nous : votre liste s'ajoute à la nôtre.
Prenons OBS Studio. GLF déclare déjà quatre greffons, et en ajoute d'autres selon votre carte graphique. Pour ajouter les vôtres, il suffit de déclarer la liste dans votre fichier :
{
# Add your custom configuration here ↓
programs.obs-studio.plugins = with pkgs.obs-studio-plugins; [
obs-backgroundremoval
obs-shaderfilter
input-overlay
];
}
Caution
Trois pièges à éviter :
- ne réécrivez pas
enablenipackage, nous les posons déjà. Déclarerpackageentrerait en conflit avec notre variante CUDA activée sur les cartes NVIDIA- le préfixe est
pkgs.obs-studio-plugins., et nonpkgs.: les greffons OBS vivent dans leur propre ensemble- un greffon est lié à la version d'OBS. Un greffon prévu pour une autre version ne se chargera pas
Le même raisonnement vaut pour Steam, dont nous alimentons déjà les outils de compatibilité. Pour ajouter des utilitaires à son environnement :
{
programs.steam.extraPackages = [
pkgs.steamtinkerlaunch
pkgs.protontricks
];
}
Ici la fusion ne suffit plus : deux valeurs simples entrent en conflit et l'évaluation échoue. lib.mkForce tranche en votre faveur.
{
fonts.fontconfig.defaultFonts.monospace = lib.mkForce [ "JetBrainsMono Nerd Font" ];
}
Note
Sans
lib.mkForce, vous obtiendrez une erreur du type « The option has conflicting definition values ». Ce message ne signale pas une faute de votre part : il vous demande simplement de dire qui gagne.
Chaque grand ensemble expose un interrupteur, déjà listé en commentaire dans votre fichier :
{
glf.firefox.enable = lib.mkForce false; # retirer Firefox
glf.gaming.enable = lib.mkForce false; # retirer tout le pack gaming
glf.printing.enable = lib.mkForce false; # retirer l'impression
}
Note
Pour les applications individuelles, préférez GLF Customizer : il écrit dans un fichier prévu pour cela et évite les conflits.
Quand aucune option n'existe, on agit sur le paquet.
{
environment.systemPackages = [
(pkgs.mpv.override { scripts = [ pkgs.mpvScripts.mpris ]; })
];
}
Caution
Le paquet ne correspond alors plus à celui du cache binaire : il devra être recompilé sur votre machine. Prévoyez le temps nécessaire.
nix search nixpkgs obs-studio-pluginsnixos-option programs.obs-studio.pluginsmkForce : pourquoi et comment arbitrer un conflitoverride et overrideAttrsNote
Une erreur d'évaluation n'installe rien : votre système reste tel quel. Vous ne risquez pas de le casser en essayant.
Si un démarrage se passe mal après une modification, choisissez la génération précédente dans le menu de démarrage, elle est toujours là.
Pour revenir en arrière sans redémarrer :
sudo nixos-rebuild switch --rollback
© 2025 GLF