]> Git — Sourcephile - sourcephile-nix.git/blob - bootstrap/sévy/configuration.nix
nixops: add mermet
[sourcephile-nix.git] / bootstrap / sévy / configuration.nix
1 # Fichier principal de configuration de NixOS
2 # TODO: penser à git commit les modifications.
3 #
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.
8 #
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.
12 #
13 # - nix-history : Liste les anciennes configurations encore diponibles.
14 #
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.
21 #
22 # - nix-catalog : Liste les catalogues des paquets disponibles.
23 #
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.
26 #
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
37 #
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.
41
42 # Entête usuelle d”une configuration de NixOS.
43 { config, pkgs, ... }: {
44
45 # Import d’autres fichiers de configuration.
46 imports =
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.
52 ];
53
54 # Configuration de l’user sevy
55 users.users.sevy = {
56 isNormalUser = true;
57 uid = 1000;
58 extraGroups = [
59 "wheel" # Permet d’utiliser sudo.
60 "networkmanager"
61 ];
62 };
63
64 # Liste de programmes à installer
65 environment.systemPackages = with pkgs; [
66 # Internet
67 amule
68 chromium
69 firefox
70 liferea
71 transmission-gtk
72 thunderbird
73
74 # Bureautique
75 #djview
76 evince
77 geeqie
78 gimp
79 git
80 gnome3.gnome-calculator
81 hledger
82 imagemagick # convert, mogrify, ...
83 parcellite # Presse papier
84 libreoffice
85 vimHugeX # gvim
86 xsane # scan
87
88 # Sécurité
89 gnupg
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
94 #torbrowser
95 firefoxPackages.tor-browser
96
97 # Multimédia
98 libdvdcss # Clés pour lire les DVD
99 mplayer
100 vlc
101 #youtubeDL
102
103 # Jeux
104 #freeciv_gtk
105 ];
106 # Le nom du paquet est suggéré en essayant
107 # de lancer dans un terminal une commande qu’il fournit,
108 # par exemple :
109 # $ inkscape
110 # The program ‘inkscape’ is currently not installed. You can install it by typing:
111 # nix-env -iA nixos.inkscape
112 #
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.
119 #
120 # Alternativement, on peut chercher un paquet ainsi :
121 # $ nix search inkscape
122 # * nixpkgs.inkscape (inkscape)
123 # Vector graphics editor
124
125 # VirtualBox
126 virtualisation.virtualbox.host.enable = true;
127 users.extraUsers.sevy.extraGroups = ["vboxusers"];
128 }