1 # Fichier principal de configuration de NixOS
2 # TODO: penser à git commit les modifications.
4 # Commandes usuelles pour configurer NixOS :
5 # - nix-upgrade : Applique au système la présente configuration.
6 # NOTE: à faire pour prendre en compte toute modification,
7 # comme l’ajout ou la suppression d’un logiciel.
9 # - nix-rollback : Applique au système la précédente configuration disponible.
10 # NOTE: utile pour retrouver un état fonctionnel
11 # si problème avec la nouvelle configuration.
13 # - nix-history : Liste les anciennes configurations encore diponibles.
15 # - nix-clean : Supprime les anciennes configurations
16 # (vers lesquelles faire un nix-rollback)
17 # et libère l’espace utilisé par les paquets inutilisés
18 # (avec le ramasse-miettes, aka. garbage collector).
19 # NOTE: à faire si le système convient depuis un moment
20 # ou si manque d’espace sur la partition racine.
22 # - nix-catalog : Liste les catalogues des paquets disponibles.
24 # - nix-update : Récupère les mise-à-jours depuis les catalogues des paquets disponibles.
25 # NOTE: à faire de temps en temps avant un nix-upgrade.
27 # - nix-upstream : Affiche la version de NixOS stabilisée bi-annuellement
28 # (de mars ou de septembre) et utilisée
29 # pour récupérer le catalogue des paquets (avec nix-update).
30 # NOTE: À changer grosso-modo en avril et en octobre,
31 # par exemple en avril 2019 :
32 # $ sudo nix-channel --remove nixos
33 # $ sudo nix-channel --add https://nixos.org/channels/nixos-19.03 nixos
34 # et en octobre 2019 :
35 # $ sudo nix-channel --remove nixos
36 # $ sudo nix-channel --add https://nixos.org/channels/nixos-19.09 nixos
38 # C’est une manip' qui pourrait être évitée en suivant
39 # https://nixos.org/channels/nixos-unstable,
40 # mais c’est plus... stable comme ça.
42 # Entête usuelle d”une configuration de NixOS.
43 { config, pkgs, ... }: {
45 # Import d’autres fichiers de configuration.
47 [ ./hardware.nix # Fichier de configuration du matériel.
48 # NOTE: à modifier seulement en cas de changement
49 # d’ordinateur ou de disque dur.
50 ./system.nix # Fichier de configuration de base du système.
51 # NOTE: pour la configuration experte.
54 # Configuration de l’user sevy
59 "wheel" # Permet d’utiliser sudo.
64 # Liste de programmes à installer
65 environment.systemPackages = with pkgs; [
80 gnome3.gnome-calculator
82 imagemagick # convert, mogrify, ...
83 parcellite # Presse papier
90 networkmanager-openvpn
91 pass # Trousseau de clés
92 # - Créer : pass generate example.com/mon-compte@mon-mail.coop 24
93 # - Récupérer : pass -c example.com/mon-compte@mon-mail.coop
95 firefoxPackages.tor-browser
98 libdvdcss # Clés pour lire les DVD
106 # Le nom du paquet est suggéré en essayant
107 # de lancer dans un terminal une commande qu’il fournit,
110 # The program ‘inkscape’ is currently not installed. You can install it by typing:
111 # nix-env -iA nixos.inkscape
113 # NOTE: installer avec nix-env est possible
114 # mais cela revient à fonctionner comme avec apt install sous Debian
115 # c’est-à-dire à perdre la reproductibilité que fournit
116 # la déclaration complète de ce que l’on veut en l’écrivant
117 # dans le présent fichier de configuration.
118 # Mais ça peut être pertinent pour tester de manière jetable.
120 # Alternativement, on peut chercher un paquet ainsi :
121 # $ nix search inkscape
122 # * nixpkgs.inkscape (inkscape)
123 # Vector graphics editor
126 virtualisation.virtualbox.host.enable = true;
127 users.extraUsers.sevy.extraGroups = ["vboxusers"];