プログラミング
MacのウィンドウをiPhoneやiPadで表示
Any window from your Mac, on your iPhone and iPad (github.com)
要約
Sillは、Macのウィンドウやデスクトップ全体をiPhoneやiPadに表示できるアプリケーションです。タッチ操作、トラックパッド、キーボード、Apple Pencilなどで操作でき、ローカルネットワーク、USBケーブル、Direct Wireless Connection、またはVPN経由で接続可能です。アカウントやサーバーを介さず、プライバシーに配慮した設計となっています。
全文翻訳
Sill
MacのウィンドウをiPhoneやiPadで表示。
Sillは、Macのウィンドウ、またはデスクトップ全体をiPhoneやiPadに表示します。そこではタッチ、トラックパッド、キーボード、またはApple Pencilを使用して操作できます。
Mac用のSillはウィンドウをキャプチャし、HEVCビデオとしてエンコードして、デバイス上のSillアプリに送信します。あなたのタップ、クリック、スクロール、キー入力はMacに戻ります。
Macとデバイスは、同じネットワーク上、USBケーブル経由、ネットワークを共有しない場合のDirect Wireless Connection、またはTailscaleのような独自のVPNを介したRemote Accessで接続します。
間にアカウントやサーバーはありません。
getsill.app · Mac用ダウンロード · サポート · プライバシー · 利用規約
Sill for Macはgetsill.appから無料でダウンロードでき、署名済みです。Homebrewを使用する場合は、brew install --cask saffsanity/sill/sill でSillの独自のタップから同じダウンロードをインストールできます。
Sill for iPhoneおよびiPadはApp Storeで無料提供されており、ソースからビルドすることも可能です(下記参照)。
スクリーンショット
これらはApp StoreのiPad用スクリーンショットです。iPhoneおよびiPhone Duoでは、Sillは独自のレイアウトを備えています。
要件
macOS 14以降を実行するApple silicon搭載のMac。
iOS 17以降またはiPadOS 17以降を実行するiPhoneまたはiPad。
Macでは、Sillはウィンドウを表示するために画面収録、クリック、スクロール、タイピング、および表示するウィンドウの移動とサイズ変更のためにアクセシビリティの許可を求めます。
macOS 15以降では、ローカルネットワークの許可も必要です。
iPhoneまたはiPadでは、SillはMacを検出するためにローカルネットワーク、およびMacのペアリングコードをスキャンするためのカメラの許可を求めます(コードを直接入力することもできます)。
Macとデバイスが同じネットワーク上にあるか、USBケーブルで接続されているか、またはDirect Wireless Connectionがオンで近くにある場合。
外出先では、Tailscaleのような独自のVPNを介したRemote Accessを使用します。
仕組み
Sill for Macはメニューバーに常駐します。
デバイスがウィンドウまたはデスクトップ全体を選択すると、SillはScreenCaptureKitを使用してそれをキャプチャし、Macのハードウェアビデオエンコーダー(またはそれがビジーの場合はソフトウェア)でVideoToolboxを使用してHEVCにエンコードします。デバイスが接続されていないときは何もキャプチャしません。
画像は暗号化された接続(TLS 1.3)を介してSillアプリに直接送信され、そこでデコードされて表示されます。
エンコーダーまたはリンクが遅延した場合、Sillはキューイングするのではなくフレームをドロップするため、画像は最新の状態に保たれます。
あなたの入力も同じように戻ります:タップとクリック、モーメンタム付きスクロール、オンスクリーン・トラックパッド、キー入力とタイピングされたテキスト、そしてApple Pencilをポインターとして使用。
Sill for Macはそれらをマウスおよびキーボードイベントに変換します。これにはアクセシビリティが必要です。
デバイスに接続されたキーボードは、画像が表示されるとすぐにMacでタイピングします。Escキーも含まれます。トラックパッドまたはマウスは、ポインターの下のウィンドウをスクロールします。
3本指のスワイプとピンチはMacのトラックパッドと同じです:Mission Control、App Exposé、Spaces、Apps、Show Desktopは、Macがそれらに持つキーボードショートカットを通じて機能します。
iPhoneでは、縦向きにすると、画像が上に表示され、ボタン、キー、トラックパッドが下に表示されます。
設定パネルの「大きな画像」では、ウィンドウの画像にウィンドウサムネイルのスペースが与えられ、キーボードが表示される場所まで縮小されます。デスクトップは通常のレイアウトを維持します。
テキストサイズをAaで設定するか、仮想ディスプレイをオンにすると、ウィンドウはその形状を維持しますが、Macはそれをより高い画像に合わせて表示します。
Share Clipboardが両方のアプリでオンになっている間、クリップボードは双方向に機能します。Macでコピーしたテキストはデバイスに貼り付け可能になり、Sillの「貼り付け」はデバイスでコピーしたものをMacのクリップボードに送信し、そこで⌘Vを押すことができます。
Sillはデバイスのクリップボードを単独で読み取ることはなく、パスワードマネージャーが「隠されている」とマークしたものはMacに残ります。
iPhone Duoでは、Sillはヒンジに従います:平らに開くとMacが内側ディスプレイ全体を占め、半分開くと画像が折り目の上に表示され、トラックパッドとキーが下に表示されます。閉じると、Sillはカバーディスプレイで動作します。触れるものは何も折り目にありません。
使用しているアプリのメニューもデバイスに届きます:iPadOS 26以降のiPad独自のメニューバー、またはSillのバーにある「メニュー」ボタンの後ろ。
Sill for Macは、アプリを開いたときに各メニューを読み取り、アクセシビリティを通じて選択した項目を選びます。
Macでマウスが動くと、デバイスはポインターの場所を表示します。
近くでは、デバイスはローカルネットワーク上のBonjourでMacを見つけます。
USBケーブル経由では、Macは「Wired」として表示され、接続はそのケーブルを使用します。
共有ネットワークがない場合、Direct Wireless Connection(デフォルトではオフ)はAirDropと同じ方法でピアツーピアWi-Fi経由で接続します。
ペアリング:各iPhoneまたはiPadをMacと一度ペアリングします。デバイスでMacをタップすると、Macがコードを表示します。それをスキャンするか、12桁のコードを入力します。USBケーブル経由では、デバイスは自動的にペアリングされます。
その後、各エンドはそのキーを認識し、近くまたは遠隔でのすべての接続はそのキーに固定されます。
MacのSill設定の「デバイス」にペアリングしたデバイスが表示され、そこで削除できます。
外出先では、Remote Access(デフォルトではオフ)により、ペアリングしたデバイスが独自のVPNまたはルーターのポートフォワーディングを介してMacにアクセスできます。デバイスは、Remote Accessがオンの状態で自宅に接続するたびに、その方法を学習します。
外出先のデバイスは、標準解像度で「低」品質の独自の品質を持ちます。そこまたはSillの設定で別の品質を選択するまで、遅い接続が自宅の品質で始まることはありません。デバイスが自宅に接続すると、自宅の品質が戻ります。
デバイスが自宅に戻り、ネットワークにMacが表示されると、セッションは自動的にネットワークに移行します。
リンクが追いつけない場合、Sill for Macはフレームを保持していることを検出し、デバイスに通知します。デバイスは画像上でそれを伝え、設定でリンクが処理できる品質を提供します。
テキストサイズ:デバイス上の「Aa」は、Macでストリーミングしているウィンドウのテキストサイズを変更します。これにより、テキストが選択したサイズで表示され、ストリーミング中はそのサイズを維持します。
Sillが表示を停止すると、ウィンドウは元のサイズと場所に元に戻ります。別のウィンドウまたはデスクトップを選択した場合、最後のデバイスが切断された場合、またはSillを終了した場合です。
その間にMacで移動した場合、新しい場所に保持されます。
仮想ディスプレイ(デフォルトではオフ)は、ストリーミングしているウィンドウをMac上の独自のディスプレイに移動させるため、他のウィンドウがそれを覆っていても更新され続けます。
これはプライベートなmacOS APIを使用しており、Sill for MacがMac App Storeではなくウェブサイトから提供される理由の一つです。
知っておくと良いこと:Sillは一度に1つのウィンドウ、またはデスクトップ全体を表示し、Macからの音声は再生しません。
クリップボードはテキストのみを一度に最大256 KBまで、両方のアプリにクリップボード機能がある場合にのみ転送します。
Macはスリープ状態ではなく、Sillが開いている必要があります。SillはMacをスリープ解除できない場合があります。
再起動後、Sillはログイン時にのみ起動します(「ログイン時に起動」がオンの場合)。
ペアリングしたiPhoneとiPadのみが接続できます。「設定」›「デバイス」で「ペアリングを要求」をオフにしない限り、ネットワーク上のどのデバイスでも接続できます。ただし、接続は引き続き暗号化されます。
自宅でのペアリングはSill for Mac 0.4.0およびSill for iPhone and iPad 0.5 (2)で導入され、互換性が必要です。古いSill for MacはiPhoneおよびiPadアプリで「Update Sill」と表示され、古いiPhoneおよびiPadアプリは自宅でSill for Mac 0.4.0以降に接続できません。
0.5.1以降、両方のアプリはリリースごとに単一のバージョン番号を共有します。
Sill for Mac 0.3.1以前では、ローカルネットワーク、ケーブル、Direct Wireless Connectionでの接続は暗号化されておらず、そこにアクセスできるものはすべてペアリングなしで接続できます。アップデートしてください。
ヒント
Sillは無料で、広告、トラッキング、サブスクリプションはありません。もし役に立つと思ったら、GitHub Sponsors経由でのチップは開発者アカウントの支払いに役立ちます。チップは何も解除しません。すべての機能は無料です。
ソースからのビルド
Xcode(SillはXcode 27でビルドされます。iPhoneおよびiPadアプリはiPhone Duoのヒンジと折り目のためにXcode 27.1以降が必要です)を搭載したMacが必要です。アクティブな開発者ディレクトリとして選択され、ライセンスが承認されている必要があります。
リポジトリのフォルダからSill for Mac:
Scripts/make-app.sh --install --open
これによりSwiftPMでSill.appがビルドされ、Apple Develで署名されます。