Commit Graph

4773 Commits

Author SHA1 Message Date
renovate[bot] b0bfb43661
Update dependency ruff to v0.15.22 (#4636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-18 21:17:15 +10:00
renovate[bot] 39dbebf26c
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.22 (#4637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-18 21:16:43 +10:00
Jonathan Pichel caff461f0b
Fix Galician locale (#4630)
* Sync Galician translation with template

* Delete all outdated Galician translation entries

* Improve Galician translation
2026-07-14 21:13:26 +10:00
Softer 01c9432afd
Use sentence case for summary labels (#4617)
str.title() title-cased every label word, which is wrong outside
English: it turned the Ukrainian "Ім'я хоста" into "Ім'Я Хоста" and
broke acronyms ("NTP" -> "Ntp"). The source strings and their
translations are already written with the correct casing.

Capitalize only the first letter of each label instead.
2026-07-14 21:12:53 +10:00
renovate[bot] 53158a8aad
Update pre-commit hook pre-commit/mirrors-mypy to v2.3.0 (#4629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 10:14:03 +10:00
renovate[bot] 46320deb33
Update dependency mypy to v2.3.0 (#4628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 10:13:43 +10:00
renovate[bot] 12baa2e64a
Update pre-commit hook pre-commit/mirrors-mypy to v2.2.0 (#4627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 13:09:55 +10:00
renovate[bot] 2531825b59
Update dependency mypy to v2.2.0 (#4626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 13:09:27 +10:00
renovate[bot] e3e9d43324
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.21 (#4623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 13:09:05 +10:00
renovate[bot] 781728b91b
Update dependency ruff to v0.15.21 (#4622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 13:08:47 +10:00
renovate[bot] 34c299e42e
Update astral-sh/ruff-action action to v4.1.0 (#4625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 07:05:31 +10:00
renovate[bot] 3f4f815a34
Update dependency arch/python-textual to v8.2.8 (#4624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 07:04:41 +10:00
Christos Longros c60385a6f7
Update Greek translations: TUI navigation strings (#4621) 2026-07-12 21:21:58 +10:00
correctmost c110081a42
Enable more mypy and Pylint checks for test_tooling/ (#4620) 2026-07-12 21:21:18 +10:00
correctmost 8902d2e310
Use a match statement for PasswordStrength enum values (#4619)
This unblocks the upgrade to mypy 2.2.0, which now flags the
unreachable "return None" statement.
2026-07-12 21:20:44 +10:00
BlackCatOfficial 💀 (Python, C++, Lua) aca482b691
Add Vietnamese to Archinstall (#4582)
* add vn lang, trans lang, translating ~28%

* done 80/735 (10% not ~28% sorry) and 735/735 done (counted fuzzy or google translate helper). See https://gist.github.com/BlackCatOfficialytb/e85bad1758d9e29c349f2d75b91363f1 for program to help me translate

* doing plenty of things

* up to 40% by removing fuzzy tag in correct translate words/paragraph

* fix the extension

* more words/paragraphs are unfuzzied

* trans up to 57%

* translate up to 61%
2026-07-12 21:18:50 +10:00
renovate[bot] 338e3cf4b8
Update dependency ruff to v0.15.20 (#4609)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-30 07:58:34 +10:00
renovate[bot] ec9295634b
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.20 (#4610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-30 07:58:17 +10:00
renovate[bot] f94c27430c
Update dependency pytest to v9.1.1 (#4612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-30 07:58:02 +10:00
renovate[bot] caa8887204
Update dependency arch/python-systemd to v236 (#4615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-30 07:57:22 +10:00
renovate[bot] 8aec36aa0a
Update dependency arch/python-cryptography to v49 (#4614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-30 07:57:04 +10:00
renovate[bot] ebdf625e5c
Update actions/checkout action to v7 (#4613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-30 07:56:42 +10:00
Arvind fc3a22683e
Add Norwegian Bokmål (nb) translation (#4599)
* Add Norwegian Bokmål (nb) translation

* Register Norwegian Bokmål in languages.json
2026-06-29 21:52:02 +10:00
Softer faf6fe5ce2
Improve Ukrainian translation (#4611)
Translate the new Plymouth bootloader strings (enable warning prompt,
theme selection) and add the graphics driver label.
2026-06-29 21:46:30 +10:00
renovate[bot] e2b8697864
Update dependency pylint to v4.0.6 (#4606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-29 21:45:20 +10:00
renovate[bot] 214e55248c
Update actions/setup-python digest to ece7cb0 (#4605)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-29 21:44:58 +10:00
Anton Hvornum 3ece182d31
Bumping version to: 4.4 (#4608) 2026-06-28 22:06:04 +02:00
brurmonemt e4b2894db5
fix ValueError exception when no disks are detected in the disk menu (#4598)
* Fix ValueError exception when no disks are detected in the disk menu

in lib/disk/disk_menu.py, the menu items are created using info from a list called "devices" (device_handler.devices). when no block devices are detected, the list is empty, creating zero MenuItems, and causing the following ValueError:

ValueError: Menu must have at least one item

this change checks if the length of the list is shorter than 1  (empty list) before constructing the menu. if the list is empty, the user will be notified that no disks were detected. otherwise, the menu is created and behaves as normal

* Fixed ruff formatting issue

* Fixed ruff formatting issue

---------

Co-authored-by: Anton Hvornum <torxed@archlinux.org>
2026-06-28 21:19:42 +02:00
Softer 12f204571e
Warn before enabling Plymouth in the bootloader menu (#4604)
Plymouth is purely cosmetic and a frequent source of boot breakage,
most notably a black screen with the NVIDIA driver and a hidden LUKS
password prompt. Show a yellow confirmation warning listing these risks
when enabling it; when Plymouth is already enabled the user is only
changing the theme, so the warning is skipped. Regenerate base.pot for
the new strings.
2026-06-28 21:13:10 +02:00
utuhiro78 4b14b795f5
Update Japanese translation (#4600) 2026-06-28 21:11:32 +02:00
emanu cce0c47e11
Fix plugin (#4594)
* change behaviour to load plugin

* add checks in _write_plugin_to_temp_file

* modify test

* fixed test
2026-06-28 21:09:20 +02:00
Daniel Girtler c6a5a130a8
Refactor configuration file (#4583) 2026-06-28 21:04:20 +02:00
renovate[bot] c777ee03f6
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.17 (#4593)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-13 16:29:37 +10:00
renovate[bot] f67b7c2aa0
Update dependency ruff to v0.15.17 (#4592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-13 16:24:48 +10:00
renovate[bot] 5397ae7124
Update dependency arch/python-cryptography to v48.0.1 (#4591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-13 16:24:31 +10:00
Softer f6a031f584
Fix Plymouth theme preset focus and add missing strings to base.pot (#4586)
select_plymouth_theme() compared enum item values against a raw string,
so the previously selected theme was never highlighted when reopening
the menu. Use set_focus_by_value() like other single-select menus.

Regenerate base.pot to pick up the three Plymouth strings introduced
in #4555.
2026-06-13 04:57:32 +10:00
Softer 919a435a6b
Skip custom mirror config when keyring sync fails (#4577)
* Skip custom mirror config when keyring sync fails

Check the exit state of archlinux-keyring-wkd-sync.service after
waiting for it to finish. If it failed, skip set_mirrors() and
continue installation with default mirrors instead of crashing
with "GPGME error: No data" during pacman -Syy.

* Reinit keyring automatically when pacman sync fails with GPGME error

Instead of skipping mirror configuration when wkd-sync fails, catch
the GPGME error at the point where it actually occurs - during
pacman -Syy. If the sync fails with a keyring-related error, reinit
the keyring with pacman-key --init/--populate and retry the sync.

* Simplify pacman sync() and guard gpg-agent kill on running state

Collapse the duplicated self.ask() blocks in sync() into a single call
via a msg variable, and drop the redundant default_cmd='pacman' (it is
already the default). In _reinit_keyring(), check that gpg-agent is
actually running (pgrep -x) before killing it, instead of catching the
killall error and assuming it was not running.
2026-06-10 17:10:29 +10:00
Softer 091665a975
Add users to seat group when seatd is selected (#4578)
* Add users to seat group when seatd is selected

When a desktop profile uses seatd for seat access, the user must be
in the seat group for the compositor to access input devices. Without
this, sway/hyprland/niri/labwc fail to start after installation.

* Move seat access provisioning into DesktopProfile.provision()

The four Wayland profiles (Hyprland, Sway, niri, labwc) each duplicated a
provision() override calling provision_seat_access(). Move that into the
base DesktopProfile.provision() loop, which already iterates the selected
profiles, and read CustomSetting.SeatAccess from each. The None check now
lives at the call site (walrus), so provision_seat_access() takes a plain
str. This removes the per-profile overrides and their TYPE_CHECKING imports.

* Use top-level imports in seat access utils

The Installer and User imports were under a TYPE_CHECKING guard, but
they cause no circular import (bspwm.py already imports both at top
level). Move them to module scope per review feedback.
2026-06-10 16:56:17 +10:00
Mário Victor Ribeiro Silva 73d78b1aa9
Add Plymouth configuration setup (#4555)
* feat: add plymouth config

* refactor: move plymouth to bootleader menu
2026-06-10 16:44:03 +10:00
Daniel Girtler c6cb7b319d
Removing pot file freshness check (#4576) 2026-06-09 09:08:38 +02:00
Softer 8ce2486846
Update Ukrainian translation (#4580) 2026-06-09 16:46:46 +10:00
Lena Pastwa c67ed4b668
Update Polish translation, fix typo (#4579)
* Update Polish translation

* Fix typo
2026-06-09 16:46:14 +10:00
Softer 0f16801448
Color-code install preview: red for errors, yellow for warnings, green for ready (#4512)
* Color-code install preview: red for errors, yellow for warnings, green for ready

Add preview_markup opt-in field to MenuItem with automatic Rich markup
escaping for all existing previews. Show missing configs and bootloader
errors in red, network warning in yellow, "Ready to install" in green.
Move network warning from confirmation dialog to install preview so it
is visible earlier.

* Fix Rich markup parsing error on JSON preview strings

Text.from_markup() replaces Label(markup=True) to avoid MarkupError
on strings containing ["

* Replace raw Rich markup with PreviewResult dataclass for typed preview levels

* Add missing translatable strings to base.pot

* Move get_install_warnings() from ConfigurationOutput to GlobalMenu

The method is only used by GlobalMenu._prev_install_invalid_config(),
so it belongs there rather than on the serialization class.

* Move level-to-style mapping into MsgLevelType.style() method

Replace the module-level _LEVEL_STYLE dict in components.py with a
style() method on the MsgLevelType enum, following the project
convention of encapsulating type-bound logic on the type itself.

* Change PreviewResult to hold a list of message-level pairs

PreviewResult.messages is now list[tuple[str, MsgLevelType]], allowing
a single result to carry multiple sections with different levels.
The preview_action signature drops list[PreviewResult] since the
dataclass itself handles multiple sections. Existing str-returning
previews still work and will be converted in follow-up PRs.

* Make MsgLevelType.style() return a typed MsgLevelStyle enum

Replace the bare style strings returned by style() with a MsgLevelStyle
StrEnum so the values are type-checked. Being a StrEnum, the members stay
plain strings and pass straight into Text.append(style=...), so no call
sites change.
2026-06-08 16:22:34 +10:00
Softer 1048f7eef0
Fix WiFi network selection in TUI prompt (#4566)
* Fix WiFi network selection in TUI prompt

TableSelectionScreen returns the selected network in Result._item,
but the check on line 136 only tested Result._data (always None
for single-select). This caused every selection to fall through
to the "No wifi networks found" error path.

Fixes #4564

* Fix empty wifi scan crash and simplify network selection

Move wifi scanning out of the TableSelectionScreen callback to avoid
MenuItemGroup([]) ValueError when no networks are found. The empty
result is now handled before the selection screen, and the Selection
branch is simplified to a direct get_value() call.
2026-06-08 04:31:07 +10:00
renovate[bot] 1aff670262
Update dependency ruff to v0.15.16 (#4573)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-06 18:56:47 +10:00
renovate[bot] e8d2e8f346
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.16 (#4574)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-06 18:56:39 +10:00
Clinton Phillips 7b8fec1af4
fix(luks): surface cryptsetup error output when unlock fails (#4570)
Luks2.unlock() ran 'cryptsetup open' with no error handling, so a failure raised a bare CalledProcessError. Python renders that exception with only the exit status and discards the captured output, so cryptsetup's stderr (merged into stdout by run()) never reached the install log.

encrypt() already wraps its cryptsetup call and raises a DiskError that includes the captured output. Mirror that for unlock() so a failure reports the actual cryptsetup message instead of an opaque traceback.

Reported in #4327, where the underlying 'device-mapper: crypt: unknown table type' error was hidden from the log for this reason.
2026-06-06 18:38:36 +10:00
Akilesh A S d38008483e
chore: update examples/config-sample.json (#4569)
TL;DR:
- fix the config for 'parallel download'
- add config for setting color output for pacman
2026-06-06 18:36:50 +10:00
renovate[bot] f9534c67cd
Update actions/checkout digest to df4cb1c (#4567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-06 18:35:42 +10:00
renovate[bot] 07e10f9648
Update peaceiris/actions-gh-pages digest to 84c30a8 (#4560)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-06 18:25:05 +10:00