GridJapan fork / macOS menu bar app

存在しないモニタを、
macOSに生やす

物理モニタなしでHiDPI仮想ディスプレイを作成できる、無料のmacOSメニューバーアプリです。実モニタの明るさ・コントラストもDDCで制御できます。

macOS 14+ Swift 6 ・ SwiftUI 無料・ソース公開
物理3枚+仮想3枚。ぜんぶ本物あつかい
物理3枚+仮想3枚。ぜんぶ本物あつかい

gjPiPWindow に、完全対応

FreeDisplay(GridJapan fork)は gjPiPWindow に完全対応しています。3枚の仮想ディスプレイを常時使用するために整備した結果、公式版の4つのバグを修正し、解像度記憶・プリセット・個体識別・個別終了の4系統の機能を追加しました。

01

仮想ディスプレイが、システム設定に並ぶ

real to macOS

FreeDisplay が作る仮想ディスプレイは、macOS からは本物のディスプレイです。システム設定に物理モニタと同列に並び、解像度もリフレッシュレート(75Hz)も選べます。

「ディスプレイを配置」に6枚
「ディスプレイを配置」に6枚
解像度も75Hzも選べる
解像度も75Hzも選べる
02

機能

HiDPI仮想ディスプレイ

物理モニタなしでディスプレイを作成できます。複数枚を同時に持てます。

DDC 明るさ・コントラスト

外部モニタのハードウェア設定を IOKit I2C で直接制御します。

輝度キー + HUD

キーボードの明るさキーを外部モニタでも効かせ、HUD を表示します。

自動明るさ

時刻ベースで明るさを自動調整できます。

配置と主ディスプレイ

配置エディタと主ディスプレイの切り替えを備えます。

カラープロファイル

ディスプレイごとに ICC プロファイルを切り替えられます。

画質調整

ガンマ・コントラスト・色温度・色反転をソフトウェアで調整できます。

プリセット

ディスプレイ構成を保存して呼び出せます。

03

3枚並べるために、直した・足した

for the gjPiP rig

この fork は、仮想ディスプレイを3枚常時並べて gjPiP で使うために整備しました。その過程で踏んだ公式版のバグ4件と、足りなかった機能4つです。詳細は README にあります。

FIXED

DDCで明るさを変えると即クラッシュ

@MainActor のクロージャが DDC キュー上で実行され、Swift の隔離チェックに落ちます。明るさキーを1回押すだけで再現します。

FIXED

メニューに「終了」しか出ない

ScrollView に理想の高さが無く、ウィンドウ型 MenuBarExtra が理想の高さでサイズを決めるため、中身が全部消えます。

FIXED

外部モニタを主ディスプレイにすると0.5秒で戻る

その変更自体で自動配置が発火し、ディスプレイを原点から引き剥がしてしまうためです。

FIXED

同じ解像度の仮想ディスプレイは3台目が作れない

重複ガードが ID ではなく縦横サイズで判定しているためです。

ADDED

選んだ解像度を記憶して保持

システム設定で選んだ解像度を記憶し、再起動後も保持します。公式版では、しばらくすると勝手に元へ戻ります。

ADDED

解像度プリセットを追加

1920×1200 と 2048×1280 を、作成時の選択肢に加えました。

ADDED

仮想ディスプレイの個体識別

名前と serial を1台ずつ分けました。macOS が3枚の配置を正しく記憶・復元できるようになります。

ADDED

1台ずつ閉じられる

従来は一括で閉じるしかありませんでした。個別に閉じられます。

04

見えない画面は、gjPiPで見る

works together

仮想ディスプレイには物理モニタがありません。中を見る・操作するのは、相棒アプリ gjPiP の仕事です。任意のディスプレイをライブPiPで表示し、PiP越しにマウスで操作できます。

PiP越しに仮想ディスプレイを操作
PiP越しに仮想ディスプレイを操作
05

インストール

ソースからビルドします。リポジトリに Xcode プロジェクトを同梱しているので、Xcode が入っていればそのまま作れます。

# クローンしてビルド(build/FreeDisplay.dmg ができます)
git clone https://github.com/GridJapan/FreeDisplay.git
cd FreeDisplay
./build.sh

# DMG を開いて FreeDisplay.app を Applications へ。
# 未署名のため、初回だけ右クリック →「開く」で起動します。
権限用途
アクセシビリティ外部モニタ使用時に、キーボードの明るさキーを横取りするために使います。

ネットワーク接続は使いません(GitHub Releases への任意のアップデート確認を除く)。