Skip to content
 
 

Repository files navigation

FreeDisplay (fork)

A fork of huberdf/FreeDisplay — a free & open-source alternative to BetterDisplay.

All credit for the original app goes to @huberdf. This fork adds three things and is otherwise unchanged.

Download · Original project · Report an issue


What this fork adds

1. Fixes the empty menu bar panel on macOS 26

On macOS 26 the menu bar icon appears but the panel opens completely blank, which makes the app unusable. MenuBarExtra(.window) proposes an indefinite size and the panel's unconstrained ScrollView collapses to zero height. Giving it a definite height fixes it.

2. Sidecar portrait mode

Use an iPad as a vertical display over Sidecar.

Sidecar itself cannot be rotated — CGDisplayRotation is read-only, macOS shows no Rotation control for Sidecar displays, and physically turning the iPad just makes iPadOS crop the picture. So this doesn't rotate the Sidecar display. It creates a portrait virtual display, captures it with ScreenCaptureKit, rotates the frames, and streams them full-screen to the iPad — which stays locked in landscape. Same approach as BetterDisplay's rotated Sidecar.

Requires Screen Recording permission. The app lists the prerequisites in the UI.

3. English UI + a language switcher

The original is Chinese-only. This fork moves every string into a String Catalog with English and 简体中文, and adds a language picker in Settings that switches live, without relaunching. It follows your system language by default.


Status

I am not actively developing this fork. It exists because I wanted a vertical iPad display and a menu that wasn't blank. It works for me; I'm sharing it in case it's useful to you.

The menu bar fix and Sidecar portrait mode have been submitted upstream as PR #9 (in Chinese, matching the original project's language). The localization is not part of that PR and lives only here — someone else appeared to be working on localization upstream.

If the upstream project picks up these changes, use it instead of this fork.

Issues and PRs here may go unanswered. Feel free to fork this fork.


Installation

Option 1: Download the DMG

  1. Download FreeDisplay.dmg from Releases

  2. Open it and drag FreeDisplay.app to Applications

  3. First launch: right-click the app → Open, then confirm.

    The build is not signed with an Apple Developer ID and is not notarized, so Gatekeeper blocks a normal double-click. Right-click → Open is the one-time override. If macOS says the app "is damaged", clear the quarantine flag:

    xattr -dr com.apple.quarantine /Applications/FreeDisplay.app

Option 2: Build from source

brew install xcodegen
git clone https://github.com/kimberlake/FreeDisplay.git
cd FreeDisplay
xcodegen generate
xcodebuild -scheme FreeDisplay -configuration Release build

The project builds with ad-hoc signing by default, so it needs no Apple Developer account. To sign with your own certificate instead, create Local.xcconfig in the repo root (it's gitignored):

CODE_SIGN_IDENTITY = Apple Development
CODE_SIGNING_REQUIRED = YES
DEVELOPMENT_TEAM = YOURTEAMID

Worth knowing: macOS ties permissions to the code signature, and an ad-hoc signature changes on every build — so Screen Recording may need re-approving after each rebuild. A real certificate keeps it stable.


Permissions

Permission Why
Accessibility Required for brightness key interception on external displays
Screen Recording Required for Sidecar portrait mode (captures the virtual display to stream it)

No internet connection required (except optional update checks via GitHub Releases API).


Contributing

Please contribute to the original project rather than this fork — this one is not actively maintained.

The codebase uses:

  • xcodegen for project generation (edit project.yml, not .xcodeproj)
  • Swift 6 with SWIFT_STRICT_CONCURRENCY: minimal
  • MVVM architecture (View → ViewModel → Service)

License

MIT License — see LICENSE for details.


Acknowledgments

About

Fork of huberdf/FreeDisplay — adds portrait Sidecar (vertical iPad), English UI, and fixes the blank menu bar panel on macOS 26

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages