Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/default_profiles/desktops
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 /archinstall/default_profiles/desktops
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 'archinstall/default_profiles/desktops')
-rw-r--r--archinstall/default_profiles/desktops/__init__.py0
-rw-r--r--archinstall/default_profiles/desktops/awesome.py36
-rw-r--r--archinstall/default_profiles/desktops/bspwm.py30
-rw-r--r--archinstall/default_profiles/desktops/budgie.py30
-rw-r--r--archinstall/default_profiles/desktops/cinnamon.py31
-rw-r--r--archinstall/default_profiles/desktops/cutefish.py31
-rw-r--r--archinstall/default_profiles/desktops/deepin.py28
-rw-r--r--archinstall/default_profiles/desktops/enlightenment.py27
-rw-r--r--archinstall/default_profiles/desktops/gnome.py27
-rw-r--r--archinstall/default_profiles/desktops/i3.py33
-rw-r--r--archinstall/default_profiles/desktops/kde.py32
-rw-r--r--archinstall/default_profiles/desktops/lxqt.py35
-rw-r--r--archinstall/default_profiles/desktops/mate.py27
-rw-r--r--archinstall/default_profiles/desktops/qtile.py27
-rw-r--r--archinstall/default_profiles/desktops/sway.py66
-rw-r--r--archinstall/default_profiles/desktops/xfce4.py30
16 files changed, 490 insertions, 0 deletions
diff --git a/archinstall/default_profiles/desktops/__init__.py b/archinstall/default_profiles/desktops/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/archinstall/default_profiles/desktops/__init__.py
diff --git a/archinstall/default_profiles/desktops/awesome.py b/archinstall/default_profiles/desktops/awesome.py
new file mode 100644
index 00000000..bb481914
--- /dev/null
+++ b/archinstall/default_profiles/desktops/awesome.py
@@ -0,0 +1,36 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ from archinstall.lib.installer import Installer
+ _: Any
+
+
+class AwesomeProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Awesome', ProfileType.WindowMgr, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return ['alacritty']
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
+
+ def install(self, install_session: 'Installer'):
+ super().install(install_session)
+
+ # TODO: Copy a full configuration to ~/.config/awesome/rc.lua instead.
+ with open(f"{install_session.target}/etc/xdg/awesome/rc.lua", 'r') as fh:
+ awesome_lua = fh.read()
+
+ # Replace xterm with alacritty for a smoother experience.
+ awesome_lua = awesome_lua.replace('"xterm"', '"alacritty"')
+
+ with open(f"{install_session.target}/etc/xdg/awesome/rc.lua", 'w') as fh:
+ fh.write(awesome_lua)
+
+ # TODO: Configure the right-click-menu to contain the above packages that were installed. (as a user config)
diff --git a/archinstall/default_profiles/desktops/bspwm.py b/archinstall/default_profiles/desktops/bspwm.py
new file mode 100644
index 00000000..f3bc982d
--- /dev/null
+++ b/archinstall/default_profiles/desktops/bspwm.py
@@ -0,0 +1,30 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class BspwmProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Bspwm', ProfileType.WindowMgr, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ 'bspwm',
+ 'sxhkd',
+ 'dmenu',
+ 'xdo',
+ 'rxvt-unicode'
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/budgie.py b/archinstall/default_profiles/desktops/budgie.py
new file mode 100644
index 00000000..32bd718d
--- /dev/null
+++ b/archinstall/default_profiles/desktops/budgie.py
@@ -0,0 +1,30 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class BudgieProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Budgie', ProfileType.DesktopEnv, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "arc-gtk-theme",
+ "budgie",
+ "mate-terminal",
+ "nemo",
+ "papirus-icon-theme",
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/cinnamon.py b/archinstall/default_profiles/desktops/cinnamon.py
new file mode 100644
index 00000000..22fd0d9d
--- /dev/null
+++ b/archinstall/default_profiles/desktops/cinnamon.py
@@ -0,0 +1,31 @@
+from typing import Optional, List, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class CinnamonProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Cinnamon', ProfileType.DesktopEnv, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "cinnamon",
+ "system-config-printer",
+ "gnome-keyring",
+ "gnome-terminal",
+ "blueberry",
+ "metacity"
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/cutefish.py b/archinstall/default_profiles/desktops/cutefish.py
new file mode 100644
index 00000000..6f88c47a
--- /dev/null
+++ b/archinstall/default_profiles/desktops/cutefish.py
@@ -0,0 +1,31 @@
+from typing import Optional, List, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ from archinstall.lib.installer import Installer
+ _: Any
+
+
+class CutefishProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Cutefish', ProfileType.DesktopEnv, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "cutefish",
+ "noto-fonts"
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Sddm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
+
+ def install(self, install_session: 'Installer'):
+ super().install(install_session)
diff --git a/archinstall/default_profiles/desktops/deepin.py b/archinstall/default_profiles/desktops/deepin.py
new file mode 100644
index 00000000..054c8fdf
--- /dev/null
+++ b/archinstall/default_profiles/desktops/deepin.py
@@ -0,0 +1,28 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class DeepinProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Deepin', ProfileType.DesktopEnv, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "deepin",
+ "deepin-terminal",
+ "deepin-editor"
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/enlightenment.py b/archinstall/default_profiles/desktops/enlightenment.py
new file mode 100644
index 00000000..164f64fe
--- /dev/null
+++ b/archinstall/default_profiles/desktops/enlightenment.py
@@ -0,0 +1,27 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class EnlighenmentProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Enlightenment', ProfileType.WindowMgr, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "enlightenment",
+ "terminology"
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/gnome.py b/archinstall/default_profiles/desktops/gnome.py
new file mode 100644
index 00000000..3cbd49bd
--- /dev/null
+++ b/archinstall/default_profiles/desktops/gnome.py
@@ -0,0 +1,27 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class GnomeProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Gnome', ProfileType.DesktopEnv, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ 'gnome',
+ 'gnome-tweaks'
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Gdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/i3.py b/archinstall/default_profiles/desktops/i3.py
new file mode 100644
index 00000000..7c6f24ca
--- /dev/null
+++ b/archinstall/default_profiles/desktops/i3.py
@@ -0,0 +1,33 @@
+from typing import Optional, List, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class I3wmProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('i3-wm', ProfileType.WindowMgr, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ 'i3-wm',
+ 'i3lock',
+ 'i3status',
+ 'i3blocks',
+ 'xterm',
+ 'lightdm-gtk-greeter',
+ 'lightdm',
+ 'dmenu',
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/kde.py b/archinstall/default_profiles/desktops/kde.py
new file mode 100644
index 00000000..cd02e069
--- /dev/null
+++ b/archinstall/default_profiles/desktops/kde.py
@@ -0,0 +1,32 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class KdeProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Kde', ProfileType.DesktopEnv, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "plasma-meta",
+ "konsole",
+ "kwrite",
+ "dolphin",
+ "ark",
+ "plasma-wayland-session",
+ "egl-wayland"
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Sddm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/lxqt.py b/archinstall/default_profiles/desktops/lxqt.py
new file mode 100644
index 00000000..146e168e
--- /dev/null
+++ b/archinstall/default_profiles/desktops/lxqt.py
@@ -0,0 +1,35 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class LxqtProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Lxqt', ProfileType.DesktopEnv, description='')
+
+ # NOTE: SDDM is the only officially supported greeter for LXQt, so unlike other DEs, lightdm is not used here.
+ # LXQt works with lightdm, but since this is not supported, we will not default to this.
+ # https://github.com/lxqt/lxqt/issues/795
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "lxqt",
+ "breeze-icons",
+ "oxygen-icons",
+ "xdg-utils",
+ "ttf-freefont",
+ "leafpad",
+ "slock",
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Sddm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/mate.py b/archinstall/default_profiles/desktops/mate.py
new file mode 100644
index 00000000..0ddaaaab
--- /dev/null
+++ b/archinstall/default_profiles/desktops/mate.py
@@ -0,0 +1,27 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class MateProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Mate', ProfileType.DesktopEnv, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "mate",
+ "mate-extra"
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/qtile.py b/archinstall/default_profiles/desktops/qtile.py
new file mode 100644
index 00000000..66c6fa1b
--- /dev/null
+++ b/archinstall/default_profiles/desktops/qtile.py
@@ -0,0 +1,27 @@
+from typing import Optional, List, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class QtileProfile(XorgProfile):
+ def __init__(self):
+ super().__init__('Qtile', ProfileType.WindowMgr, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ 'qtile',
+ 'alacritty'
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
diff --git a/archinstall/default_profiles/desktops/sway.py b/archinstall/default_profiles/desktops/sway.py
new file mode 100644
index 00000000..519f5bbb
--- /dev/null
+++ b/archinstall/default_profiles/desktops/sway.py
@@ -0,0 +1,66 @@
+from typing import List, Optional, TYPE_CHECKING, Any
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+from archinstall.lib.menu import Menu
+
+if TYPE_CHECKING:
+ from archinstall.lib.installer import Installer
+ _: Any
+
+
+class SwayProfile(XorgProfile):
+ def __init__(self):
+ super().__init__(
+ 'Sway',
+ ProfileType.WindowMgr,
+ description=''
+ )
+ self._control_preference = []
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "sway",
+ "swaybg",
+ "swaylock",
+ "swayidle",
+ "waybar",
+ "dmenu",
+ "brightnessctl",
+ "grim",
+ "slurp",
+ "pavucontrol",
+ "foot",
+ "xorg-xwayland"
+ ] + self._control_preference
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ @property
+ def services(self) -> List[str]:
+ if "seatd" in self._control_preference:
+ return ['seatd']
+ elif "polkit" in self._control_preference:
+ return ['polkit']
+
+ return []
+
+ def _get_system_privelege_control_preference(self):
+ # need to activate seat service and add to seat group
+ title = str(_('Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)'))
+ title += str(_('\n\nChoose an option to give Sway access to your hardware'))
+ choice = Menu(title, ["polkit", "seatd"], skip=False).run()
+ self._control_preference = [choice.value]
+
+ def do_on_select(self):
+ self._get_system_privelege_control_preference()
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()
+
+ def install(self, install_session: 'Installer'):
+ super().install(install_session)
diff --git a/archinstall/default_profiles/desktops/xfce4.py b/archinstall/default_profiles/desktops/xfce4.py
new file mode 100644
index 00000000..bd6c3038
--- /dev/null
+++ b/archinstall/default_profiles/desktops/xfce4.py
@@ -0,0 +1,30 @@
+from typing import List, Optional, Any, TYPE_CHECKING
+
+from archinstall.default_profiles.profile import ProfileType, GreeterType
+from archinstall.default_profiles.xorg import XorgProfile
+
+if TYPE_CHECKING:
+ _: Any
+
+
+class Xfce4Profile(XorgProfile):
+ def __init__(self):
+ super().__init__('Xfce4', ProfileType.DesktopEnv, description='')
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ "xfce4",
+ "xfce4-goodies",
+ "pavucontrol",
+ "gvfs",
+ "xarchiver"
+ ]
+
+ @property
+ def default_greeter_type(self) -> Optional[GreeterType]:
+ return GreeterType.Lightdm
+
+ def preview_text(self) -> Optional[str]:
+ text = str(_('Environment type: {}')).format(self.profile_type.value)
+ return text + '\n' + self.packages_text()