Commit Graph

4728 Commits

Author SHA1 Message Date
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
renovate[bot] a39a44188a
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.15 (#4559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-06 18:23:53 +10:00
renovate[bot] 2aeb824cf9
Update dependency ruff to v0.15.15 (#4558)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-06 18:23:26 +10:00
Franco Castillo e27ce6e8b6
Update template and Spanish translation (#4557)
* Update translation template

Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>

* Update Spanish translation

Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>

* Update Spanish translation

Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>

---------

Signed-off-by: Franco Castillo <castillofrancodamian@gmail.com>
2026-06-06 18:22:56 +10:00
renovate[bot] b96afcc579
Update dependency arch/python-textual to v8.2.7 (#4556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-25 21:58:49 +10:00
BB 3bc248b47f
add niri DankMaterialShell profile (#4554) 2026-05-25 21:13:56 +10:00
Anton Hvornum af2120c0e9
mkosi for test image builds (#4539)
Added a `mkosi` profile as well as organized test tooling a bit.

---------

Co-authored-by: 0xdeadd <clintdotphillips@gmail.com>
2026-05-23 13:49:54 +02:00
renovate[bot] d92a98d3bf
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.14 (#4552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-22 12:39:28 +10:00
renovate[bot] af58671e88
Update dependency ruff to v0.15.14 (#4551)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-22 12:39:11 +10:00
utuhiro78 e17e036f54
Update Japanese translation (#4550) 2026-05-21 07:25:23 +10: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
Clinton Phillips 5fd2f9b627
fix: restrict EFI partition permissions with fmask/dmask=0077 (#4506)
* fix: restrict EFI partition permissions with fmask/dmask=0077

Mount the ESP with fmask=0077 and dmask=0077 to prevent world-readable
files like /efi/loader/random-seed.

Closes #4241

* fix(efi): collapse fmask/dmask dedup to dict.fromkeys one-liner

Per @Torxed's review feedback. Same semantics as the previous loop
(dedupe by exact-string match) but shorter. dict.fromkeys preserves
insertion order, where set() would not.

* fix(efi): drop defensive list wrap per review

The list() copy on line 378 was load-bearing only if options were
mutated downstream, but the EFI branch reassigns options via
dict.fromkeys() (line 381) and the non-EFI branch passes through
to mount() without mutating. Drop the copy.
2026-05-19 13:36:28 +10:00
Softer dccd0c8ccf
Add translation CI validation (#4519)
* Fix broken localization: tr(f-string) never matches translation catalog

tr(f'Invalid configuration: {error}') evaluates the f-string before
tr() runs, so xgettext extracts the literal placeholder as the msgid
while runtime passes the formatted string - the two never match.
Switch to tr('...{}').format(...) and update msgid in base.pot.

* Add CI validation for translations and pot_tools dev utility

Add translation-check workflow with two jobs:
- validate-po: msgfmt --check on changed .po files, .mo sync warning,
  tr(f-string) anti-pattern grep on changed .py files
- validate-pot: verify all tr() strings exist in base.pot when .py
  files change

Workflow only triggers on .py/.po/.pot file changes.

Add scripts/pot_tools.py developer utility (stats, list, add_missing)
for managing base.pot.

* Fix code style: use tabs and reformat xgettext arguments

Align check_pot_freshness.py and pot_tools.py with project
indentation (tabs) and ruff format requirements.

Sorry :-)

* Replace custom PO parser with msgcmp, drop pot_tools.py

Address review feedback: use standard gettext msgcmp instead of
hand-rolled parser for base.pot freshness check. Remove pot_tools.py
that duplicated locales_generator.sh functionality.

* Move translation checks into locales_generator.sh, simplify CI workflow

Use msgcmp instead of diff for base.pot validation to avoid failing on
legacy stale entries - the same cascading breakage that killed the
original workflow (disabled 2023, removed in #4483).

* Fix broken .po files: duplicate msgid in Hindi, missing format args in Finnish
2026-05-18 20:10:56 +10:00
renovate[bot] 22bf6e3c35
Update dependency arch/python-textual to v8.2.6 (#4546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-18 15:36:33 +10:00
Matteo b5d323762b
Update Italian translation + fix a string (#4545)
* Update Italian translation

* Added new strings
* Improved existing translations

* Fix wrong string + Italian translation

* Mispelled "respository" -> "repository"
2026-05-17 11:26:30 +10:00
utuhiro78 42d9113611
Update Japanese translation (#4544) 2026-05-16 09:29:27 +10:00
Daniel Girtler 516a61d8af
Enhance log sharing capability (#4526) 2026-05-15 21:38:17 +10:00
renovate[bot] e48ca45b0b
Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.13 (#4541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 16:30:33 +10:00
renovate[bot] 74a1066661
Update dependency ruff to v0.15.13 (#4540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 13:58:00 +10: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
renovate[bot] 13944f3cca
Update pre-commit hook pre-commit/mirrors-mypy to v2.1.0 (#4538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-13 08:54:05 +10:00
renovate[bot] b95321d38c
Update dependency mypy to v2.1.0 (#4535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-13 08:33:42 +10:00
renovate[bot] 3dec5025c3
Update dependency arch/python-pydantic to v2.13.4 (#4534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-13 08:21:44 +10:00
stinga11 f7a6f70fc8
Replace terminal and file manager in Budgie profile (#4533)
I think it was a mistake to have made the previous changes to KDE Apps. In retrospect, it seemed like a good idea since the Budgie developer had done it that way in Fedora, which is the distro the developer uses as a reference for Budgie. When you start using it, you realize there's no bridge between the desktop and the KDE Apps, and things like Dolphin recognizes icons and themes, requiring some rather annoying manual configurations. Then, if you want to change them again, you have to change those configurations again. Files don't open by default with the apps either; you have to configure them for that to work.

At first, I thought the Budgie packager for Arch had forgotten some stray dependency, but with some free time, I tested it with Fedora 44, and to my surprise, it has exactly the same problems, which is completely unacceptable for a final stable release. I suppose he'll make the necessary changes in the near future, but right now, it's a disaster.
2026-05-13 08:21:15 +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
Lena Pastwa 2de7254b21
Update Polish translation (#4529) 2026-05-08 11:28:36 +10:00
renovate[bot] af106eb238
Update dependency mypy to v2 (#4523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-07 21:57:10 +10:00
renovate[bot] 4265be6e43
Update pre-commit hook pre-commit/mirrors-mypy to v2 (#4525)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-07 21:56:30 +10:00
Softer b0b7983af2
Fix bspwm black screen: add provision() delegation and default configs (#4518)
* Fix bspwm black screen: add provision() delegation and default configs

* Move TYPE_CHECKING imports to top level in bspwm profile
2026-05-07 10:20:09 +10:00
Softer ef1cfe7b56
Add share-log subcommand to upload install.log to paste.rs (#4511)
* Add --share-log flag to upload install.log to paste.rs

* Apply ruff-format to share_log.py

* Rework share-log per review: subcommand, TUI confirmation, truncate large logs

* Replace curl/SysCommand with urllib.request, remove defensive try/except

Per review: use stdlib urllib instead of shelling out to curl,
drop unnecessary try/except around TUI confirmation,
remove tempfile (content is passed directly as bytes).

* Fix TUI imports after ui module was pulled one level up (#4515)

* Decouple share_install_log from TUI module

* Add unit tests for share_install_log function

* Update docs to use share-log subcommand syntax
2026-05-07 10:18:56 +10: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
renovate[bot] dcc38fe9aa
Update dependency arch/python-cryptography to v48 (#4520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 15:25:45 +10:00
Softer 11607851c4
Keep standalone initramfs for grub-btrfs when UKI is enabled (#4513)
* Keep standalone initramfs for grub-btrfs when UKI is enabled

Fixes #4505

* Move keep_initramfs logic into add_bootloader()

The grub-btrfs snapshot detection was in guided.py, forcing custom
script authors to replicate it. Since Installer already holds
disk_config, the check belongs inside add_bootloader().
2026-05-06 14:26:59 +10:00
Daniel Girtler ba7dbeadfc
Refactor profile seat access selection (#4457)
* Refactor profile seat access selection

* Update
2026-05-04 14:45:43 +10:00
aronmr-1 b5501d9507
Improved Finnish translation further (#4516) 2026-05-04 08:16:16 +10:00
renovate[bot] 528c27fbe1
Update dependency arch/python-textual to v8.2.5 (#4517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-04 08:14:56 +10:00
Daniel Girtler b18cc57216
Pull `ui` module one level up (#4515)
* Pull the UI module one level up

* Update
2026-05-03 23:54:42 +02:00
Softer dd34954011
Remove dead Cutefish desktop profile (#4514)
The cutefish package was never in the official Arch repos (AUR only)
and the upstream project is abandoned. Installing this profile would
always fail with a pacman "not found" error.
2026-05-03 10:33:48 +10:00
utuhiro78 76629ecc15
Update Japanese translation (#4504) 2026-04-30 17:37:37 +10:00
Softer dc7d9cf0a2
Improve Ukrainian translation (#4502) 2026-04-30 09:23:08 +10:00
correctmost b936fa11e3
Fix some inconsistent-return-statements Pylint warnings (#4503) 2026-04-30 09:22:45 +10:00
aronmr-1 6fefa3b6f5
Improved Finnish language (#4501) 2026-04-30 07:43:01 +10:00
Softer 3b026cb603
Fix broken localization in U2F, LUKS, and gfx driver preview (#4500) 2026-04-30 07:33:21 +10:00
correctmost 05560d29af
Add basic Pyrefly configuration to pyproject.toml (#4494)
This makes it easier to use the Pyrefly type checker with various
IDEs.
2026-04-29 21:54:59 +10:00
correctmost 3223ae4212
Remove the old curses-based TUI code (#4497)
The new Textual-based TUI shipped in the April .iso.
2026-04-29 17:08:24 +10:00
Steen Rabol 468e33d54f
Danish translation (#4493)
* Danish translation

* updated base.po and  created base.mo

---------

Co-authored-by: Steen Rabol <steen@rabol.dev>
2026-04-29 16:06:10 +10:00