Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archinstall/lib/installer.py9
-rw-r--r--archinstall/lib/profiles.py2
-rw-r--r--profiles/desktop.py3
-rw-r--r--profiles/enlightenment.py37
4 files changed, 46 insertions, 5 deletions
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index 03b49f77..68d058f0 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -320,12 +320,9 @@ class Installer():
if 'encrypt' not in self.HOOKS:
self.HOOKS.insert(self.HOOKS.index('filesystems'), 'encrypt')
- if not(hasUEFI()): # TODO: Allow for grub even on EFI
+ if not(hasUEFI()):
self.base_packages.append('grub')
- self.pacstrap(self.base_packages)
- self.helper_flags['base-strapped'] = True
- #self.genfstab()
if not isVM():
vendor = cpuVendor()
if vendor == "AuthenticAMD":
@@ -334,6 +331,10 @@ class Installer():
self.base_packages.append("intel-ucode")
else:
self.log("Unknown cpu vendor not installing ucode")
+
+ self.pacstrap(self.base_packages)
+ self.helper_flags['base-strapped'] = True
+
with open(f"{self.target}/etc/fstab", "a") as fstab:
fstab.write(
"\ntmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0\n"
diff --git a/archinstall/lib/profiles.py b/archinstall/lib/profiles.py
index 9225a129..42fd4c24 100644
--- a/archinstall/lib/profiles.py
+++ b/archinstall/lib/profiles.py
@@ -26,6 +26,8 @@ def list_profiles(filter_irrelevant_macs=True, subpath='', filter_top_level_prof
for PATH_ITEM in storage['PROFILE_PATH']:
for root, folders, files in os.walk(os.path.abspath(os.path.expanduser(PATH_ITEM+subpath))):
for file in files:
+ if file == '__init__.py':
+ continue
if os.path.splitext(file)[1] == '.py':
tailored = False
if len(mac := re.findall('(([a-zA-z0-9]{2}[-:]){5}([a-zA-z0-9]{2}))', file)):
diff --git a/profiles/desktop.py b/profiles/desktop.py
index d4c13239..9e1d8b4c 100644
--- a/profiles/desktop.py
+++ b/profiles/desktop.py
@@ -16,7 +16,8 @@ def _prep_function(*args, **kwargs):
for more input before any other installer steps start.
"""
- supported_desktops = ['gnome', 'kde', 'awesome', 'sway', 'cinnamon', 'xfce4', 'lxqt', 'i3', 'budgie', 'mate']
+ supported_desktops = ['gnome', 'kde', 'awesome', 'sway', 'cinnamon', 'xfce4', 'lxqt', 'i3', 'budgie', 'mate', 'deepin', 'enlightenment']
+
desktop = archinstall.generic_select(supported_desktops, 'Select your desired desktop environment: ',
allow_empty_input=False, sort=True)
diff --git a/profiles/enlightenment.py b/profiles/enlightenment.py
new file mode 100644
index 00000000..6ff334de
--- /dev/null
+++ b/profiles/enlightenment.py
@@ -0,0 +1,37 @@
+# A desktop environment using "Enlightenment".
+
+import archinstall, os
+
+is_top_level_profile = False
+
+__packages__ = ["enlightenment", "terminology", "lightdm", "lightdm-gtk-greeter"]
+
+def _prep_function(*args, **kwargs):
+ """
+ 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.
+ """
+
+ # Enlightenment 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')
+
+
+# Ensures that this code only gets executed if executed
+# through importlib.util.spec_from_file_location("enlightenment", "/somewhere/enlightenment.py")
+# or through conventional import enlightenment
+if __name__ == 'enlightenment':
+ # Install dependency profiles
+ archinstall.storage['installation_session'].install_profile('xorg')
+
+ # Install the enlightenment packages
+ archinstall.storage['installation_session'].add_additional_packages(__packages__)
+
+ # Enable autostart of enlightenment for all users
+ archinstall.storage['installation_session'].enable_service('lightdm')