# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# This setting specifies the mount point of the EFI system partition. Some
# distributions (Fedora, Debian, Manjaro, etc.) use /boot/efi, others (KaOS,
# etc.) use just /boot.
#
# Defaults to "/boot/efi", may be empty (but weird effects ensue)
efiSystemPartition: "/boot"

# This optional setting specifies the size of the EFI system partition.
# If nothing is specified, the default size of 300MiB will be used.
#
# This size applies both to automatic partitioning and the checks
# during manual partitioning. A minimum of 32MiB is enforced,
# 300MiB is the default, M is treated as MiB, and if you really want
# one-million (10^6) bytes, use MB.
#
efiSystemPartitionSize: 1024M

# This optional setting specifies the name of the EFI system partition (see
# PARTLABEL; gpt only; requires KPMCore >= 4.2.0).
# If nothing is specified, the partition name is left unset.
efiSystemPartitionName: EFI

# In autogenerated partitioning, allow the user to select a swap size?
# If there is exactly one choice, no UI is presented, and the user
# cannot make a choice -- this setting is used. If there is more than
# one choice, a UI is presented.
#
# Legacy settings *neverCreateSwap* and *ensureSuspendToDisk* correspond
# to values of *userSwapChoices* as follows:
#    - *neverCreateSwap* is true, means [none]
#    - *neverCreateSwap* is false, *ensureSuspendToDisk* is false, [small]
#    - *neverCreateSwap* is false, *ensureSuspendToDisk* is true, [suspend]
#
# Autogenerated swap sizes are as follows:
#    - *suspend*: Swap is always at least total memory size,
#      and up to 4GiB RAM follows the rule-of-thumb 2 * memory;
#      from 4GiB to 8 GiB it stays steady at 8GiB, and over 8 GiB memory
#      swap is the size of main memory.
#    - *small*: Follows the rules above, but Swap is at
#      most 8GiB, and no more than 10% of available disk.
# In both cases, a fudge factor (usually 10% extra) is applied so that there
# is some space for administrative overhead (e.g. 8 GiB swap will allocate
# 8.8GiB on disk in the end).
#
# If *file* is enabled here, make sure to have the *fstab* module
# as well (later in the exec phase) so that the swap file is
# actually created.
userSwapChoices:
    - none      # Create no swap, use no swap
    - small     # Up to 4GB
    - suspend   # At least main memory size
    # - reuse     # Re-use existing swap, but don't create any (unsupported right now)
    - file      # To swap file instead of partition

# This optional setting specifies the name of the swap partition (see
# PARTLABEL; gpt only; requires KPMCore >= 4.2.0).
# If nothing is specified, the partition name is left unset.
# swapPartitionName:      swap

# LEGACY SETTINGS (these will generate a warning)
# ensureSuspendToDisk:    true
# neverCreateSwap:        false

# Correctly draw nested (e.g. logical) partitions as such.
drawNestedPartitions:   false

# Show/hide partition labels on manual partitioning page.
alwaysShowPartitionLabels: true

# Allow manual partitioning.
#
# When set to false, this option hides the "Manual partitioning" button,
# limiting the user's choice to "Erase", "Replace" or "Alongside".
# This can be useful when using a custom partition layout we don't want
# the user to modify.
#
# If nothing is specified, manual partitioning is enabled.
#allowManualPartitioning:   true

# Initial selection on the Choice page
#
# There are four radio buttons (in principle: erase, replace, alongside, manual),
# and you can pick which of them, if any, is initially selected. For most
# installers, "none" is the right choice: it makes the user pick something specific,
# rather than accidentally being able to click past an important choice (in particular,
# "erase" is a dangerous choice).
#
# The default is "none"
#
initialPartitioningChoice: none
#
# Similarly, some of the installation choices may offer a choice of swap;
# the available choices depend on *userSwapChoices*, above, and this
# setting can be used to pick a specific one.
#
# The default is "none" (no swap) if that is one of the enabled options, otherwise
# one of the items from the options.
initialSwapChoice: none

# Default partition table type, used when a "erase" disk is made.
#
# When erasing a disk, a new partition table is created on disk.
# In other cases, e.g. Replace and Alongside, as well as when using
# manual partitioning, this partition table exists already on disk
# and it is left unmodified.
#
# Suggested values: gpt, msdos
# If nothing is specified, Calamares defaults to "gpt" if system is
# efi or "msdos".
#
# Names are case-sensitive and defined by KPMCore.
defaultPartitionTableType: gpt

# Requirement for partition table type
#
# Restrict the installation on disks that match the type of partition
# tables that are specified.
#
# Possible values: msdos, gpt. Names are case-sensitive and defined by KPMCore.
#
# If nothing is specified, Calamares defaults to both "msdos" and "gpt".
#
requiredPartitionTableType: gpt
# requiredPartitionTableType:
#     - msdos
#     - gpt

# Default filesystem type, used when a "new" partition is made.
#
# When replacing a partition, the existing filesystem inside the
# partition is retained. In other cases, e.g. Erase and Alongside,
# as well as when using manual partitioning and creating a new
# partition, this filesystem type is pre-selected. Note that
# editing a partition in manual-creation mode will not automatically
# change the filesystem type to this default value -- it is not
# creating a new partition.
#
# Suggested values: ext2, ext3, ext4, reiser, xfs, jfs, btrfs
# If nothing is specified, Calamares defaults to "ext4".
#
# Names are case-sensitive and defined by KPMCore.
defaultFileSystemType: "ext4"

# Selectable filesystem type, used when "erase" is done.
#
# When erasing the disk, the *defaultFileSystemType* is used (see
# above), but it is also possible to give users a choice:
# list suitable filesystems here. A drop-down is provided
# to pick which is the filesystems will be used.
#
# The value *defaultFileSystemType* is added to this list (with a warning)
# if not present; the default pick is the *defaultFileSystemType*.
#
# If not specified at all, uses *defaultFileSystemType* without a
# warning (this matches traditional no-choice-available behavior best).
availableFileSystemTypes:  ["ext4","btrfs"]

# Btrfs subvolume layout, used whenever btrfs is picked (erase mode).
#
# Without this, Calamares falls back to a single flat "@" subvolume for
# the whole root filesystem -- no separate @home/@log/@pkg, and no
# @.snapshots. That breaks tools that expect the standard Arch layout
# (e.g. grub-btrfs, which looks for snapshot subvolumes to build its GRUB
# submenu, and Snapper, which is picky about which subvolume it manages).
#
# This mirrors archinstall's default btrfs layout, see:
# https://gitlab.archlinux.org/archlinux/archinstall/-/blob/master/archinstall/lib/disk/disk_menu.py
btrfsSubvolumes:
    - mountPoint: /
      subvolume: /@
    - mountPoint: /home
      subvolume: /@home
    - mountPoint: /var/log
      subvolume: /@log
    - mountPoint: /var/cache/pacman/pkg
      subvolume: /@pkg
    - mountPoint: /.snapshots
      subvolume: /@snapshots

# Show/hide LUKS related functionality in automated partitioning modes.
# Disable this if you choose not to deploy early unlocking support in GRUB2
# and/or your distribution's initramfs solution.
#
# BIG FAT WARNING:
#
# This option is unsupported, as it cuts out a crucial security feature.
# Disabling LUKS and shipping Calamares without a correctly configured GRUB2
# and initramfs is considered suboptimal use of the Calamares software. The
# Calamares team will not provide user support for any potential issue that
# may arise as a consequence of setting this option to false.
# It is strongly recommended that system integrators put in the work to support
# LUKS unlocking support in GRUB2 and initramfs/dracut/mkinitcpio/etc.
# For more information on setting up GRUB2 for Calamares with LUKS, see
# https://github.com/calamares/calamares/wiki/Deploy-LUKS
#
# If nothing is specified, LUKS is enabled in automated modes.
#enableLuksAutomatedPartitioning:    true

# Partition layout.
#
# This optional setting specifies a custom partition layout.
#
# If nothing is specified, the default partition layout is a single partition
# for root that uses 100% of the space and uses the filesystem defined by
# defaultFileSystemType.
#
# Note: the EFI system partition is prepend automatically to the layout if
# needed; the swap partition is appended to the layout if enabled (small of
# suspend).
#
# Otherwise, the partition layout is defined as follow:
#
# partitionLayout:
#     - name: "rootfs"
#       type: "4f68bce3-e8cd-4db1-96e7-fbcaf984b709"
#       filesystem: "ext4"
#       mountPoint: "/"
#       size: 20%
#       minSize: 500M
#       maxSize: 10G
#       attributes: 0xffff000000000003
#     - name: "home"
#       type: "933ac7e1-2eb4-4f13-b844-0e14e2aef915"
#       filesystem: "ext4"
#       mountPoint: "/home"
#       size: 3G
#       minSize: 1.5G
#       features:
#         64bit: false
#         casefold: true
#     - name: "data"
#       filesystem: "fat32"
#       mountPoint: "/data"
#       features:
#         sector-size: 4096
#         sectors-per-cluster: 128
#       size: 100%
#

# btrfsSubvolumes (above) is only honoured when a custom partitionLayout is
# in effect -- Calamares' own hardcoded btrfs subvolume defaults are used
# otherwise, even in plain "erase disk" automatic mode. "unknown" here means
# the user's actual filesystem choice (ext4 or btrfs) is used, same as the
# no-custom-layout default -- this just exists to make btrfsSubvolumes apply.
partitionLayout:
    - name: "rootfs"
      filesystem: "unknown"
      mountPoint: "/"
      size: 100%
# There can be any number of partitions, each entry having the following attributes:
#   - name: filesystem label
#           and
#           partition name (gpt only; since KPMCore 4.2.0)
#   - uuid: partition uuid (optional parameter; gpt only; requires KPMCore >= 4.2.0)
#   - type: partition type (optional parameter; gpt only; requires KPMCore >= 4.2.0)
#   - attributes: partition attributes (optional parameter; gpt only; requires KPMCore >= 4.2.0)
#   - filesystem: filesystem type (optional parameter)
#       - if not set at all, treat as "unformatted"
#       - if "unformatted", no filesystem will be created
#       - if "unknown" (or an unknown FS name, like "elephant") then the
#         default filesystem type, or the user's choice, will be applied instead
#         of "unknown" (e.g. the user might pick ext4, or xfs).
#   - mountPoint: partition mount point (optional parameter; not mounted if unset)
#   - size: partition size in bytes (append 'K', 'M' or 'G' for KiB, MiB or GiB)
#           or
#           % of the available drive space if a '%' is appended to the value
#   - minSize: minimum partition size (optional parameter)
#   - maxSize: maximum partition size (optional parameter)
#   - features: filesystem features (optional parameter; requires KPMCore >= 4.2.0)
#       name: boolean or integer or string

# Checking for available storage
#
# This overlaps with the setting of the same name in the welcome module's
# requirements section. If nothing is set by the welcome module, this
# value is used instead. It is still a problem if there is no required
# size set at all, and the replace and resize options will not be offered
# if no required size is set.
#
# The value is in Gibibytes (GiB).
#
# BIG FAT WARNING: except for OEM-phase-0 use, you should be using
#                  the welcome module, **and** configure this value in
#                  `welcome.conf`, not here.
# requiredStorage: 3.5


lvm:
    enable: false
