diff --git a/.github/ISSUE_TEMPLATE/01_bug.yml b/.github/ISSUE_TEMPLATE/01_bug.yml index 058e7e9e86..ab40754fc9 100644 --- a/.github/ISSUE_TEMPLATE/01_bug.yml +++ b/.github/ISSUE_TEMPLATE/01_bug.yml @@ -24,7 +24,7 @@ body: - type: textarea id: bug-report attributes: - label: The installation log + label: The installation log description: 'note: located at `/var/log/archinstall/install.log`' placeholder: | Hardware model detected: Dell Inc. Precision 7670; UEFI mode: True @@ -82,4 +82,4 @@ body: **Note**: Feel free to modify the textarea above as you wish. But it will grately help us in testing if we can generate the specific qemu command line, for instance via: - `sudo virsh domxml-to-native qemu-argv --domain my-arch-machine` \ No newline at end of file + `sudo virsh domxml-to-native qemu-argv --domain my-arch-machine` diff --git a/.github/ISSUE_TEMPLATE/02_feature.yml b/.github/ISSUE_TEMPLATE/02_feature.yml index 81caea3546..37efd4e114 100644 --- a/.github/ISSUE_TEMPLATE/02_feature.yml +++ b/.github/ISSUE_TEMPLATE/02_feature.yml @@ -14,4 +14,4 @@ body: description: > Feel free to write any feature you think others might benefit from: validations: - required: true \ No newline at end of file + required: true diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml index 65255fd6f6..a3232e5272 100644 --- a/.github/workflows/github-pages.yml +++ b/.github/workflows/github-pages.yml @@ -38,4 +38,4 @@ jobs: publish_dir: _build/ force_orphan: true enable_jekyll: false # This is required to preserve _static (and thus the theme) - cname: archinstall.archlinux.page \ No newline at end of file + cname: archinstall.archlinux.page diff --git a/.gitignore b/.gitignore index b03bd3a522..be0646552a 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,4 @@ venv requirements.txt /.gitconfig /actions-runner -/cmd_output.txt \ No newline at end of file +/cmd_output.txt diff --git a/.pypirc b/.pypirc index 7b926de7bd..f6c546224b 100644 --- a/.pypirc +++ b/.pypirc @@ -3,4 +3,4 @@ index-servers = pypi [pypi] -repository = https://upload.pypi.org/legacy/ \ No newline at end of file +repository = https://upload.pypi.org/legacy/ diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 02e90da993..781f85f3e4 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -12,4 +12,4 @@ sphinx: build: os: "ubuntu-22.04" tools: - python: "3.11" \ No newline at end of file + python: "3.11" diff --git a/archinstall/default_profiles/desktops/hyprland.py b/archinstall/default_profiles/desktops/hyprland.py index c884a5ae5c..0e303f935b 100644 --- a/archinstall/default_profiles/desktops/hyprland.py +++ b/archinstall/default_profiles/desktops/hyprland.py @@ -1,8 +1,12 @@ from enum import Enum from typing import List, Optional, TYPE_CHECKING, Any -from archinstall.default_profiles.profile import ProfileType, GreeterType +from archinstall.default_profiles.profile import ProfileType, GreeterType, SelectResult from archinstall.default_profiles.xorg import XorgProfile +from archinstall.tui import ( + MenuItemGroup, MenuItem, SelectMenu, + FrameProperties, ResultType, Alignment +) if TYPE_CHECKING: from archinstall.lib.installer import Installer diff --git a/archinstall/default_profiles/desktops/sway.py b/archinstall/default_profiles/desktops/sway.py index c0ad5abb0d..de6825b04c 100644 --- a/archinstall/default_profiles/desktops/sway.py +++ b/archinstall/default_profiles/desktops/sway.py @@ -1,7 +1,7 @@ from enum import Enum from typing import List, Optional, TYPE_CHECKING, Any -from archinstall.default_profiles.profile import ProfileType, GreeterType +from archinstall.default_profiles.profile import ProfileType, GreeterType, SelectResult from archinstall.default_profiles.xorg import XorgProfile from archinstall.tui import ( diff --git a/archinstall/default_profiles/server.py b/archinstall/default_profiles/server.py index 2a86011bc2..a809d94d86 100644 --- a/archinstall/default_profiles/server.py +++ b/archinstall/default_profiles/server.py @@ -1,4 +1,4 @@ -from typing import Any, TYPE_CHECKING, List +from typing import Any, TYPE_CHECKING, List, Optional from archinstall.lib.output import info from archinstall.lib.profile.profiles_handler import profile_handler diff --git a/archinstall/lib/disk/partitioning_menu.py b/archinstall/lib/disk/partitioning_menu.py index 692fd4c1c2..c3e5d531e3 100644 --- a/archinstall/lib/disk/partitioning_menu.py +++ b/archinstall/lib/disk/partitioning_menu.py @@ -262,7 +262,7 @@ def _enter_size( def validate(value: str) -> Optional[str]: size = self._validate_value(sector_size, total_size, value, start) if not size: - return str(_(f'Invalid size')) + return str(_('Invalid size')) return None result = EditMenu( diff --git a/archinstall/lib/interactions/general_conf.py b/archinstall/lib/interactions/general_conf.py index 60549477ef..7b43016c16 100644 --- a/archinstall/lib/interactions/general_conf.py +++ b/archinstall/lib/interactions/general_conf.py @@ -9,14 +9,11 @@ from ..packages.packages import validate_package_list from ..storage import storage from ..translationhandler import Language +from archinstall.tui.curses_menu import tui from archinstall.tui import ( MenuItemGroup, MenuItem, SelectMenu, - FrameProperties, Alignment, Result, ResultType, EditMenu -) -from archinstall.tui import ( - MenuItemGroup, MenuItem, SelectMenu, - FrameProperties, Alignment, EditMenu, - Orientation, tui + FrameProperties, Alignment, Result, + ResultType, EditMenu, Orientation ) if TYPE_CHECKING: @@ -25,7 +22,7 @@ def ask_ntp(preset: bool = True) -> bool: header = str(_('Would you like to use automatic time synchronization (NTP) with the default time servers?\n')) + '\n' - header += str( _('Hardware time and other post-configuration steps might be required in order for NTP to work.\nFor more information, please check the Arch wiki')) + '\n' + header += str(_('Hardware time and other post-configuration steps might be required in order for NTP to work.\nFor more information, please check the Arch wiki')) + '\n' preset_val = MenuItem.yes() if preset else MenuItem.no() group = MenuItemGroup.yes_no() @@ -171,11 +168,6 @@ def ask_additional_packages_to_install(preset: List[str] = []) -> List[str]: def validator(value: str) -> Optional[str]: packages = value.split() if value else [] - def read_packages(p: list[str] = []) -> list[str]: - display = ' '.join(p) - input_packages = TextInput(_('Write additional packages to install (space separated, leave blank to skip): '), display).run().strip() - return input_packages.split() if input_packages else [] - if len(packages) == 0: return None @@ -236,6 +228,8 @@ def validator(s: str) -> Optional[str]: if result.type_ == ResultType.Skip: return preset + assert result.item + downloads: int = int(result.item) pacman_conf_path = pathlib.Path("/etc/pacman.conf") diff --git a/archinstall/lib/interactions/network_menu.py b/archinstall/lib/interactions/network_menu.py index 783cb9b971..f2275909ef 100644 --- a/archinstall/lib/interactions/network_menu.py +++ b/archinstall/lib/interactions/network_menu.py @@ -74,7 +74,14 @@ def _select_iface(self, data: List[Nic]) -> Optional[str]: return None - def _get_ip_address(self, title: str, header: str, allow_skip: bool, multi: bool) -> Optional[str]: + def _get_ip_address( + self, + title: str, + header: str, + allow_skip: bool, + multi: bool, + preset: Optional[str] = None + ) -> Optional[str]: def validator(ip: str) -> Optional[str]: if multi: ips = ip.split(' ') @@ -128,7 +135,13 @@ def _edit_iface(self, edit_nic: Nic) -> Nic: display_dns = None header = str(_('Enter your DNS servers with space separated (leave blank for none)')) + '\n' - dns_servers = self._get_ip_address(str(_('DNS servers')), header, True, True) + dns_servers = self._get_ip_address( + str(_('DNS servers')), + header, + True, + True, + display_dns + ) dns = [] if dns_servers is not None: diff --git a/archinstall/lib/interactions/system_conf.py b/archinstall/lib/interactions/system_conf.py index d954fbc20d..ab12e35bf2 100644 --- a/archinstall/lib/interactions/system_conf.py +++ b/archinstall/lib/interactions/system_conf.py @@ -171,7 +171,7 @@ def ask_for_swap(preset: bool = True) -> bool: prompt = str(_('Would you like to use swap on zram?')) + '\n' group = MenuItemGroup.yes_no() - group.set_focus_by_value(preset) + group.set_focus_by_value(default_item) result = SelectMenu( group, diff --git a/archinstall/lib/menu/abstract_menu.py b/archinstall/lib/menu/abstract_menu.py index d086adb26c..c96e90751c 100644 --- a/archinstall/lib/menu/abstract_menu.py +++ b/archinstall/lib/menu/abstract_menu.py @@ -16,18 +16,18 @@ class Selector: def __init__( - self, - description: str, - func: Optional[Callable[[Any], Any]] = None, - display_func: Optional[Callable] = None, - default: Optional[Any] = None, - enabled: bool = False, - dependencies: List = [], - dependencies_not: List = [], - exec_func: Optional[Callable] = None, - preview_func: Optional[Callable] = None, - mandatory: bool = False, - no_store: bool = False + self, + description: str, + func: Optional[Callable[[Any], Any]] = None, + display_func: Optional[Callable] = None, + default: Optional[Any] = None, + enabled: bool = False, + dependencies: List = [], + dependencies_not: List = [], + exec_func: Optional[Callable] = None, + preview_func: Optional[Callable] = None, + mandatory: bool = False, + no_store: bool = False ): """ Create a new menu selection entry diff --git a/archinstall/lib/menu/list_manager.py b/archinstall/lib/menu/list_manager.py index 8ae977f6ca..54db8f796b 100644 --- a/archinstall/lib/menu/list_manager.py +++ b/archinstall/lib/menu/list_manager.py @@ -4,8 +4,7 @@ from archinstall.tui import ( MenuItemGroup, MenuItem, SelectMenu, - FrameProperties, FrameStyle, Alignment, - ResultType, EditMenu + Alignment ) if TYPE_CHECKING: @@ -119,9 +118,6 @@ def _prepare_selection(self, data_formatted: Dict[str, Any]) -> Tuple[List[str], def _run_actions_on_entry(self, entry: Any) -> None: options = self.filter_options(entry, self._sub_menu_actions) + [self._cancel_action] - display_value = self.selected_action_display(entry) - - prompt = _("Select an action for '{}'").format(display_value) items = [MenuItem(o, value=o) for o in options] group = MenuItemGroup(items, sort_items=False) diff --git a/archinstall/lib/profile/profiles_handler.py b/archinstall/lib/profile/profiles_handler.py index a5e70675b9..b7325ea5e7 100644 --- a/archinstall/lib/profile/profiles_handler.py +++ b/archinstall/lib/profile/profiles_handler.py @@ -18,7 +18,6 @@ from ..storage import storage - if TYPE_CHECKING: from ..installer import Installer _: Any diff --git a/archinstall/scripts/minimal.py b/archinstall/scripts/minimal.py index f2f7726584..7423f1f34b 100644 --- a/archinstall/scripts/minimal.py +++ b/archinstall/scripts/minimal.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, List import archinstall -from archinstall import info +from archinstall import info, debug from archinstall import Installer, ConfigurationOutput from archinstall.default_profiles.minimal import MinimalProfile from archinstall.lib.interactions import suggest_single_disk_layout, select_devices diff --git a/archinstall/tui/__init__.py b/archinstall/tui/__init__.py index 802138dd8b..dbac535127 100644 --- a/archinstall/tui/__init__.py +++ b/archinstall/tui/__init__.py @@ -1,9 +1,9 @@ from .curses_menu import ( - tui, SelectMenu, EditMenu + tui, SelectMenu, EditMenu ) from .menu_item import ( - MenuItem, MenuItemGroup + MenuItem, MenuItemGroup ) from .types import ( diff --git a/archinstall/tui/table_menu.py b/archinstall/tui/table_menu.py index 1d4053bc04..bfb3c65f44 100644 --- a/archinstall/tui/table_menu.py +++ b/archinstall/tui/table_menu.py @@ -1,11 +1,9 @@ -from typing import Any, Tuple, List, Dict, Optional, Callable +from typing import Any, Tuple, List, Dict, Optional from archinstall.lib.output import FormattedOutput from . import ( - MenuItemGroup, MenuItem, SelectMenu, - FrameProperties, FrameStyle, Alignment, - ResultType + MenuItemGroup, MenuItem ) diff --git a/docs/README.md b/docs/README.md index 7ab47d2603..3c6dd64843 100644 --- a/docs/README.md +++ b/docs/README.md @@ -14,4 +14,4 @@ For other installation methods refer to the docs of the dependencies. ## Build -In `archinstall/docs`, run `make html` (or specify another target) to build locally. The build files will be in `archinstall/docs/_build`. Open `_build/html/index.html` with your browser to see your changes in action. \ No newline at end of file +In `archinstall/docs`, run `make html` (or specify another target) to build locally. The build files will be in `archinstall/docs/_build`. Open `_build/html/index.html` with your browser to see your changes in action. diff --git a/docs/_static/style.css b/docs/_static/style.css index 579fe077d8..b07bdb1b51 100644 --- a/docs/_static/style.css +++ b/docs/_static/style.css @@ -1,3 +1,3 @@ .wy-nav-content { max-width: none; -} \ No newline at end of file +} diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html index b0a4480600..3e44f4a314 100644 --- a/docs/_templates/layout.html +++ b/docs/_templates/layout.html @@ -1,4 +1,4 @@ {% extends "!layout.html" %} {% block extrahead %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/docs/archinstall/plugins.rst b/docs/archinstall/plugins.rst index 898f9006cc..1022ab6f6b 100644 --- a/docs/archinstall/plugins.rst +++ b/docs/archinstall/plugins.rst @@ -54,4 +54,4 @@ The simplest way currently is to look at a reference implementation or the commu And search for `plugin.on_ `_ in the code base to find what ``archinstall`` will look for. PR's are welcome to widen the support for this. .. _plugin discovery: https://packaging.python.org/en/latest/specifications/entry-points/ -.. _entry points: https://docs.python.org/3/library/importlib.metadata.html#entry-points \ No newline at end of file +.. _entry points: https://docs.python.org/3/library/importlib.metadata.html#entry-points diff --git a/docs/cli_parameters/config/custom_commands.rst b/docs/cli_parameters/config/custom_commands.rst index c1529020b0..291ea67808 100644 --- a/docs/cli_parameters/config/custom_commands.rst +++ b/docs/cli_parameters/config/custom_commands.rst @@ -19,4 +19,4 @@ The option takes a list of arguments, an example is: | The following example will set a new hostname in the installed system. | The example is just to illustrate that the command is not run in the ISO but inside the installed system after the base system is installed. -More examples can be found in the code repository under `examples/ `_ \ No newline at end of file +More examples can be found in the code repository under `examples/ `_ diff --git a/docs/cli_parameters/config/disk_encryption.rst b/docs/cli_parameters/config/disk_encryption.rst index df2e2fa7b7..9be5e48087 100644 --- a/docs/cli_parameters/config/disk_encryption.rst +++ b/docs/cli_parameters/config/disk_encryption.rst @@ -16,4 +16,4 @@ Disk encryption consists of a top level entry in the user configuration. } } -The ``UID`` in the ``partitions`` list is an internal reference to the ``obj_id`` in the :ref:`disk config` entries. \ No newline at end of file +The ``UID`` in the ``partitions`` list is an internal reference to the ``obj_id`` in the :ref:`disk config` entries. diff --git a/docs/cli_parameters/config/manual_options.csv b/docs/cli_parameters/config/manual_options.csv index 2fcc26f0c9..794c8997c1 100644 --- a/docs/cli_parameters/config/manual_options.csv +++ b/docs/cli_parameters/config/manual_options.csv @@ -1,4 +1,4 @@ Key,Value(s),Description,Required device,``str``,Which block-device to format,yes partitions,[ {key: val} ],The data describing the change/addition in a partition,yes -wipe,``bool``,clear the disk before adding any partitions,No \ No newline at end of file +wipe,``bool``,clear the disk before adding any partitions,No diff --git a/docs/flowcharts/BlockDeviceSelection.svg b/docs/flowcharts/BlockDeviceSelection.svg index 33dd7f709b..7dd2b43979 100644 --- a/docs/flowcharts/BlockDeviceSelection.svg +++ b/docs/flowcharts/BlockDeviceSelection.svg @@ -1 +1 @@ -
Select BlockDevices
Select BlockDevices
No
No
Yes
Yes
Empty Selection
Empty Selection
Yes / No
Yes / No
Encrypt Root
Encrypt Root
No
No
Yes
Yes
Multiple BD's
Multiple BD's
Select /boot, / and optional mounts
Select /boot, / and...
Yes
Yes
No
No
Contains Partitions
Contains Partitions
No
No
Yes
Yes
Old /boot has content
Old /boot has cont...
Select Root FIlesystem
Select Root FIlesyst...
Mount Partitions
Mount Partitions
Install on /mnt
Install on /mnt
Yes
Yes
Wipe /Boot
Wipe /Boot
Clear old
systemd-boot files
Clear old...
Viewer does not support full SVG 1.1
\ No newline at end of file +
Select BlockDevices
Select BlockDevices
No
No
Yes
Yes
Empty Selection
Empty Selection
Yes / No
Yes / No
Encrypt Root
Encrypt Root
No
No
Yes
Yes
Multiple BD's
Multiple BD's
Select /boot, / and optional mounts
Select /boot, / and...
Yes
Yes
No
No
Contains Partitions
Contains Partitions
No
No
Yes
Yes
Old /boot has content
Old /boot has cont...
Select Root FIlesystem
Select Root FIlesyst...
Mount Partitions
Mount Partitions
Install on /mnt
Install on /mnt
Yes
Yes
Wipe /Boot
Wipe /Boot
Clear old
systemd-boot files
Clear old...
Viewer does not support full SVG 1.1
diff --git a/docs/flowcharts/DiskSelectionProcess.drawio b/docs/flowcharts/DiskSelectionProcess.drawio index 7c8a1fcb1d..fb8a225f6f 100644 --- a/docs/flowcharts/DiskSelectionProcess.drawio +++ b/docs/flowcharts/DiskSelectionProcess.drawio @@ -1 +1 @@ -7VvZdqM4EP2anHlKDpsxPMZ20sl0kl7S05meNwVkYCIjt5C3+fqRjFgFNnbwksQv3a5CCKG6dWsROdP7o/knAsb+PXYhOtMUd36mD840TVUsi/3HNYtYY5tC4ZHAFYMyxWPwH0zuFNpJ4MKoMJBijGgwLiodHIbQoQUdIATPisOGGBWfOgYelBSPDkCy9ilwqR9rLa2b6W9g4PnJk1XTjq+MQDJYvEnkAxfPcir96kzvE4xp/Gs070PENy/Zl6fbxRO6ezE//fkt+g3+6n3+8fDzPJ7sepNb0lcgMKRbT/3y2bLtaXf4oFrf7ga/rYfB/dW5IV6NLpL9gi7bPiFiQn3s4RCgq0zbI3gSupDPqjIpG3OH8Vgo/4WULgQWwIRipvLpCImr7C3I4m8mKBedRPzFxUQYzAvSQkhDHNI+RpgsV6obpmF3BkwfUYJfYO5K17IuL3V+R4BQTt/T+vZlbzmve80upetxLznSmOggEEWBs5wUECoGKYmcDAtxyHcieoHU8cWAeCf59pWAt8ZqYlyEJ8SBK8bpwnkA8eCq+cwUmsynIR5BtoXsPgIRoMG0uDggnMtLx2UAYj8EhjaAqljkFKCJeNIjRNytNaWHsPMygNPAYXRQRt3MDyh8HIPlDswYExURwy0v4KSyl+t53EypYbj1E9/mo1NHVSS01gFiBYRqQLeZdaeQUDjP7b1soOSqKehG8K0lxFlGXmrCSH6OuAzl9SatpAhNMukDPrFGBUHskwzMhmSgKtVga50NKqEjs8GvCt8/IHbUA2HnbUScCpBp3mx4N50TtftTuRl3H7/9Y4fnmrGS0c6Vi65qCCw0Bp6Y7isOQpobgofDiC2mjMz0qduHLlMC69VoTPl7xCEswKEEXeLj0fOELa23JoAVQhJH1TUYBYjD7AaiKaSBAyrCHECBF3KMMHtCUh3r2COD0GOSmUk/lm7Bkru3H/7UbsP4Z7UQ/6rRXcNiCp9WU7YKhs6ETJdGkTOUgodvQXWbU1OdieE8oDnOZFJKmex3xphcSAhz2yBd4LpqSizxpiDEjFeVjVGZJ8Bq02sNw2y3koprQa5cqIZmv44QxVRGp+QvZskP4rWLu/Ll4f6YtSsza+iQxZg//Tsvn0/VQB1SOnrJvPahywHlSMqBd5nWJ02ztSlXZ13G9XqCaZUXKqGkSlA6VHmwx0j3YXBbPbCG7vbTnVJl8rqf8FY0g5Gm9AZ/yOg7Zfi7zvC1piFtdxm+Kpn9naTwbbt5coCzLjxZDfPhPbm9HGjSrjSb8HmZgvbTig6ELvsXj3nFD/jkI2ZdeupZN3dpQ99jlloJQLul1KJd723dS+tzw2N20srVqHKVuFVh8arucCGRy/K62qbFG7G0ah6VqTuSpftsv0AQ8q7aV5bGBpx6T7nY7olb7xxbLqbKzL1/GtjskOjgNGC1TQO5gxvdFj3Qo2gjVKfvbQX7nab0FWd5pYq98lCwXOQfvjJ4FQS140o6LAk5X5CbrwoUH/Cg5LBdhKHcqP64EQkQR6xU0/cYoAz14AHKOkWjlVSgNv02pemh2WaRh1EoWOQGjHkcinYRd1T5i4G0rRAfaynXtwhGi4jCkQSaU/eg7oxLb+rjO+seaHKFcmzpRFt5gAsiP11Wy0yQ7FrDD4iOJitI1p0/JuAtwNXV6RqHLgGgnA9sdiQkM0Cd3fO8sS8H3ucnqyvxlDPgbcjS7eWd/DMunuCNKvK57W0o2crSnnXTbGIrtwMt1yjZquCXzA70C0/tKN9hY5e21I0js6Xe1inxqbrbnsiblncJERwLkcv13VMwhrH/96q+PPq4Bd3OCKVUwXWMTjNG2VkFpx9dMve+2aN9Uqj+FNJUS3WEYRenqPkUsq16MHnP/LkGgoDwnIN3lUzEdrP3zGTT47/iwtA9F50mZqWKuHYipNazVaMBIRntEBITs78PjXGW/ZWtfvU/ \ No newline at end of file +7VvZdqM4EP2anHlKDpsxPMZ20sl0kl7S05meNwVkYCIjt5C3+fqRjFgFNnbwksQv3a5CCKG6dWsROdP7o/knAsb+PXYhOtMUd36mD840TVUsi/3HNYtYY5tC4ZHAFYMyxWPwH0zuFNpJ4MKoMJBijGgwLiodHIbQoQUdIATPisOGGBWfOgYelBSPDkCy9ilwqR9rLa2b6W9g4PnJk1XTjq+MQDJYvEnkAxfPcir96kzvE4xp/Gs070PENy/Zl6fbxRO6ezE//fkt+g3+6n3+8fDzPJ7sepNb0lcgMKRbT/3y2bLtaXf4oFrf7ga/rYfB/dW5IV6NLpL9gi7bPiFiQn3s4RCgq0zbI3gSupDPqjIpG3OH8Vgo/4WULgQWwIRipvLpCImr7C3I4m8mKBedRPzFxUQYzAvSQkhDHNI+RpgsV6obpmF3BkwfUYJfYO5K17IuL3V+R4BQTt/T+vZlbzmve80upetxLznSmOggEEWBs5wUECoGKYmcDAtxyHcieoHU8cWAeCf59pWAt8ZqYlyEJ8SBK8bpwnkA8eCq+cwUmsynIR5BtoXsPgIRoMG0uDggnMtLx2UAYj8EhjaAqljkFKCJeNIjRNytNaWHsPMygNPAYXRQRt3MDyh8HIPlDswYExURwy0v4KSyl+t53EypYbj1E9/mo1NHVSS01gFiBYRqQLeZdaeQUDjP7b1soOSqKehG8K0lxFlGXmrCSH6OuAzl9SatpAhNMukDPrFGBUHskwzMhmSgKtVga50NKqEjs8GvCt8/IHbUA2HnbUScCpBp3mx4N50TtftTuRl3H7/9Y4fnmrGS0c6Vi65qCCw0Bp6Y7isOQpobgofDiC2mjMz0qduHLlMC69VoTPl7xCEswKEEXeLj0fOELa23JoAVQhJH1TUYBYjD7AaiKaSBAyrCHECBF3KMMHtCUh3r2COD0GOSmUk/lm7Bkru3H/7UbsP4Z7UQ/6rRXcNiCp9WU7YKhs6ETJdGkTOUgodvQXWbU1OdieE8oDnOZFJKmex3xphcSAhz2yBd4LpqSizxpiDEjFeVjVGZJ8Bq02sNw2y3koprQa5cqIZmv44QxVRGp+QvZskP4rWLu/Ll4f6YtSsza+iQxZg//Tsvn0/VQB1SOnrJvPahywHlSMqBd5nWJ02ztSlXZ13G9XqCaZUXKqGkSlA6VHmwx0j3YXBbPbCG7vbTnVJl8rqf8FY0g5Gm9AZ/yOg7Zfi7zvC1piFtdxm+Kpn9naTwbbt5coCzLjxZDfPhPbm9HGjSrjSb8HmZgvbTig6ELvsXj3nFD/jkI2ZdeupZN3dpQ99jlloJQLul1KJd723dS+tzw2N20srVqHKVuFVh8arucCGRy/K62qbFG7G0ah6VqTuSpftsv0AQ8q7aV5bGBpx6T7nY7olb7xxbLqbKzL1/GtjskOjgNGC1TQO5gxvdFj3Qo2gjVKfvbQX7nab0FWd5pYq98lCwXOQfvjJ4FQS140o6LAk5X5CbrwoUH/Cg5LBdhKHcqP64EQkQR6xU0/cYoAz14AHKOkWjlVSgNv02pemh2WaRh1EoWOQGjHkcinYRd1T5i4G0rRAfaynXtwhGi4jCkQSaU/eg7oxLb+rjO+seaHKFcmzpRFt5gAsiP11Wy0yQ7FrDD4iOJitI1p0/JuAtwNXV6RqHLgGgnA9sdiQkM0Cd3fO8sS8H3ucnqyvxlDPgbcjS7eWd/DMunuCNKvK57W0o2crSnnXTbGIrtwMt1yjZquCXzA70C0/tKN9hY5e21I0js6Xe1inxqbrbnsiblncJERwLkcv13VMwhrH/96q+PPq4Bd3OCKVUwXWMTjNG2VkFpx9dMve+2aN9Uqj+FNJUS3WEYRenqPkUsq16MHnP/LkGgoDwnIN3lUzEdrP3zGTT47/iwtA9F50mZqWKuHYipNazVaMBIRntEBITs78PjXGW/ZWtfvU/ diff --git a/docs/index.rst b/docs/index.rst index 6a81bbb009..eff07b90c6 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,7 +3,7 @@ archinstall Documentation | **archinstall** is library which can be used to install Arch Linux. | The library comes packaged with different pre-configured installers, such as the default :ref:`guided` installer. -| +| | A demo of the :ref:`guided` installer can be seen here: `https://www.youtube.com/watch?v=9Xt7X_Iqg6E `_. Some of the features of Archinstall are: diff --git a/docs/installing/guided.rst b/docs/installing/guided.rst index 90abedb42c..0d37bb3581 100644 --- a/docs/installing/guided.rst +++ b/docs/installing/guided.rst @@ -269,7 +269,7 @@ Options for ``--creds`` { "username": "", "!password": "", - "sudo": false + "sudo": false } - List of regular user credentials, see configuration for reference - Maybe diff --git a/docs/installing/python.rst b/docs/installing/python.rst index edd55138c6..7ce07671d1 100644 --- a/docs/installing/python.rst +++ b/docs/installing/python.rst @@ -56,4 +56,4 @@ Or you can PyPa's `build `_ and `installer - diff --git a/examples/interactive_installation.py b/examples/interactive_installation.py index 629d3af554..ece3e43043 100644 --- a/examples/interactive_installation.py +++ b/examples/interactive_installation.py @@ -9,6 +9,12 @@ from archinstall import models from archinstall import locale from archinstall import info, debug +from archinstall import ConfigurationOutput +from archinstall.tui.curses_menu import tui +from archinstall.tui import ( + MenuItemGroup, MenuItem, SelectMenu, + Alignment, Orientation +) if TYPE_CHECKING: _: Callable[[str], str] @@ -131,14 +137,14 @@ def perform_installation(mountpoint: Path) -> None: if not archinstall.arguments.get('silent'): prompt = str(_('Would you like to chroot into the newly created installation and perform post-installation configuration?')) + '\n' - group = MenuItemGroup.default_confirm() + group = MenuItemGroup.yes_no() result = SelectMenu( group, header=prompt, alignment=Alignment.CENTER, columns=2, - orientation=MenuOrientation.HORIZONTAL + orientation=Orientation.HORIZONTAL ).single() if result.item == MenuItem.yes(): diff --git a/examples/minimal_installation.py b/examples/minimal_installation.py index 2447e509fe..72b380d7aa 100644 --- a/examples/minimal_installation.py +++ b/examples/minimal_installation.py @@ -8,6 +8,7 @@ from archinstall import models from archinstall import interactions from archinstall.default_profiles.minimal import MinimalProfile +from archinstall.tui.curses_menu import tui if TYPE_CHECKING: _: Callable[[str], str] diff --git a/examples/only_hd_installation.py b/examples/only_hd_installation.py index 850e6ebff6..ffbad55724 100644 --- a/examples/only_hd_installation.py +++ b/examples/only_hd_installation.py @@ -2,6 +2,7 @@ import archinstall from archinstall import Installer, disk, debug +from archinstall.tui.curses_menu import tui def ask_user_questions() -> None: