Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/profiles/desktop.py
diff options
context:
space:
mode:
authorDaniel Girtler <blackrabbit256@gmail.com>2023-04-19 20:55:42 +1000
committerGitHub <noreply@github.com>2023-04-19 12:55:42 +0200
commit00b0ae7ba439a5a420095175b3bedd52c569db51 (patch)
treef02d081e361d5e65603f74dea3873dcc6606cf7c /profiles/desktop.py
parent5253e57e9f26cf3e59cb2460544af13f56e485bb (diff)
PyParted and a large rewrite of the underlying partitioning (#1604)
* Invert mypy files * Add optional pre-commit hooks * New profile structure * Serialize profiles * Use profile instead of classmethod * Custom profile setup * Separator between back * Support profile import via url * Move profiles module * Refactor files * Remove symlink * Add user to docker group * Update schema description * Handle list services * mypy fixes * mypy fixes * Rename profilesv2 to profiles * flake8 * mypy again * Support selecting DM * Fix mypy * Cleanup * Update greeter setting * Update schema * Revert toml changes * Poc external dependencies * Dependency support * New encryption menu * flake8 * Mypy and flake8 * Unify lsblk command * Update bootloader configuration * Git hooks * Fix import * Pyparted * Remove custom font setting * flake8 * Remove default preview * Manual partitioning menu * Update structure * Disk configuration * Update filesystem * luks2 encryption * Everything works until installation * Btrfsutil * Btrfs handling * Update btrfs * Save encryption config * Fix pipewire issue * Update mypy version * Update all pre-commit * Update package versions * Revert audio/pipewire * Merge master PRs * Add master changes * Merge master changes * Small renaming * Pull master changes * Reset disk enc after disk config change * Generate locals * Update naming * Fix imports * Fix broken sync * Fix pre selection on table menu * Profile menu * Update profile * Fix post_install * Added python-pyparted to PKGBUILD, this requires [testing] to be enabled in order to run makepkg. Package still works via python -m build etc. * Swaped around some setuptools logic in pyproject Since we define `package-data` and `packages` there should be no need for: ``` [tool.setuptools.packages.find] where = ["archinstall", "archinstall.*"] ``` * Removed pyproject collisions. Duplicate definitions. * Made sure pyproject.toml includes languages * Add example and update README * Fix pyproject issues * Generate locale * Refactor imports * Simplify imports * Add profile description and package examples * Align code * Fix mypy * Simplify imports * Fix saving config * Fix wrong luks merge * Refactor installation * Fix cdrom device loading * Fix wrongly merged code * Fix imports and greeter * Don't terminate on partprobe error * Use specific path on partprobe from luks * Update archinstall/lib/disk/device_model.py Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com> * Update archinstall/lib/disk/device_model.py Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com> * Update github workflow to test archinstall installation * Update sway merge * Generate locales * Update workflow --------- Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com> Co-authored-by: Anton Hvornum <anton@hvornum.se> Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com> Co-authored-by: codefiles <11915375+codefiles@users.noreply.github.com>
Diffstat (limited to 'profiles/desktop.py')
-rw-r--r--profiles/desktop.py97
1 files changed, 0 insertions, 97 deletions
diff --git a/profiles/desktop.py b/profiles/desktop.py
deleted file mode 100644
index e94d3505..00000000
--- a/profiles/desktop.py
+++ /dev/null
@@ -1,97 +0,0 @@
-# A desktop environment selector.
-from typing import Any, TYPE_CHECKING
-
-import archinstall
-from archinstall import log, Menu
-from archinstall.lib.menu.menu import MenuSelectionType
-
-if TYPE_CHECKING:
- _: Any
-
-is_top_level_profile = True
-
-__description__ = str(_('Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway'))
-
-# New way of defining packages for a profile, which is iterable and can be used out side
-# of the profile to get a list of "what packages will be installed".
-__packages__ = [
- 'nano',
- 'vim',
- 'openssh',
- 'htop',
- 'wget',
- 'iwd',
- 'wireless_tools',
- 'wpa_supplicant',
- 'smartmontools',
- 'xdg-utils',
-]
-
-__supported__ = [
- 'gnome',
- 'kde',
- 'awesome',
- 'sway',
- 'cinnamon',
- 'xfce4',
- 'lxqt',
- 'i3',
- 'bspwm',
- 'budgie',
- 'mate',
- 'deepin',
- 'enlightenment',
- 'qtile'
-]
-
-
-def _prep_function(*args, **kwargs) -> bool:
- """
- Magic function called by the importing installer
- before continuing any further. It also avoids executing any
- other code in this stage. So it's a safe way to ask the user
- for more input before any other installer steps start.
- """
- choice = Menu(str(_('Select your desired desktop environment')), __supported__).run()
-
- if choice.type_ != MenuSelectionType.Selection:
- return False
-
- if choice.value:
- # Temporarily store the selected desktop profile
- # in a session-safe location, since this module will get reloaded
- # the next time it gets executed.
- if not archinstall.storage.get('_desktop_profile', None):
- archinstall.storage['_desktop_profile'] = choice.value
- if not archinstall.arguments.get('desktop-environment', None):
- archinstall.arguments['desktop-environment'] = choice.value
- profile = archinstall.Profile(None, choice.value)
- # Loading the instructions with a custom namespace, ensures that a __name__ comparison is never triggered.
- with profile.load_instructions(namespace=f"{choice.value}.py") as imported:
- if hasattr(imported, '_prep_function'):
- return imported._prep_function()
- else:
- log(f"Deprecated (??): {choice.value} profile has no _prep_function() anymore")
- exit(1)
-
- return False
-
-
-if __name__ == 'desktop':
- """
- This "profile" is a meta-profile.
- There are no desktop-specific steps, it simply routes
- the installer to whichever desktop environment/window manager was chosen.
-
- Maybe in the future, a network manager or similar things *could* be added here.
- We should honor that Arch Linux does not officially endorse a desktop-setup, nor is
- it trying to be a turn-key desktop distribution.
-
- There are plenty of desktop-turn-key-solutions based on Arch Linux,
- this is therefore just a helper to get started
- """
-
- # Install common packages for all desktop environments
- archinstall.storage['installation_session'].add_additional_packages(__packages__)
-
- archinstall.storage['installation_session'].install_profile(archinstall.storage['_desktop_profile'])