Commit Graph

102 Commits

Author SHA1 Message Date
Softer e7d38d0e82
Fix Limine install with ESP mounted outside /boot (#4442)
* Fix Limine install with ESP mounted outside /boot

Place limine.conf next to the EFI binary on the ESP so it is found
regardless of ESP mountpoint, and block unbootable layouts (non-UKI
Limine with ESP not at /boot and no separate /boot partition) in
GlobalMenu validation, guided.main() and _add_limine_bootloader().

Fixes #4333

* Extract bootloader layout validation into lib/bootloader/utils

* Consolidate Limine layout validation in bootloader utils

Move the boot-partition FAT check from GlobalMenu into
validate_bootloader_layout so all three call sites (GlobalMenu,
guided.py, Installer._add_limine_bootloader) share one function.

Return a BootloaderValidationFailure dataclass (kind + description)
instead of str | None, so callers can match on the failure kind and
the description is built where partition context is in scope.

* Encapsulate FAT filesystem detection in FilesystemType.is_fat()
2026-04-22 21:32:41 +10:00
codefiles 9fdd7eb12e
Refactor EncryptionType (#4438)
* Use UPPER_CASE for EncryptionType

* Use StrEnum for EncryptionType
2026-04-17 10:08:23 +10:00
Softer 80da3f14a1
Add Pacman settings submenu with Color and ParallelDownloads (#4404)
* Add Pacman settings submenu with Color and ParallelDownloads

Replace the standalone Parallel Downloads menu item with a Pacman
submenu containing ParallelDownloads (default 5) and Color (default on).
Settings are applied to both live and target system pacman.conf.
Hidden behind --advanced flag.

Backward compatible with old configs using "parallel_downloads" key.

* Skip _apply_to_live when user exits Pacman menu without changes

* Use TypedDict for PacmanConfiguration serialization

* Show Pacman menu by default, keep ParallelDownloads behind --advanced
2026-04-13 18:37:51 +10:00
correctmost 18c77b94f2
Remove unnecessary 'unused-ignore' mypy directives (#4395)
The directives were added because a PR branch accidentally lagged
behind master and did not contain the mypy python_version bump from
commit 0175949ca.

This fixes commit d70e03fa3.
2026-04-08 08:42:49 +02:00
correctmost d70e03fa3b
Update mypy to 1.20.0 (#4352)
* Update mypy to 1.20.0

This commit also removes a cast that is no longer needed after
https://github.com/python/mypy/pull/20602

* Ignore os.system deprecation warnings from mypy to fix CI
2026-04-02 07:51:47 +11:00
Daniel Girtler e763c1109c
Refactor interactive module (#4315)
* Refactor interactive module

* Refactor interactive module

* Update
2026-03-21 18:35:44 +11:00
Daniel Girtler 1764b4971d
Refactor mirrors (#4274) 2026-03-21 17:57:33 +11:00
Daniel Girtler e06dd6299f
Zram - remove custom size in config (#4272) 2026-03-21 17:56:59 +11:00
Daniel Girtler 8e34303175
Fix iwd network installation and setup (#4271)
* Fix 4223 - IWD

* Update

* Update
2026-03-21 17:56:41 +11:00
Daniel Girtler b186fb3f64
Async menu (#4308)
* Move to async TUI

* Update

* Update
2026-03-16 10:39:36 +11:00
codefiles 813b9b34b3
Refactor arch_config_handler to use DI (#4280) 2026-03-03 20:11:22 +11:00
codefiles 501759d979
Remove obsolete GRUB package install (#4277) 2026-03-02 07:04:32 +11:00
Daniel Girtler e4faba2de0
Convert imports to absolute imports (#4196)
* Enable ruff absolute import check

* Convert all relative imports to absolute

* Update

* Update
2026-02-26 20:17:48 +11:00
Anton Hvornum c92a457142
Revert "Locale timezone python chmod (#4210)" (#4257)
This reverts commit 01d3af9fbb.
2026-02-25 22:48:03 +01:00
Favilances 01d3af9fbb
Locale timezone python chmod (#4210)
* Set timezone during minimal install

* Clean up conflicting boot entries

* Revert "Clean up conflicting boot entries"

This reverts commit e673301b99.
2026-02-25 22:47:25 +01:00
Daniel Girtler 4f87ccba28
Refactor general utility functions (#4212) 2026-02-25 22:45:21 +01:00
codefiles d86daa531a
Add provision() to configure users for profiles (#4254) 2026-02-22 07:53:58 +11:00
codefiles 618c0bd5dc
Remove arch_config_handler from installer (#4246) 2026-02-19 07:18:53 +11:00
codefiles 12bd83ca8a
Refactor skip_boot to use dependency injection (#4200) 2026-02-03 11:34:27 +11:00
correctmost 331634fd80
Measure install time with monotonic clock instead of system clock (#4198)
Using time.time() can be inaccurate if the system clock gets
updated in between calls.
2026-02-01 22:48:09 +11:00
Daniel Girtler 449c1bfb36
Rename ask* functions to select* (#4191) 2026-01-31 08:17:11 +11:00
Daniel Girtler 5612325dc3
Refactor code to reduce circular dep (#4175)
* Refactor to reduce circular dep

* Update

* Update
2026-01-28 13:43:57 +01:00
codefiles 18105fff22
Use main() as script entrypoint (#4179) 2026-01-28 11:42:51 +11:00
codefiles 8ffc20b6c1
Refactor script list (#4177) 2026-01-27 17:47:36 +01:00
Daniel Girtler 316251f6e0
Refactor network config installer (#4143)
* Refactor network config installer

* Update

* Move network menu

* Remove singleton
2026-01-27 19:39:45 +11:00
codefiles d7bcd431a7
Refactor application_handler to use DI (#4172) 2026-01-27 16:39:42 +11:00
codefiles ef3b6ab853
Refactor auth_handler to use dependency injection (#4171) 2026-01-27 12:46:31 +11:00
codefiles 28f7aec2af
Refactor mirror_list_handler to use DI (#4170) 2026-01-27 11:23:01 +11:00
codefiles 192aff0b94
Replace sys.exit calls with return values (#4156) 2026-01-22 13:58:40 +11:00
codefiles 78969c58c7
Move script entry point (#4151) 2026-01-21 12:10:19 +11:00
Daniel Girtler 0aca992ac5
Migrate UI to textual (#3997)
* Footer textual

* Linting

* Revert pre-commit for pylint

* Add missing textual

* Reinstate example

* Linting
2026-01-19 07:01:40 +11:00
codefiles f6eca309ac
Use sys.exit instead of exit (#4120) 2026-01-13 07:51:08 +11:00
HADEON 2954e4397b
Feat: Zram algorithm config (#4042)
* 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
2025-12-30 15:52:35 +11:00
HADEON e5ccdb0c1c
Adds a timer to post install screen (#4028)
* Add timer to end screen of guided

* ruff check
2025-12-25 11:06:03 +11:00
Gabriel A Hernandez 7398e2785d
Typo and grammar fixes (#3970)
* Menu now filters and sorts using priority, improving UX.

* Refactor: improve logic, removed redundancy

* Refactor: improve logic, removed redundancy

* Typo and grammar fixes

* Typo and grammar fixes

* Fix comment formatting in .gitlab-ci.yml

* Fix comment

* Removed code from separate pull request

* Update menu_item.py

* removed white space

* Remove unnecessary blank lines in menu_item.py

>:(
2025-12-06 20:06:07 +11:00
Mintsuki eb815d817f
Add dialog to install EFI bootloader to removable location (#3932)
* 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
2025-11-21 11:41:24 +11:00
Daniel Girtler e4e30b31d4
Disable btrfs snapshots when no subvolumes defined (#3736) 2025-08-27 10:28:17 +02:00
Daniel Girtler 663e46f86e
Remove unattended script (#3733) 2025-08-27 10:27:25 +02:00
EK 4c17b75134
move additional packages down (#3709) 2025-08-04 19:45:38 +02:00
Anton Hvornum 3607029d59
Reverted profiles and application installation order in order to not break DE's vs audioserver setups (#3694) 2025-07-30 08:16:36 +02:00
Anton Hvornum 5355c7141a
Add --skip-boot to allow for bypassing installation of a bootloader (#3677)
* Adding the option to skip boot loader

* Fixed a variable complaint

* Fixed ruff and mypy

* Fixed mypy

* Fixed mypy

* Fixed import recursion

* Fixed ruff

* Fixed circular imports

* Fixed ruff

* Hiding the menu option for bootloader when --skip-boot is given. Still setting it default to None to avoid it sneaking into the config file or being set behind the scenes causing if statements to trigger.

* Created an Enum None type for Bootloader called NO_BOOTLOADER

* Fixed ruff

* Spelling error

* Hiding NO_BOOTLOADER if --skip-boot is omitted

* Fixed TUI error when bootloader was missing

* Fixed mypy complaints

* Fixed ruff complaint

* Made the Bootloader option visible during --skip-boot and set the default value to NO_BOOTLOADER when --skip-boot is present
2025-07-23 16:52:01 +02:00
Daniel Girtler 3e99cfbba7
Move users menu into authentication submenu (#3678)
* Move users menu into authentication submenu

* Tests

* Update

* Update
2025-07-22 08:57:39 +02:00
Daniel Girtler e0c3bb3869
Move root password menu into authentication menu (#3650) 2025-07-18 05:53:31 +00:00
Daniel Girtler 47f4e63006
Rename profile_model -> profile (#3640) 2025-07-15 09:30:15 +02:00
Daniel Girtler 96aaf5b6ac
Rename module device_model -> device (#3639) 2025-07-15 09:29:58 +02:00
Daniel Girtler 55a383764f
Add support for U2F authentication (#3638)
* Add U2F login support

* Update

* Update

* Update

* Update
2025-06-30 21:51:45 +10:00
Daniel Girtler 37b3985625
Move audio configuration to application config (#3612) 2025-06-20 07:27:23 +10:00
Daniel Girtler 27f53717b0
Add bluetooth support (#3604)
* Add bluetooth option
2025-06-18 09:57:54 +02:00
Daniel Girtler 12c8a5c62e
Mount partitions in minimal script before starting installation (#3585) 2025-06-12 07:14:54 +10:00
Daniel Girtler 063b9643b4
Add new version indicator in the title of the main menu (#3587)
* Add new version indicator in the title of the main menu

* Update
2025-06-12 07:14:30 +10:00