Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/profiles
diff options
context:
space:
mode:
Diffstat (limited to 'profiles')
-rw-r--r--profiles/budgie.py8
-rw-r--r--profiles/i3.py46
-rw-r--r--profiles/sway.py39
3 files changed, 54 insertions, 39 deletions
diff --git a/profiles/budgie.py b/profiles/budgie.py
index 3e4a85df..33484680 100644
--- a/profiles/budgie.py
+++ b/profiles/budgie.py
@@ -4,12 +4,14 @@ import archinstall
is_top_level_profile = False
-# "It is recommended also to install the gnome group, which contains applications required for the standard GNOME experience." - Arch Wiki
__packages__ = [
- "budgie-desktop",
- "gnome",
+ "arc-gtk-theme",
+ "budgie",
"lightdm",
"lightdm-gtk-greeter",
+ "mate-terminal",
+ "nemo",
+ "papirus-icon-theme",
]
diff --git a/profiles/i3.py b/profiles/i3.py
index 37029a02..d9b98b77 100644
--- a/profiles/i3.py
+++ b/profiles/i3.py
@@ -1,14 +1,13 @@
-# Common package for i3, lets user select which i3 configuration they want.
+# Common package for i3.
import archinstall
-from archinstall import Menu
-from archinstall.lib.menu.menu import MenuSelectionType
is_top_level_profile = False
# 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__ = [
+ 'i3-wm',
'i3lock',
'i3status',
'i3blocks',
@@ -27,28 +26,13 @@ def _prep_function(*args, **kwargs):
for more input before any other installer steps start.
"""
- supported_configurations = ['i3-wm', 'i3-gaps']
-
- choice = Menu('Select your desired configuration', supported_configurations).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.
- archinstall.storage['_i3_configuration'] = choice.value
-
- # i3 requires a functioning Xorg installation.
- profile = archinstall.Profile(None, 'xorg')
- with profile.load_instructions(namespace='xorg.py') as imported:
- if hasattr(imported, '_prep_function'):
- return imported._prep_function()
- else:
- print('Deprecated (??): xorg profile has no _prep_function() anymore')
-
- return False
+ # i3 requires a functioning Xorg installation.
+ profile = archinstall.Profile(None, 'xorg')
+ with profile.load_instructions(namespace='xorg.py') as imported:
+ if hasattr(imported, '_prep_function'):
+ return imported._prep_function()
+ else:
+ print('Deprecated (??): xorg profile has no _prep_function() anymore')
if __name__ == 'i3':
@@ -65,17 +49,11 @@ if __name__ == 'i3':
this is therefore just a helper to get started
"""
- # Install common packages for all i3 configurations
- archinstall.storage['installation_session'].add_additional_packages(__packages__[:4])
-
# Install dependency profiles
archinstall.storage['installation_session'].install_profile('xorg')
- # gaps is installed by default so we are overriding it here with lightdm
- archinstall.storage['installation_session'].add_additional_packages(__packages__[4:])
+ # Install the i3 packages
+ archinstall.storage['installation_session'].add_additional_packages(__packages__)
- # Auto start lightdm for all users
+ # Enable autostart of lightdm for all users
archinstall.storage['installation_session'].enable_service('lightdm')
-
- # install the i3 group now
- archinstall.storage['installation_session'].add_additional_packages(archinstall.storage['_i3_configuration'])
diff --git a/profiles/sway.py b/profiles/sway.py
index b7266da3..5fbd3365 100644
--- a/profiles/sway.py
+++ b/profiles/sway.py
@@ -1,6 +1,12 @@
# A desktop environment using "Sway"
+from typing import Any, TYPE_CHECKING
+
import archinstall
from archinstall import Menu
+from archinstall.lib.menu.menu import MenuSelectionType
+
+if TYPE_CHECKING:
+ _: Any
is_top_level_profile = False
@@ -22,7 +28,7 @@ def _check_driver() -> bool:
packages = archinstall.storage.get("gfx_driver_packages", [])
if packages and "nvidia" in packages:
- prompt = 'The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?'
+ prompt = _('The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?')
choice = Menu(prompt, Menu.yes_no(), default_option=Menu.no(), skip=False).run()
if choice.value == Menu.no():
@@ -30,6 +36,18 @@ def _check_driver() -> bool:
return True
+def _get_system_privelege_control_preference():
+ # 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"]).run()
+
+ if choice.type_ != MenuSelectionType.Selection:
+ return False
+
+ archinstall.storage['sway_sys_priv_ctrl'] = [choice.value]
+ archinstall.arguments['sway_sys_priv_ctrl'] = [choice.value]
+ return True
def _prep_function(*args, **kwargs):
"""
@@ -38,6 +56,9 @@ def _prep_function(*args, **kwargs):
other code in this stage. So it's a safe way to ask the user
for more input before any other installer steps start.
"""
+ if not _get_system_privelege_control_preference():
+ return False
+
driver = archinstall.select_driver()
if driver:
@@ -49,15 +70,29 @@ def _prep_function(*args, **kwargs):
return False
+"""
+def _post_install(*args, **kwargs):
+ if "seatd" in sway_sys_priv_ctrl:
+ print(_('After booting, add user(s) to the `seat` user group and re-login to use Sway'))
+ return True
+"""
+
# Ensures that this code only gets executed if executed
# through importlib.util.spec_from_file_location("sway", "/somewhere/sway.py")
# or through conventional import sway
if __name__ == "sway":
if not _check_driver():
- raise archinstall.lib.exceptions.HardwareIncompatibilityError("Sway does not support the proprietary nvidia drivers.")
+ raise archinstall.lib.exceptions.HardwareIncompatibilityError(_('Sway does not support the proprietary nvidia drivers.'))
# Install the Sway packages
archinstall.storage['installation_session'].add_additional_packages(__packages__)
+ if "seatd" in archinstall.storage['sway_sys_priv_ctrl']:
+ archinstall.storage['installation_session'].add_additional_packages(['seatd'])
+ archinstall.storage['installation_session'].enable_service('seatd')
+ elif "polkit" in archinstall.storage['sway_sys_priv_ctrl']:
+ archinstall.storage['installation_session'].add_additional_packages(['polkit'])
+ else:
+ raise archinstall.lib.exceptions.ProfileError(_('Sway requires either seatd or polkit to run'))
# Install the graphics driver packages
archinstall.storage['installation_session'].add_additional_packages(f"xorg-server xorg-xinit {' '.join(archinstall.storage.get('gfx_driver_packages', None))}")