index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
author | Anton Hvornum <anton@hvornum.se> | 2021-01-22 13:54:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-22 13:54:11 +0100 |
commit | 10131537448e96237a48a399370890331c7b0319 (patch) | |
tree | 67fb7464320a532974f17ed4e3457ecabcb14a41 | |
parent | 89bb819af298adee6abba85aecb2d9a74f1c3248 (diff) | |
parent | 5b7af12a9190bb06a4f12308f7ba1cc4c1101b6b (diff) |
-rw-r--r-- | archinstall/lib/disk.py | 4 | ||||
-rw-r--r-- | archinstall/lib/installer.py | 5 | ||||
-rw-r--r-- | profiles/applications/kde-wayland.py | 7 | ||||
-rw-r--r-- | profiles/kde-wayland.py | 34 |
diff --git a/archinstall/lib/disk.py b/archinstall/lib/disk.py index 80dc4735..e9fa12a0 100644 --- a/archinstall/lib/disk.py +++ b/archinstall/lib/disk.py @@ -134,6 +134,10 @@ class Partition(): if (handle := sys_command(f'/usr/bin/mkfs.ext4 -F {self.path}')).exit_code != 0: raise DiskError(f'Could not format {self.path} with {filesystem} because: {b"".join(handle)}') self.filesystem = 'ext4' + elif filesystem == 'xfs': + if (handle:= sys_command(f'/usr/bin/mkfs.xfs -f {self.path}')).exit_code != 0: + raise DiskError(f'Could not format {self.path} with {filesystem} because: {b"".join(handle)}') + self.filesystem = 'xfs' else: raise DiskError(f'Fileformat {filesystem} is not yet implemented.') return True diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index e4219323..8c22b51f 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -190,7 +190,8 @@ class Installer(): if self.partition.filesystem == 'btrfs': #if self.partition.encrypted: self.base_packages.append('btrfs-progs') - + if self.partition.filesystem == 'xfs': + self.base_packages.append('xfsprogs') self.pacstrap(self.base_packages) #self.genfstab() @@ -310,4 +311,4 @@ class Installer(): with open(f'{self.mountpoint}/etc/vconsole.conf', 'w') as vconsole: vconsole.write(f'KEYMAP={language}\n') vconsole.write(f'FONT=lat9w-16\n') - return True
\ No newline at end of file + return True diff --git a/profiles/applications/kde-wayland.py b/profiles/applications/kde-wayland.py new file mode 100644 index 00000000..6a9be294 --- /dev/null +++ b/profiles/applications/kde-wayland.py @@ -0,0 +1,7 @@ +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/kde-wayland.py b/profiles/kde-wayland.py new file mode 100644 index 00000000..31226952 --- /dev/null +++ b/profiles/kde-wayland.py @@ -0,0 +1,34 @@ +# A desktop environement using "KDE". +import archinstall, os + +# TODO: Remove hard dependency of bash (due to .bash_profile) + +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. + """ + + # KDE 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("kde", "/somewhere/kde.py") +# or through conventional import kde +if __name__ == 'kde-wayland': + # 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') |