From b0b7983af2b0cabce282e576ed3a20010e20fb2c Mon Sep 17 00:00:00 2001 From: Softer Date: Thu, 7 May 2026 03:20:09 +0300 Subject: [PATCH] Fix bspwm black screen: add provision() delegation and default configs (#4518) * Fix bspwm black screen: add provision() delegation and default configs * Move TYPE_CHECKING imports to top level in bspwm profile --- archinstall/default_profiles/desktop.py | 6 ++++++ archinstall/default_profiles/desktops/bspwm.py | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/archinstall/default_profiles/desktop.py b/archinstall/default_profiles/desktop.py index 19681bc7..daf70831 100644 --- a/archinstall/default_profiles/desktop.py +++ b/archinstall/default_profiles/desktop.py @@ -9,6 +9,7 @@ from archinstall.tui.result import ResultType if TYPE_CHECKING: from archinstall.lib.installer import Installer + from archinstall.lib.models.users import User class DesktopProfile(Profile): @@ -88,6 +89,11 @@ class DesktopProfile(Profile): for profile in self.current_selection: profile.post_install(install_session) + @override + def provision(self, install_session: Installer, users: list[User]) -> None: + for profile in self.current_selection: + profile.provision(install_session, users) + @override def install(self, install_session: Installer) -> None: # Install common packages for all desktop environments diff --git a/archinstall/default_profiles/desktops/bspwm.py b/archinstall/default_profiles/desktops/bspwm.py index f8c2a7b2..8886298a 100644 --- a/archinstall/default_profiles/desktops/bspwm.py +++ b/archinstall/default_profiles/desktops/bspwm.py @@ -1,6 +1,8 @@ from typing import override from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType +from archinstall.lib.installer import Installer +from archinstall.lib.models.users import User class BspwmProfile(Profile): @@ -27,3 +29,11 @@ class BspwmProfile(Profile): @override def default_greeter_type(self) -> GreeterType: return GreeterType.Lightdm + + @override + def provision(self, install_session: Installer, users: list[User]) -> None: + for user in users: + install_session.arch_chroot('mkdir -p ~/.config/bspwm ~/.config/sxhkd', run_as=user.username) + install_session.arch_chroot('cp /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm/', run_as=user.username) + install_session.arch_chroot('cp /usr/share/doc/bspwm/examples/sxhkdrc ~/.config/sxhkd/', run_as=user.username) + install_session.arch_chroot('chmod +x ~/.config/bspwm/bspwmrc', run_as=user.username)