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/52-54-00-12-34-56.py2
-rw-r--r--profiles/applications/awesome.py6
-rw-r--r--profiles/applications/cinnamon.py4
-rw-r--r--profiles/applications/i3-gaps.py2
-rw-r--r--profiles/applications/i3-wm.py2
-rw-r--r--profiles/applications/kde-wayland.py7
-rw-r--r--profiles/applications/kde.py5
-rw-r--r--profiles/applications/xfce4.py4
-rw-r--r--profiles/awesome.py13
-rw-r--r--profiles/cinnamon.py (renamed from profiles/kde-wayland.py)25
-rw-r--r--profiles/desktop.py4
-rw-r--r--profiles/gnome.py2
-rw-r--r--profiles/i3-gaps.py43
-rw-r--r--profiles/i3-wm.py42
-rw-r--r--profiles/kde.py8
-rw-r--r--profiles/minimal.py20
-rw-r--r--profiles/xfce4.py35
-rw-r--r--profiles/xorg.py2
18 files changed, 193 insertions, 33 deletions
diff --git a/profiles/52-54-00-12-34-56.py b/profiles/52-54-00-12-34-56.py
index 679c6721..ed2c9d78 100644
--- a/profiles/52-54-00-12-34-56.py
+++ b/profiles/52-54-00-12-34-56.py
@@ -11,7 +11,7 @@ archinstall.sys_command(f'cryptsetup close /dev/mapper/luksloop', suppress_error
harddrive = archinstall.all_disks()['/dev/sda']
disk_password = '1234'
-with archinstall.Filesystem(harddrive, archinstall.GPT) as fs:
+with archinstall.Filesystem(harddrive) as fs:
# Use the entire disk instead of setting up partitions on your own
fs.use_entire_disk('luks2')
diff --git a/profiles/applications/awesome.py b/profiles/applications/awesome.py
index 578f246e..b8d779c0 100644
--- a/profiles/applications/awesome.py
+++ b/profiles/applications/awesome.py
@@ -1,10 +1,10 @@
import archinstall
+__packages__ = ["awesome", "xorg-xrandr", "xterm", "feh", "slock", "terminus-font", "gnu-free-fonts", "ttf-liberation", "xsel"]
+
installation.install_profile('xorg')
-installation.add_additional_packages(
- "awesome xorg-xrandr xterm feh slock terminus-font gnu-free-fonts ttf-liberation xsel"
-)
+installation.add_additional_packages(__packages__)
with open(f'{installation.mountpoint}/etc/X11/xinit/xinitrc', 'r') as xinitrc:
xinitrc_data = xinitrc.read()
diff --git a/profiles/applications/cinnamon.py b/profiles/applications/cinnamon.py
new file mode 100644
index 00000000..af1cbee2
--- /dev/null
+++ b/profiles/applications/cinnamon.py
@@ -0,0 +1,4 @@
+import archinstall
+
+installation.add_additional_packages("cinnamon system-config-printer gnome-keyring gnome-terminal blueberry metacity lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings")
+# We'll create a cinnamon-minimal later, but for now, we'll avoid issues by giving more than we need.
diff --git a/profiles/applications/i3-gaps.py b/profiles/applications/i3-gaps.py
new file mode 100644
index 00000000..4dd95989
--- /dev/null
+++ b/profiles/applications/i3-gaps.py
@@ -0,0 +1,2 @@
+import archinstall
+installation.add_additional_packages("i3lock i3status i3blocks i3-gaps") \ No newline at end of file
diff --git a/profiles/applications/i3-wm.py b/profiles/applications/i3-wm.py
new file mode 100644
index 00000000..8662497d
--- /dev/null
+++ b/profiles/applications/i3-wm.py
@@ -0,0 +1,2 @@
+import archinstall
+installation.add_additional_packages("i3lock i3status i3blocks i3-wm") \ No newline at end of file
diff --git a/profiles/applications/kde-wayland.py b/profiles/applications/kde-wayland.py
deleted file mode 100644
index 6a9be294..00000000
--- a/profiles/applications/kde-wayland.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import archinstall
-packages = "plasma-meta kde-applications-meta plasma-wayland-session sddm"
-# if the package selection can be reduced go for it
-if "nvidia" in _gfx_driver_packages:
- packages = packages + " egl-wayland"
-installation.add_additional_packages(packages)
-# We'll support plasma-desktop-wayland (minimal) later
diff --git a/profiles/applications/kde.py b/profiles/applications/kde.py
index 87a266b0..af1e6597 100644
--- a/profiles/applications/kde.py
+++ b/profiles/applications/kde.py
@@ -1,2 +1,5 @@
import archinstall
-installation.add_additional_packages("plasma-meta kde-applications-meta sddm") # We'll support plasma-desktop (minimal) later iirc sddm should be part of plasma-meta
+packages = "plasma-meta konsole kate dolphin sddm plasma-wayland-session"
+if "nvidia" in _gfx_driver_packages:
+ packages = packages + " egl-wayland"
+installation.add_additional_packages(packages)
diff --git a/profiles/applications/xfce4.py b/profiles/applications/xfce4.py
new file mode 100644
index 00000000..6d6f8f7c
--- /dev/null
+++ b/profiles/applications/xfce4.py
@@ -0,0 +1,4 @@
+import archinstall
+
+installation.add_additional_packages("xfce4 xfce4-goodies lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings")
+# We'll create a xfce4-minimal later, but for now, we'll avoid issues by giving more than we need.
diff --git a/profiles/awesome.py b/profiles/awesome.py
index a565ccb3..0d133962 100644
--- a/profiles/awesome.py
+++ b/profiles/awesome.py
@@ -2,6 +2,11 @@
import archinstall
+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__ = ['nano', 'nemo', 'gpicview-gtk3', 'openssh', 'sshfs', 'htop', 'scrot', 'wget']
def _prep_function(*args, **kwargs):
"""
@@ -28,13 +33,7 @@ if __name__ == 'awesome':
awesome = archinstall.Application(installation, 'awesome')
awesome.install()
- # Then setup and configure the desktop environment: awesome
- editor = "nano"
- filebrowser = "nemo gpicview-gtk3"
- utils = "openssh sshfs htop scrot wget"
-
-
- installation.add_additional_packages(f"{utils} {filebrowser} {editor}")
+ installation.add_additional_packages(__packages__)
alacritty = archinstall.Application(installation, 'alacritty')
alacritty.install()
diff --git a/profiles/kde-wayland.py b/profiles/cinnamon.py
index e21f62c8..1a796bc7 100644
--- a/profiles/kde-wayland.py
+++ b/profiles/cinnamon.py
@@ -1,7 +1,7 @@
-# A desktop environment using "KDE".
-import archinstall, os
+# A desktop environment using "Cinnamon"
+import archinstall
-# TODO: Remove hard dependency of bash (due to .bash_profile)
+is_top_level_profile = False
def _prep_function(*args, **kwargs):
"""
@@ -11,7 +11,7 @@ def _prep_function(*args, **kwargs):
for more input before any other installer steps start.
"""
- # KDE requires a functioning Xorg installation.
+ # Cinnamon requires a functioning Xorg installation.
profile = archinstall.Profile(None, 'xorg')
with profile.load_instructions(namespace='xorg.py') as imported:
if hasattr(imported, '_prep_function'):
@@ -20,15 +20,14 @@ def _prep_function(*args, **kwargs):
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("kde", "/somewhere/kde.py")
-# or through conventional import kde
-if __name__ == 'kde-wayland':
+# through importlib.util.spec_from_file_location("cinnamon", "/somewhere/cinnamon.py")
+# or through conventional import cinnamon
+if __name__ == 'cinnamon':
# Install dependency profiles
installation.install_profile('xorg')
- # Install the application kde from the template under /applications/
- kde = archinstall.Application(installation, 'kde-wayland')
- kde.install()
- print("when you login, select Plasma (Wayland) for the wayland session")
- # Enable autostart of KDE for all users
- installation.enable_service('sddm')
+ # Install the application cinnamon from the template under /applications/
+ cinnamon = archinstall.Application(installation, 'cinnamon')
+ cinnamon.install()
+
+ installation.enable_service('lightdm') # Light Display Manager
diff --git a/profiles/desktop.py b/profiles/desktop.py
index 41a2ad8b..389198d6 100644
--- a/profiles/desktop.py
+++ b/profiles/desktop.py
@@ -2,6 +2,8 @@
import archinstall, os
+is_top_level_profile = True
+
def _prep_function(*args, **kwargs):
"""
Magic function called by the importing installer
@@ -10,7 +12,7 @@ def _prep_function(*args, **kwargs):
for more input before any other installer steps start.
"""
- supported_desktops = ['gnome', 'kde', 'awesome']
+ supported_desktops = ['gnome', 'kde', 'awesome', 'xfce4', 'cinnamon', 'i3-gaps', 'i3-wm']
desktop = archinstall.generic_select(supported_desktops, 'Select your desired desktop environment: ')
# Temporarily store the selected desktop profile
diff --git a/profiles/gnome.py b/profiles/gnome.py
index b37679de..c75cafee 100644
--- a/profiles/gnome.py
+++ b/profiles/gnome.py
@@ -2,6 +2,8 @@
import archinstall
+is_top_level_profile = False
+
def _prep_function(*args, **kwargs):
"""
Magic function called by the importing installer
diff --git a/profiles/i3-gaps.py b/profiles/i3-gaps.py
new file mode 100644
index 00000000..e900117a
--- /dev/null
+++ b/profiles/i3-gaps.py
@@ -0,0 +1,43 @@
+import archinstall, subprocess
+
+is_top_level_profile = False
+
+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.
+ """
+
+ # 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')
+
+def _post_install(*args, **kwargs):
+ """
+ Another magic function called after the system
+ has been installed.
+ """
+ installation.log("the installation of i3 does not conatain any configuerations for the wm. In this shell you should take your time to add your desiired configueration. Exit the shell once you are done to continue the installation.", fg="yellow")
+ try:
+ subprocess.check_call("arch-chroot /mnt",shell=True)
+ except subprocess.CallProcessError:
+ return False
+
+ return True
+
+if __name__ == 'i3-wm':
+ # Install dependency profiles
+ installation.install_profile('xorg')
+ # gaps is installed by deafult so we are overriding it here
+ installation.add_additional_packages("lightdm-gtk-greeter lightdm")
+ # install the i3 group now
+ i3 = archinstall.Application(installation, 'i3-gaps')
+ i3.install()
+ # Auto start lightdm for all users
+ installation.enable_service('lightdm')
diff --git a/profiles/i3-wm.py b/profiles/i3-wm.py
new file mode 100644
index 00000000..a2449e39
--- /dev/null
+++ b/profiles/i3-wm.py
@@ -0,0 +1,42 @@
+import archinstall, subprocess
+
+is_top_level_profile = False
+
+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.
+ """
+
+ # 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')
+def _post_install(*args, **kwargs):
+ """
+ Another magic function called after the system
+ has been installed.
+ """
+ installation.log("the installation of i3 does not conatain any configuerations for the wm. In this shell you should take your time to add your desiired configueration. Exit the shell once you are done to continue the installation.", fg="yellow")
+ try:
+ subprocess.check_call("arch-chroot /mnt",shell=True)
+ except subprocess.CallProcessError:
+ return False
+
+ return True
+
+if __name__ == 'i3-wm':
+ # Install dependency profiles
+ installation.install_profile('xorg')
+ # we are installing lightdm to auto start i3
+ installation.add_additional_packages("lightdm-gtk-greeter lightdm")
+ # install the i3 group now
+ i3 = archinstall.Application(installation, 'i3-wm')
+ i3.install()
+ # Auto start lightdm for all users
+ installation.enable_service('lightdm')
diff --git a/profiles/kde.py b/profiles/kde.py
index 32819bd5..d6abe029 100644
--- a/profiles/kde.py
+++ b/profiles/kde.py
@@ -2,6 +2,8 @@
import archinstall, os
+is_top_level_profile = False
+
# TODO: Remove hard dependency of bash (due to .bash_profile)
def _prep_function(*args, **kwargs):
@@ -20,6 +22,12 @@ def _prep_function(*args, **kwargs):
else:
print('Deprecated (??): xorg profile has no _prep_function() anymore')
+def _post_install(*args, **kwargs):
+ if "nvidia" in _gfx_driver_packages:
+ print("Plasma Wayland has known compatibility issues with the proprietary Nvidia driver")
+ print("After booting, you can choose between Wayland and Xorg using the drop-down menu")
+ return True
+
# Ensures that this code only gets executed if executed
# through importlib.util.spec_from_file_location("kde", "/somewhere/kde.py")
# or through conventional import kde
diff --git a/profiles/minimal.py b/profiles/minimal.py
new file mode 100644
index 00000000..79821a89
--- /dev/null
+++ b/profiles/minimal.py
@@ -0,0 +1,20 @@
+# Used to do a minimal install
+
+import archinstall, os
+
+is_top_level_profile = True
+
+def _prep_function(*args, **kwargs):
+ """
+ Magic function called by the importing installer
+ before continuing any further. For minimal install,
+ we don't need to do anything special here, but it
+ needs to exist and return True.
+ """
+ return True # Do nothing and just return True
+
+if __name__ == 'minimal':
+ """
+ This "profile" is a meta-profile.
+ It is used for a custom minimal installation, without any desktop-specific packages.
+ """
diff --git a/profiles/xfce4.py b/profiles/xfce4.py
new file mode 100644
index 00000000..c8637eda
--- /dev/null
+++ b/profiles/xfce4.py
@@ -0,0 +1,35 @@
+
+# A desktop environment using "Xfce4"
+
+is_top_level_profile = False
+
+import archinstall
+
+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.
+ """
+
+ # XFCE requires a functional 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("xfce4", "/somewhere/xfce4.py")
+# or through conventional import xfce4
+if __name__ == 'xfce4':
+ # Install dependency profiles
+ installation.install_profile('xorg')
+
+ # Install the application xfce4 from the template under /applications/
+ xfce = archinstall.Application(installation, 'xfce4')
+ xfce.install()
+
+ installation.enable_service('lightdm') # Light Display Manager
diff --git a/profiles/xorg.py b/profiles/xorg.py
index 1282b8a5..e905d533 100644
--- a/profiles/xorg.py
+++ b/profiles/xorg.py
@@ -2,6 +2,8 @@
import archinstall, os
+is_top_level_profile = True
+
AVAILABLE_DRIVERS = {
# Sub-dicts are layer-2 options to be selected
# and lists are a list of packages to be installed