{ ... }: {
  disko.devices = {
    disk.main = {
      type = "disk";
      device = "/dev/nvme0n1";
      content = {
        type = "gpt";
        partitions = {
          boot = {
            size = "512MiB";
            type = "EF00";
            content = {
              type = "filesystem";
              format = "vfat";
              mountpoint = "/boot/efi";
              mountOptions = [ "umask=0077" "noauto" ];
            };
          };

          rescue = {
            size = "8GiB";
            type = "8300";
            content = {
              type = "filesystem";
              format = "ext4";
              mountpoint = "/rescue";
              mountOptions = [ "nofail" "noauto" "nosuid" "nodev" "noexec" ];
            };
          };

          root = {
            size = "100%";
            type = "8e00"; # LVM partition
            content = {
              type = "lvm_pv";
              vg = "vg-main";
            };
          };
        };
      };
    };

    lvm_vg."vg-main" = {
      type = "lvm_vg";
      lvs = {
        # -- Système principal --
        lv-root = {
          size = "100G";
          content = {
            type = "btrfs";
            mountpoint = "/";
            mountOptions = [ "compress=zstd:3" "noatime" "space_cache=v2" "discard=async" ];
          };
        };

        lv-home = {
          size = "100G";
          content = {
            type = "btrfs";
            extraArgs = [ "-f" ];
            mountpoint = "/home";
            mountOptions = [
              "compress=zstd:3"
              "noatime"
              "nodev"
              "nosuid"
              "space_cache=v2"
              "discard=async"
            ];
            subvolumes = {
              "@homebin" = {
                mountpoint = "/home/dunoz/bin";
                mountOptions = [
                  "compress=zstd:3"
                  "noatime"
                  "nodev"
                  "nosuid"
                  "space_cache=v2"
                  "discard=async"
                  "subvol=@homebin"
                ];
              };
            };
          };
        };

        lv-nix = {
          size = "80G";
          content = {
            type = "btrfs";
            mountpoint = "/nix";
            mountOptions = [ "compress=zstd:3" "noatime" "space_cache=v2" "discard=async" ];
          };
        };

        lv-var = {
          size = "50G";
          content = {
            type = "btrfs";
            mountpoint = "/var";
            mountOptions = [ "compress=zstd:3" "noatime" "nodev" "nosuid" "space_cache=v2" "discard=async" ];
          };
        };

        # -- Données & builds (no COW) --
        lv-work = {
          size = "100G";
          content = {
            type = "btrfs";
            mountpoint = "/home/dunoz/Work";
            mountOptions = [ "nodatacow" "noatime" "nodev" "space_cache=v2" "discard=async" ];
          };
        };

        lv-games = {
          size = "200G";
          content = {
            type = "btrfs";
            mountpoint = "/home/dunoz/.local/share/Steam";
            mountOptions = [ "nodatacow" "noatime" "nodev" "space_cache=v2" "discard=async" ];
          };
        };

        lv-qemu = {
          size = "200G";
          content = {
            type = "btrfs";
            mountpoint = "/var/lib/libvirt/images";
            mountOptions = [ "nodatacow" "noatime" "nodev" "nosuid" "space_cache=v2" "discard=async" ];
          };
        };

        lv-container = {
          size = "20G";
          content = {
            type = "btrfs";
            mountpoint = "/var/lib/machines";
            mountOptions = [ "nodatacow" "noatime" "nodev" "nosuid" "space_cache=v2" "discard=async" ];
          };
        };
      };
    };

    filesystem.raid = {
      type = "filesystem";
      device = "/dev/md0";
      format = "btrfs";
      mountpoint = "/srv/raid";
      mountOptions = [ "compress=zstd:3" "noatime" "nofail" "noexec" "nodev" "nosuid" "space_cache=v2" "discard=async" ];
    };

    bindmounts = {
      docs = {
        device = "/srv/raid/home-data/Documents";
        mountpoint = "/home/dunoz/Documents";
        options = [ "bind" "nofail" "nosuid" "nodev" "noexec" ];
      };
      images = {
        device = "/srv/raid/home-data/Images";
        mountpoint = "/home/dunoz/Images";
        options = [ "bind" "nofail" "nosuid" "nodev" "noexec" ];
      };
      music = {
        device = "/srv/raid/home-data/Musique";
        mountpoint = "/home/dunoz/Musique";
        options = [ "bind" "nofail" "nosuid" "nodev" "noexec" ];
      };
      downloads = {
        device = "/srv/raid/home-data/Téléchargements";
        mountpoint = "/home/dunoz/Téléchargements";
        options = [ "bind" "nofail" "nosuid" "nodev" "noexec" ];
      };
      videos = {
        device = "/srv/raid/home-data/Vidéos";
        mountpoint = "/home/dunoz/Vidéos";
        options = [ "bind" "nofail" "nosuid" "nodev" "noexec" ];
      };
      config = {
        device = "/srv/raid/home-data/nixos-config";
        mountpoint = "/home/dunoz/nixos-config";
        options = [ "bind" "nofail" "nosuid" "nodev" ];
      };
    };
  };
}
