From 860dc1449c8b285fb871da82e3f4ad3a73fe194a Mon Sep 17 00:00:00 2001 From: edl2 <95947898+edl2@users.noreply.github.com> Date: Wed, 2 Feb 2022 02:42:13 -0500 Subject: Added a qtile profile (#924) * Added a qtile profile * Removed unneeded packages * Removed xorg requirement * Removed blank lines * applied patch to qtile profile * Revert "Removed xorg requirement" This reverts commit 34e87b13accfba16cd8a145e513f225de7fd86fc. * Fixed flake8 * Added qtile to the desktop selection/options. Co-authored-by: Anton Hvornum --- profiles/desktop.py | 1 + profiles/qtile.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 profiles/qtile.py diff --git a/profiles/desktop.py b/profiles/desktop.py index 389544df..da7f97e5 100644 --- a/profiles/desktop.py +++ b/profiles/desktop.py @@ -33,6 +33,7 @@ __supported__ = [ 'mate', 'deepin', 'enlightenment', + 'qtile' ] diff --git a/profiles/qtile.py b/profiles/qtile.py new file mode 100644 index 00000000..d25e9e3c --- /dev/null +++ b/profiles/qtile.py @@ -0,0 +1,42 @@ +# A desktop environment using "qtile" window manager with common packages. + +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__ = [ + 'qtile', + 'alacritty', + 'lightdm-gtk-greeter', + 'lightdm', + 'dmenu' +] + +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. + """ + + # qtile 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__ == 'qtile': + # Install dependency profiles + archinstall.storage['installation_session'].install_profile('xorg') + + # Install packages for qtile + archinstall.storage['installation_session'].add_additional_packages(__packages__) + + # Auto start lightdm for all users + archinstall.storage['installation_session'].enable_service('lightdm') # Light Display Manager -- cgit v1.2.3-54-g00ecf