Skip to content

Fix bspwm black screen: add provision() delegation and default configs#4518

Open
Softer wants to merge 1 commit intoarchlinux:masterfrom
Softer:fix-bspwm-black-screen
Open

Fix bspwm black screen: add provision() delegation and default configs#4518
Softer wants to merge 1 commit intoarchlinux:masterfrom
Softer:fix-bspwm-black-screen

Conversation

@Softer
Copy link
Copy Markdown
Contributor

@Softer Softer commented May 3, 2026

bspwm profile installs packages but does not provision configuration files. After login via lightdm the user sees a black screen with no keybindings because ~/.config/bspwm/bspwmrc and ~/.config/sxhkd/sxhkdrc do not exist.

Two fixes:

  • DesktopProfile did not override provision() to delegate to sub-profiles (unlike ServerProfile), so BspwmProfile.provision() was never called. Added the missing delegation.
  • BspwmProfile.provision() now copies example configs from /usr/share/doc/bspwm/examples/ to each user's ~/.config/ and makes bspwmrc executable. This matches what the Arch Wiki recommends for a minimal working setup.

@Softer Softer requested a review from Torxed as a code owner May 3, 2026 14:15

from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType

if TYPE_CHECKING:
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are they behind a type check?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I understand - python 3.14 evaluates annotations lazily (PEP 649), so Installer and User are never resolved at runtime - they're only used by type checkers. TYPE_CHECKING avoids importing heavy modules (Installer pulls in a lot) and sidesteps potential circular imports.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there actual circular deps? If not we shouls define these as regular imports

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants