* Fix examples/config-sample.json to match the current config format
The sample config has not been valid since the 2023 disk layout rework
and currently fails to parse, so the file the README points users at
cannot be used:
- sector_size was null, but SectorSize became a required object
- partitions were missing the dev_path key, which the parser reads
- the /home size used the Percent unit, which no longer exists
- /home started at 20 GiB while / ended at 20993 MiB, overlapping it
- gfx_driver kept the old "All open-source (default)" value
Sizes and keys now mirror what the installer itself writes when saving
a configuration.
* Cover the example configs with a parsing test
Nothing in the test suite or CI reads examples/, which is how the sample
config could stay broken for years while every other config surface kept
working. Parse both example files through ArchConfigHandler, and check
the partition entries directly since the parser only reaches them when
the configured device exists on the machine, which is never true in CI.
* Fail the partition test when the example config has none
The loops in test_example_config_partitions would not execute if
device_modifications or a device's partitions were empty, so the test
could pass while checking nothing.
* Add configuration for swap algorithm. Backward compatible implementation
* Fix interaction to default to Yes and show (default)
* Fix mypy error
* Any -> str, str
* feedback Enums
* test file
* line length warning
* Renames
* Fix default values in TUI menu for display
* Address feedback
* More feedback, really appreciate it.
* Adapt to use same | None = None pattern
* Pytests
* Add missing import for Zram
* Add dialog to install EFI bootloader to removable location
This is just for GRUB and Limine for now.
* Move bootloader removable and UKI selections to bootloader submenu
* Update ask_for_bootloader_removable() prompt for ease of translation
* Fix issue where removable and UKI options were always enabled at first
* Minor cosmetic fixes to bootloader removable code
* Add has_removable_support to Bootloader
* Validate UKI and removable options in installer
* Use has_removable_support() where appropriate
* Fix potential AttributeError when bootloader_config is None
* Set default value for bootloader configuration menu item
* Update documentation after EFI removable/Limine changes
* Update limine.conf and non-removable location paths (as per Wiki)
* Do not create fallback boot menu entries when using UKIs on Limine
* Remove useless ask_* wrappers in bootloader_menu
* Improve bootloader menu previews
* Make bootloader menu __init__.py empty
* Edit text menu
* Fix alignment
* Scroll functionality
* Fix flake8
* Migrate locales menu
* Fix language translation
* Fix interrupt
* Fix flake8
* Edit mode preset
* Convert print to tui prints
* Fix mypy
* Fix cycling through long menu
* Fix profile view
* Fix scrolling
* Fix scrolling
* Fix mypy
* Fix swiss script
* Display asterisk for passwords
* Corrected a variable usage in the local mirror parsing
* Made sure that curses menu selection on mirrors use url object from mirror.url instead of the class instance
* Fixed mypy type on mirror list
---------
Co-authored-by: Torxed <torxed@archlinux.org>
I did not add the 'dev_path' key to each one of the partitions, as this may not be required in the 'default_layout' section, but it was required in my configuration when I chose 'manual_partitioning'.
* schema.json: Remove dead misspelled i3-gasp profile
* schema.json: Rename KDE Plasma profile to the correct "Plasma" shorthand
* Rename to KDE Plasma in user facing parts and keep the old "Kde" profile for now
* Add back an accidental deleted character
* Backwards compat v2