From e5ccdb0c1c4495e63a7e1b5fe4b99c4a95c05cf8 Mon Sep 17 00:00:00 2001 From: HADEON <52324046+h8d13@users.noreply.github.com> Date: Thu, 25 Dec 2025 01:06:03 +0100 Subject: [PATCH] Adds a timer to post install screen (#4028) * Add timer to end screen of guided * ruff check --- archinstall/lib/interactions/general_conf.py | 8 ++++++-- archinstall/scripts/guided.py | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/archinstall/lib/interactions/general_conf.py b/archinstall/lib/interactions/general_conf.py index 8fc9bd69..984497cf 100644 --- a/archinstall/lib/interactions/general_conf.py +++ b/archinstall/lib/interactions/general_conf.py @@ -268,8 +268,12 @@ def add_number_of_parallel_downloads(preset: int | None = None) -> int | None: return downloads -def ask_post_installation() -> PostInstallationAction: - header = tr('Installation completed') + '\n\n' +def ask_post_installation(elapsed_time: float | None = None) -> PostInstallationAction: + header = 'Installation completed' + if elapsed_time is not None: + minutes = int(elapsed_time // 60) + seconds = int(elapsed_time % 60) + header += f' in {minutes}m {seconds}s' + '\n' header += tr('What would you like to do next?') + '\n' items = [MenuItem(action.value, value=action) for action in PostInstallationAction] diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index 7a533d5d..a91aa427 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -1,4 +1,5 @@ import os +import time from pathlib import Path from archinstall import SysInfo @@ -53,6 +54,7 @@ def perform_installation(mountpoint: Path) -> None: Only requirement is that the block devices are formatted and setup prior to entering this function. """ + start_time = time.time() info('Starting installation...') config = arch_config_handler.config @@ -168,7 +170,8 @@ def perform_installation(mountpoint: Path) -> None: if not arch_config_handler.args.silent: with Tui(): - action = ask_post_installation() + elapsed_time = time.time() - start_time + action = ask_post_installation(elapsed_time) match action: case PostInstallationAction.EXIT: