Configuration custom

GLF OS réserve un fichier à vos ajouts personnels, /etc/nixos/customConfig/default.nix. Cette page explique comment y déclarer des applications et des options supplémentaires lorsque la configuration fournie ne suffit pas.

:stop_sign: Prudence
:warning: Attention : La modification du fichier /etc/nixos/customConfig/default.nix est à vos risques et périls, n'y touchez que si vous savez ce que vous faites ! :warning:


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.


Ajout d'une application présente dans les dépots nix.

:information_source: Remarque
A noter que vous pourrez trouver une grande quantité d'applications sur le lien suivant :
NixOS Search


Voici un exemple pratique, nous allons ajouter google chrome.

L'option permettant d'installer google chrome est pkgs.google-chrome trouvable ici NixOS Search

1- Ouvrez le fichier /etc/nixos/customConfig/default.nix l'outil Éditeur de texte de Gnome fera l'affaire.

2 -Ajoutez 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 ↓

}

3- Sauvegardez votre fichier avec CTRL+S, le mot de passe root sera demandé.

4- Exécutez la commande avec le terminal :

glf-update

5- Rebootez la machine

Ajout d'une configuration personnalisée.

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


Au sujet de la modularité

Vous pouvez configurer votre système de manière plus fine en suivant les conseils sur cette page.


Comprendre comment vos réglages se combinent aux nôtres

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

Compléter une application déjà fournie par GLF

:information_source: Remarque
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
  ];
}

:stop_sign: Prudence
Trois pièges à éviter :

  • ne réécrivez pas enable ni package, nous les posons déjà. Déclarer package entrerait en conflit avec notre variante CUDA activée sur les cartes NVIDIA
  • le préfixe est pkgs.obs-studio-plugins., et non pkgs. : 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
  ];
}

Changer une valeur que GLF a déjà posée

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" ];
}

:information_source: Remarque
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.


Désactiver une brique de GLF

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
}

:information_source: Remarque
Pour les applications individuelles, préférez GLF Customizer : il écrit dans un fichier prévu pour cela et évite les conflits.


Modifier un paquet lui-même

Quand aucune option n'existe, on agit sur le paquet.

{
  environment.systemPackages = [
    (pkgs.mpv.override { scripts = [ pkgs.mpvScripts.mpris ]; })
  ];
}

:stop_sign: Prudence
Le paquet ne correspond alors plus à celui du cache binaire : il devra être recompilé sur votre machine. Prévoyez le temps nécessaire.


Trouver les options et les paquets

  • Une option sur search.nixos.org/options. Le type affiché vous dit immédiatement si elle se cumule (une liste) ou entre en conflit (une valeur simple)
  • Un paquet sur search.nixos.org/packages, ou en ligne de commande avec nix search nixpkgs obs-studio-plugins
  • Ce que GLF déclare déjà, pour ne pas entrer en conflit : nixos-option programs.obs-studio.plugins

Pour aller plus loin, côté NixOS


En cas de problème

:information_source: Remarque
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

Voir aussi