這個星期突發奇想整了個新玩具,M1 的 Mac Mini。本來週二下單了準備放到公司用,結果週六才送到。。。只好先在家裡把環境給配了。由於家裡沒有顯示器,就一直接在家裡電視上,看得我頭昏眼花。正好想起新版本的 iOS 似乎加入了一個隨航功能,可以 iPad 變成 Mac 的第二螢幕,於是久違地打算折騰一下。

首先簡單介紹一下我的需求:固定某個房間裡將 iPad 作為 Mac Mini 的主顯示器使用,失去連線的時候要能夠快速恢復,整個過程儘量自動化。

我先看了兩篇文章。首先是 Apple 官方對隨航功能的說明。

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

很簡單,不錯。但是這也意味著,我不能直接在 iPad 上請求,讓 Mac Mini 把隨航開啟給我投屏過來(應該是有些安全性的顧慮吧)。那麼接下來就要找找在看不到螢幕的情況下啟動隨航的方案了。於是我又參考了一下:

簡單來說就是跑一個 Apple Script 的自動化指令碼,然後透過模擬滑鼠事件進入顯示器設定,把隨航開啟。這基本上是現網上所有方案的 baseline 了。上面文章裡選擇在開機的時候自動執行指令碼,但這樣的話,每次連線都需要關機開機。像我這種不著家又不愛關機的人(),這種方案肯定不適合我。

在B站上也看到了很多別的方案,比如說把

指令碼檔案

拷一份放在桌面左下角,這樣滑鼠移到角落點點開啟執行又連上了。但是要是有個視窗擋住那個位置不就又出問題了,而且要是點到不該點的東西怎麼辦!

於是折騰一下午之後,想到了一個超棒的方案。在

捷徑(Shortcuts)

裡設計一個流程,然後只要跟 Siri 說

"Mirror to my iPad"

,Siri 就會調指令碼把隨航開啟。這樣不但不用把機器關掉,不用擔心點錯東西,還可以自己控制開關隨航的時機;有種

吟唱施法

的感覺(重點)!

說了這麼多,現在介紹一下製作

卷軸

的流程。

撰寫啟用隨航的指令碼

首先開啟

指令碼編輯器(Script Editor)

,建立一個新指令碼,裡面寫入以下內容:

tell

application

“System Events”

tell

process

“System Preferences”

activate

delay

0。1

tell

toolbar

1

of

window

1

click

button

1

of

group

1

of

group

2

end

tell

delay

2。0

click

button

“Displays”

of

scroll

area

1

of

window

1

delay

2。0

tell

window

“Displays”

click

pop

up

button

“Add Display”

delay

0。5

tell

pop

up

button

“Add Display”

delay

0。5

click

menu

item

“這裡填上iPad的名字”

of

menu

1

end

tell

end

tell

end

tell

end

tell

指令碼主要的功能就是模擬

滑鼠

點選,在系統設定裡把隨航開啟。開啟

系統偏好設定

應用程式之後,點右上角的

播放(▶)

按鈕看看指令碼能不能正常工作。不出意外的話,你的 iPad 應該已經在顯示 Mac 上的內容了。接下來我們只需要讓 Siri 呼叫這個指令碼就 ok。

注意,讓指令碼模擬滑鼠事件是一個有安全風險,且許可權比較高的操作。系統會要求你在

系統偏好設定-安全性和隱私(Security & Privacy)

可訪問性(Accessibility)

選項卡下勾選

指令碼編輯器

Siri

捷徑

以授予這些

應用程式

對電腦的控制權。

siriactionsd

也要鉤,怎麼弄一會再說。

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

不過說起來,新到手的機器預裝的是 macOS Monterey。其他 macOS 版本,隨航選單的位置好像不太一樣,這個指令碼不一定能用。

啟用 Siri

首先注意一點,電腦上的 Siri 和 iPhone/iPad 上的不一樣,預設是不開啟

全域性監聽

的。也就是說,如果要啟動

"Hey, Siri"

的喚醒指令,你需要在

系統偏好設定-可訪問性(Accessibility)

中的

語音控制(Voice Control)

標籤頁下開啟

全域性語音監聽

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

另外需要注意的是,這個

語音控制

功能非常強大,它包含有

語音輸入

的功能。也就是說它可能會以外把你罵的髒話打在公屏上;所以最好在

命令...(Commands...)

裡把

句子(<phrase>)

這個命令取消勾選。

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

開啟語音控制後,在

系統偏好設定(System Preferences),

Siri

面板中勾選

啟用“詢問 Siri”(Enable Ask Siri)

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

這樣你就可以跟 Siri 撩騷了。不過到這一步,系統只會識別

"Open Siri"

這麼個怪異的指令;怎麼讓 Mac 用上

"Hey, Siri"

,一會細說。

編寫捷徑

捷徑(Shortcuts)

中建立一個新的捷徑,按下圖放置節點,然後把

Run Shell Script

塊雙引號內的內容換成剛才指令碼檔案的路徑。

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

這個捷徑的流程簡單說就是,啟用

系統偏好設定

應用程式,執行我們剛才撰寫的指令碼,然後結束執行。點右上角的

播放(▶)

按鈕,或者對麥克風說

"Open Siri; Mirror to my iPad"

看看捷徑能不能正常工作。

第一次執行的時候,系統可能會提示說

siriactionsd

需要你的授權。這是 Siri 跑捷徑用的子程式。還是在之前說的

系統偏好設定-安全性和隱私-可訪問性

裡,勾選授予

siriactionsd

系統控制權。

現在你應該可以透過語音指令控制 Siri 開啟隨航,讓 macOS 自動連線你的 iPad 了。好耶!

要注意的地方

Mac 睡眠之後,語音監聽可能會莫名掛掉,所以建議把

系統偏好設定-節能(Energy Saver)

裡的第一個選項,在 Mac 螢幕關閉時自動休眠,這個給關了。反正 M1 也不怎麼耗電嘛。

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

當然為了防止自己手賤把機器搞睡眠了之後要輸密碼,可以在

系統便好設定-安全性和隱私

中把第一個選項,也就是機器睡眠後喚醒需要輸密碼,這個功能關掉。

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

“Hey, Siri”

如果你不太介意用

"Open Siri"

這麼個指令來喚出 Siri,這篇文章就到此為止了。這個小章節簡單介紹一下怎麼把

"Hey, Siri"

給開啟。

Automator

中,建立一個新的

語音命令(Dictation Command)。

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

然後簡單加入一個節點:

啟動應用程式(Launch Application)

,選擇啟動

Siri

,儲存。頂上的

語音命令

裡寫上

"Hey Siri"

。當然你要是想寫成

"OK Google"

也是可以的,親測能用。

另一種將 iPad 作為 Mac Mini 主螢幕的實現方法

現在你就可以用

"Hey, Siri"

喚起 Siri 了。

Hey, Siri; Mirror to my iPad

這是我獨享的 moment。