Commit Graph

192 Commits

Author SHA1 Message Date
Mário Victor Ribeiro Silva e61b81d5cc Merge branch 'master' into feat/add_plymouth 2026-06-09 08:15:45 -03:00
Lena Pastwa c67ed4b668
Update Polish translation, fix typo (#4579)
* Update Polish translation

* Fix typo
2026-06-09 16:46:14 +10:00
Mário Victor Ribeiro Silva db71fb2735 refactor: move plymouth to bootleader menu 2026-05-25 12:57:48 -03:00
Mário Victor Ribeiro Silva 1f66848b22 feat: add plymouth config 2026-05-24 23:21:12 -03:00
Daniel Girtler ac4bc442de
Refactor logging and formatting logic (#4542)
* Refactor logging and formatting

* Refactor logging and formatting

* Refactor logging and formatting

* Updaet
2026-05-19 17:48:03 +02:00
HADEON b81fe955f0
Add IWD standalone option to network configuration + fix NM_IWD (#4528)
* Add iwd standalone option to network configuration

Adds NicType.IWD as a third option alongside NM and NM_IWD: install
iwd, write /etc/iwd/main.conf with EnableNetworkConfiguration=true and
NameResolvingService=systemd, enable iwd.service + systemd-resolved.service.
iwd handles DHCP itself and resolved picks up its DNS via the symlink, so
no NetworkManager pulled in.

Also fills in parse_arg cases for NM_IWD and IWD so config files
round-trip both nic types.

Assisted-By: Flint

* wire up resolv stub and networkd service

* exclude virtual devices, dont harcode iface name instead match 'ether'
similar pattern to .network files shipped in /etc/systemd/network

* use dedent and rename menu option
2026-05-15 13:57:31 +10:00
Daniel Girtler 7fc33c2507
Enhance config types and summary (#4532)
* Enhance config types and summary

* Update
2026-05-10 22:35:53 +02:00
Softer 7b5dddf34b
Fix truncated package metadata in additional packages preview (#3580) (#4510)
* Fix truncated package metadata in additional packages preview (#3580)

* Simplify package info fix: use rstrip and CSS wrap instead of env var plumbing

* Apply preview text wrap conditionally via wrap_preview parameter

* Add missing wrap-preview CSS to OptionListScreen and pass parameter through SelectMenu
2026-05-07 10:17:13 +10:00
codefiles 9010ccf9eb
Add kernel enum (#4489) 2026-04-28 17:08:19 +10:00
Softer 210329ed80
Add console font selection to Locales menu (#4469)
* Add console font selection to Locales menu

Add a 4th menu item "Console font" to the Locales configuration,
allowing users to select a console font for the target system.
The selected font is written to /etc/vconsole.conf.

If a terminus font (ter-*) is selected, the terminus-font package
is automatically installed on the target system.

* Switch list_console_fonts to pathlib and add @lru_cache

Address svartkanin's review on #4469. Replace os.listdir +
chained removesuffix with Path.glob('*.gz') + split('.')[0],
and cache the result via lru_cache - the kbd consolefonts
directory is static at runtime so re-scanning on every menu
reopen was wasted I/O.
2026-04-27 09:30:20 +10:00
Softer d836ab0a66
Extend validate_bootloader_layout with UEFI-dependent checks (#4474)
* Extend validate_bootloader_layout with UEFI-dependent checks

Add is_uefi parameter and three new validations: Systemd-boot, Efistub
and rEFInd require UEFI; Efistub additionally requires a FAT boot
partition. Move the rEFInd UEFI-only check out of GlobalMenu so
guided.py and Installer silent-install paths get the same coverage.

* Encapsulate UEFI-only flag in Bootloader enum

Replace module-level _UEFI_ONLY_BOOTLOADERS tuple with an
is_uefi_only() method on the Bootloader enum, mirroring the
existing has_uki_support() / has_removable_support() pattern.

* Drop is_uefi parameter from validate_bootloader_layout

The UEFI flag is a constant system fact for the run, so the
validator retrieves it via SysInfo.has_uefi() directly instead
of having every caller pass it in. Updates all three call sites
in global_menu.py, installer.py and guided.py, and removes the
now-unused SysInfo import from guided.py.
2026-04-26 19:14:23 +10:00
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
correctmost d1765323d8
Use staticmethod for PasswordStrength methods (#4461)
The methods don't need access to the class, so they don't need to
be classmethods. This change reduces the number of 'bad return'
warnings seen when running Pyright, Pyrefly, and ty.
2026-04-22 21:31:06 +10:00
Softer 4fcef35af0
Add optional "Additional fonts" selection to Applications menu (#4420)
* Add Fonts application with multi-select for emoji and CJK packages

* Rename to Additional fonts and add package descriptions

* Add noto-fonts to font package selection

* Move font descriptions into FontPackage enum method

* ci: trigger tests

* Add ttf-liberation and ttf-dejavu to font selection
2026-04-18 12:02:47 +10:00
codefiles 9fdd7eb12e
Refactor EncryptionType (#4438)
* Use UPPER_CASE for EncryptionType

* Use StrEnum for EncryptionType
2026-04-17 10:08:23 +10:00
codefiles 3cabe860ae
Refactor LsblkInfo field validators (#4428) 2026-04-16 14:06:23 +10:00
codefiles 7ea171369a
Refactor PartitionType (#4432)
* Use UPPER_CASE for PartitionType

* Use StrEnum for PartitionType
2026-04-16 14:05:08 +10:00
codefiles 2b27e565ae
Refactor ModificationStatus (#4422)
* Use UPPER_CASE for ModificationStatus member names

* Use StrEnum for ModificationStatus

* Replace LvmVolumeStatus with ModificationStatus
2026-04-14 15:37:14 +10:00
codefiles 335a7b792c
Refactor FilesystemType (#4417)
* Use UPPER_CASE for FilesystemType member names

* Use StrEnum for FilesystemType

* Use FilesystemType member values
2026-04-13 18:41:59 +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
codefiles d6de03ab76
Use auto() for eligible StrEnum members (#4411) 2026-04-11 22:51:43 +10:00
Daniel Girtler b2f413124b
Allow granular plasma configuration (#4389)
* Flexible plasma profile selection

* Update

* Update

* Update

* Update
2026-04-10 07:07:28 +02:00
codefiles a92cd50aec
Remove deprecated __future__ imports (#4393) 2026-04-08 08:11:05 +02:00
codefiles 7609a1634e
Bump ruff target-version to Python 3.14 (#4390)
* Bump ruff target-version to Python 3.14

* Update exception syntax to pass ruff format
2026-04-07 23:09:14 +10:00
Dylan M. Taylor 179d9c7b48
Remove Nvidia proprietary driver option (nvidia-dkms no longer in repos) (#4343)
* Remove Nvidia proprietary driver option (nvidia-dkms no longer in repos)

* Remove libva-mesa-driver (now provided by mesa)
2026-03-31 22:51:57 +02:00
Dylan M. Taylor ef4d7cfc3a
Move auth config helpers to AuthenticationConfiguration class (#4340) 2026-03-31 11:29:26 +11:00
Daniel Girtler 1764b4971d
Refactor mirrors (#4274) 2026-03-21 17:57:33 +11:00
codefiles 64567a748a
Remove support for NTFS root file system (#4279)
* Remove support for NTFS root file system

* Fix rootfstype value
2026-03-03 12:21:31 +11:00
correctmost d413c01fde
Fix a reportUnnecessaryIsInstance Pyright warning (#4263) 2026-02-27 17:39:46 +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
codefiles 9bd2131792
Refactor SysInfo.has_uefi() to DI for bootloader (#4230) 2026-02-15 12:34:40 +11:00
codefiles 12bd83ca8a
Refactor skip_boot to use dependency injection (#4200) 2026-02-03 11:34:27 +11:00
codefiles 76284b601b
Remove superfluous __future__ import (#4178) 2026-01-28 07:23:25 +11: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 28f7aec2af
Refactor mirror_list_handler to use DI (#4170) 2026-01-27 11:23:01 +11:00
codefiles c7dbf0105e
Rework has_default_btrfs_vols (#4147) 2026-01-20 11:18:22 +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 7b45613996
Use Self for remaining occurrences (#4135) 2026-01-17 18:51:44 +11:00
codefiles 90d1b08628
Remove unused installation_hooks property (#4118) 2026-01-14 19:53:43 +11:00
codefiles 5811f81e59
Use Self for parameters to dunder methods (#4123) 2026-01-14 13:24:56 +11:00
Mattyan89 b779345a5b
fixes (#4093) 2026-01-13 20:59:02 +11:00
codefiles 82512eed0e
Remove superfluous list creation in join calls (#4119) 2026-01-12 12:56:55 +11:00
codefiles db6c11345a
Remove superfluous __future__ imports (#4117) 2026-01-12 10:20:07 +11:00
codefiles 3374b47d50
Use Self for return instances of cls (#4116) 2026-01-12 09:06:19 +11:00
codefiles bde3b0ed6e
Change staticmethods to classmethods (#4115) 2026-01-12 07:17:21 +11:00
codefiles b1290672bb
Change classmethods to staticmethods (#4114) 2026-01-11 17:40:43 +11:00
codefiles 43509d8ce1
Use instance method for type_to_text (#4113) 2026-01-11 11:29:39 +11:00
codefiles efd57870d0
Use instance method for _load_config (#4112) 2026-01-11 11:29:01 +11:00
codefiles cb4b7e3db0
Update classmethods to use cls (#4110) 2026-01-11 10:29:32 +11:00
Tobias Stoeckmann e0c1b869a6
Fix typos in comments (#4107)
Typos found with codespell.

No functional change.
2026-01-10 10:17:50 +11:00