Skip to content

Linux desktop: add opt-in frameless and transparent windows #1916

Description

@wy3z

The work

Update @bb/desktop to support two independent Linux-only startup flags:

  • --no-window-frame uses the existing implementation from PR #1785 unchanged.
  • --transparent-window sets Electron's transparent: true and backgroundColor: "#00000000" options.

Changes cover:

  • apps/desktop/src/desktop-window-factory.ts
  • Linux window option parsing under apps/desktop/src/
  • Desktop tests under apps/desktop/test/
  • Linux usage documentation in apps/desktop/README.md

Working implementation: wy3z/bb:agent/linux-window-options

Why now

On Hyprland, the compositor already supplies window controls, making Electron's native title bar redundant. PR #1785 implements the frameless option but has no corresponding issue.

Hyprland can also blur content behind translucent windows. bb supports custom CSS themes, but its opaque Electron window prevents those themes from using compositor transparency and blur.

This completes the Linux window-customization workflow while preserving #1785's implementation.

Acceptance criteria

  • PR Add optional frameless Linux desktop windows #1785's --no-window-frame implementation remains unchanged.
  • Both flags are Linux-only and opt-in.
  • Existing window behavior is unchanged without either flag.
  • --transparent-window enables a transparent Electron background.
  • Both flags work independently and together.
  • macOS and Windows ignore both flags.
  • Argument handling and BrowserWindow options have automated coverage.
  • Linux usage and Electron transparency limitations are documented.
  • Desktop tests, typecheck, formatting, and git diff --check pass.

AGENT GENERATED: by GPT-5.6

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    desktopDesktop app, install, update, packaging

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions