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.py11
-rw-r--r--profiles/desktop.py2
-rw-r--r--profiles/enlightenment.py37
3 files changed, 43 insertions, 7 deletions
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index 576000c8..03b49f77 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -320,9 +320,12 @@ class Installer():
if 'encrypt' not in self.HOOKS:
self.HOOKS.insert(self.HOOKS.index('filesystems'), 'encrypt')
- if not(hasUEFI()):
+ if not(hasUEFI()): # TODO: Allow for grub even on EFI
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":
@@ -331,14 +334,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"
- ) # Redundant \n at the start? who knows?
+ ) # Redundant \n at the start? who knows?
## TODO: Support locale and timezone
#os.remove(f'{self.target}/etc/localtime')
diff --git a/profiles/desktop.py b/profiles/desktop.py
index d4c13239..cdd23ba0 100644
--- a/profiles/desktop.py
+++ b/profiles/desktop.py
@@ -16,7 +16,7 @@ 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')