-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfiguration.nix
More file actions
119 lines (96 loc) · 4.08 KB
/
Copy pathconfiguration.nix
File metadata and controls
119 lines (96 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
{ pkgs, ... }: {
# ============================================================================
# 1. AMORÇAGE & SYSTÈME DE FICHIERS (Boot & Storage)
# ============================================================================
# Utilisation de systemd-boot pour l'UEFI
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Support de Btrfs au démarrage (indispensable pour votre schéma Disko)
boot.supportedFilesystems = [ "btrfs" ];
# Optimisation pour la durée de vie de votre SSD (Trim à travers LUKS)
services.fstrim.enable = true;
securix.self.mainDisk = "main";
disko.devices.disk.main.device = "/dev/nvme0n1";
securix.profiles.filesystems.enable = false;
# ============================================================================
# 2. LOCALISATION & HORLOGE (Time & Internationalization)
# ============================================================================
# Fuseau horaire de Paris & synchronisation réseau automatique
time.timeZone = "Europe/Paris";
services.chrony.enable = true;
# Si vous êtes en dual-boot avec Windows, décommentez la ligne suivante :
# time.hardwareClockInLocalTime = true;
# Paramètres linguistiques globaux
i18n.defaultLocale = "fr_FR.UTF-8";
fonts.packages = with pkgs; [
jetbrains-mono
nerd-fonts.jetbrains-mono
];
fonts.fontconfig = {
enable = true;
defaultFonts = {
monospace = [ "JetBrainsMono Nerd Font" ];
};
};
# Configuration stricte de la console TTY en AZERTY (avec fontes adaptées)
console = {
enable = true;
packages = [ pkgs.terminus_font ];
font = "ter-v16n";
useXkbConfig = true;
};
# Configuration de base d'XKB (utilisée par SDDM et les bureaux Wayland)
services.xserver = {
enable = true;
xkb = {
layout = "fr";
variant = ""; # Le TTY et SDDM restent en AZERTY classique
};
};
# ============================================================================
# 3. RÉSEAU (Networking)
# ============================================================================
# Nom de la machine (aligné avec votre cible de Flake)
networking.hostName = "nix-laptop";
networking.networkmanager.enable = true;
# ============================================================================
# 4. UTILISATEURS & SÉCURITÉ (Users & Base Permissions)
# ============================================================================
users.users.nixos = {
isNormalUser = true;
# "wheel" réactive l'usage de sudo suite au retrait temporaire de Sécurix
extraGroups = [ "wheel" "video" "networkmanager" ];
initialPassword = "nixos";
};
# ============================================================================
# 5. ENVIRONNEMENTS GRAPHIQUES (Display & Desktop Managers)
# ============================================================================
# Gestionnaire de connexion SDDM (compatible Wayland)
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
autoNumlock = true;
};
# Vos 4444vironnements disponibles au choix sur l'écran d'accueil :
services.desktopManager.plasma6.enable = true;
services.desktopManager.cosmic.enable = true;
programs.hyprland.enable = true;
programs.niri.enable = true;
# ============================================================================
# 6. PARAMÈTRES NIX & PARAMÈTRES INTERNES (Nix Core Settings)
# ============================================================================
# Activation des fonctionnalités modernes de Nix
nix.settings.experimental-features = [ "nix-command" "flakes" ];
environment.systemPackages = with pkgs; [
git
];
# Configuration globale de Neovim
programs.neovim = {
enable = true;
defaultEditor = true; # Définit nvim comme l'éditeur par défaut du système ($EDITOR)
viAlias = true; # Crée l'alias : vi -> nvim
vimAlias = true; # Crée l'alias : vim -> nvim
};
# Version d'installation initiale (ne jamais modifier pour garantir la reproductibilité)
system.stateVersion = "25.11";
}