Zum Inhalt springen

Headless Mac: kleinere Auflösung in Screens mit BetterDisplay

Wenn am Mac Studio kein Monitor hängt, fehlt die Auflösungsauswahl. Ein nicht-HiDPI virtueller Bildschirm löst das – Screens übernimmt ihn live.

1280 × 720 · ohne Neuverbinden · 7 Minuten
Oliver Nagel · zuletzt geprüft am

macOS-Anzeigeeinstellungen eines Headless Mac mit ausschließlich 1920 × 1080 als Standardauflösung

Ohne physischen Monitor fehlt in macOS die Auswahl einer kleineren Auflösung.

  1. BetterDisplay installieren.
  2. Einen nicht-HiDPI Bildschirm mit 1280 × 720 erstellen.
  3. Mit Screens verbinden – sofort verfügbare Auflösung.
Terminal-Fenster
brew install --cask betterdisplay
BD="/Applications/BetterDisplay.app/Contents/MacOS/BetterDisplay"
"$BD" create -type=VirtualScreen -virtualScreenName='Headless 1280x720' -useResolutionList=on -resolutionList=1280x720 -virtualScreenHiDPI=off
"$BD" set -name='Headless 1280x720' -connected=on
"$BD" set -name='Headless 1280x720' -main=on

Diese Anleitung ist für einen Apple-Silicon-Mac ohne angeschlossenen Monitor gedacht. Screen Sharing oder Remote Management muss bereits funktionieren; für den sicheren Rückweg ist ein zusätzlicher SSH-Zugang sinnvoll.

  • Headless Mac mit aktiver grafischer Anmeldung
  • Screens 5 oder ein anderer macOS-Remote-Desktop-Client
  • Homebrew

Verifiziert mit macOS 26.5.2, BetterDisplay 4.3.5 und Screens 5.

Die Anwendung wird über Homebrew installiert und danach einmal aus dem Programme-Ordner gestartet.

Terminal-Fenster
brew install --cask betterdisplay
Terminal-Fenster
open /Applications/BetterDisplay.app

Die entscheidende Einstellung ist virtualScreenHiDPI=off. Dadurch ist nicht nur die logische Arbeitsfläche 1280 × 720 groß, sondern auch der tatsächlich übertragene Framebuffer.

Terminal-Fenster
BD="/Applications/BetterDisplay.app/Contents/MacOS/BetterDisplay"
"$BD" create \
-type=VirtualScreen \
-virtualScreenName='Headless 1280x720' \
-useResolutionList=on \
-resolutionList=1280x720 \
-virtualScreenHiDPI=off
"$BD" set -name='Headless 1280x720' -connected=on
"$BD" set -name='Headless 1280x720' -main=on

Zuerst wird geprüft, ob BetterDisplay die gewünschte Auflösung, HiDPI-Einstellung und Hauptdisplay-Rolle meldet.

Terminal-Fenster
"$BD" get -name='Headless 1280x720' -resolution
"$BD" get -name='Headless 1280x720' -hiDPI
"$BD" get -name='Headless 1280x720' -main

Danach bestätigt CoreGraphics die tatsächlich aktive Pixel- und Logikauflösung:

Terminal-Fenster
swift -e '
import CoreGraphics
var count: UInt32 = 0
CGGetActiveDisplayList(0, nil, &count)
var ids = [CGDirectDisplayID](repeating: 0, count: Int(count))
CGGetActiveDisplayList(count, &ids, &count)
for id in ids {
let bounds = CGDisplayBounds(id)
print("pixels=\(CGDisplayPixelsWide(id))x\(CGDisplayPixelsHigh(id)) logical=\(Int(bounds.width))x\(Int(bounds.height)) main=\(CGDisplayIsMain(id) != 0)")
}'

Das erwartete Ergebnis hat diese Form:

Screens übernahm den neuen Framebuffer im getesteten Setup live. Ein Neuverbinden war nicht notwendig.

Die Definition existiert, ist aber nicht verbunden. Führe den Befehl mit -connected=on erneut aus.

Prüfe, ob „Headless 1280x720“ verbunden und als Hauptdisplay gesetzt ist. Falls Screens eine Anzeigeauswahl anbietet, wähle dort den neuen virtuellen Bildschirm.

Die Oberfläche ist 1280 × 720, überträgt aber mehr Pixel

Abschnitt betitelt „Die Oberfläche ist 1280 × 720, überträgt aber mehr Pixel“

Dann ist wahrscheinlich HiDPI aktiv. Prüfe die gespeicherte VirtualScreen-Definition und setze virtualScreenHiDPI=off.

Zum Rückbau wird der virtuelle Bildschirm getrennt und seine gespeicherte Definition entfernt.

Terminal-Fenster
"$BD" set -name='Headless 1280x720' -connected=off
"$BD" discard -type=VirtualScreen -name='Headless 1280x720'

Danach verwendet der Mac wieder sein normales Headless-Display-Verhalten.