另一種將 iPad 作為 Mac Mini 主螢幕的實現方法
這個星期突發奇想整了個新玩具,M1 的 Mac Mini。本來週二下單了準備放到公司用,結果週六才送到。。。只好先在家裡把環境給配了。由於家裡沒有顯示器,就一直接在家裡電視上,看得我頭昏眼花。正好想起新版本的 iOS 似乎加入了一個隨航功能,可以 iPad 變成 Mac 的第二螢幕,於是久違地打算折騰一下。
首先簡單介紹一下我的需求:固定某個房間裡將 iPad 作為 Mac Mini 的主顯示器使用,失去連線的時候要能夠快速恢復,整個過程儘量自動化。
我先看了兩篇文章。首先是 Apple 官方對隨航功能的說明。
很簡單,不錯。但是這也意味著,我不能直接在 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
也要鉤,怎麼弄一會再說。
不過說起來,新到手的機器預裝的是 macOS Monterey。其他 macOS 版本,隨航選單的位置好像不太一樣,這個指令碼不一定能用。
啟用 Siri
首先注意一點,電腦上的 Siri 和 iPhone/iPad 上的不一樣,預設是不開啟
全域性監聽
的。也就是說,如果要啟動
"Hey, Siri"
的喚醒指令,你需要在
系統偏好設定-可訪問性(Accessibility)
中的
語音控制(Voice Control)
標籤頁下開啟
全域性語音監聽
。
另外需要注意的是,這個
語音控制
功能非常強大,它包含有
語音輸入
的功能。也就是說它可能會以外把你罵的髒話打在公屏上;所以最好在
命令...(Commands...)
裡把
句子(<phrase>)
這個命令取消勾選。
開啟語音控制後,在
系統偏好設定(System Preferences),
在
Siri
面板中勾選
啟用“詢問 Siri”(Enable Ask Siri)
。
這樣你就可以跟 Siri 撩騷了。不過到這一步,系統只會識別
"Open Siri"
這麼個怪異的指令;怎麼讓 Mac 用上
"Hey, Siri"
,一會細說。
編寫捷徑
在
捷徑(Shortcuts)
中建立一個新的捷徑,按下圖放置節點,然後把
Run Shell Script
塊雙引號內的內容換成剛才指令碼檔案的路徑。
這個捷徑的流程簡單說就是,啟用
系統偏好設定
應用程式,執行我們剛才撰寫的指令碼,然後結束執行。點右上角的
播放(▶)
按鈕,或者對麥克風說
"Open Siri; Mirror to my iPad"
看看捷徑能不能正常工作。
第一次執行的時候,系統可能會提示說
siriactionsd
需要你的授權。這是 Siri 跑捷徑用的子程式。還是在之前說的
系統偏好設定-安全性和隱私-可訪問性
裡,勾選授予
siriactionsd
系統控制權。
現在你應該可以透過語音指令控制 Siri 開啟隨航,讓 macOS 自動連線你的 iPad 了。好耶!
要注意的地方
Mac 睡眠之後,語音監聽可能會莫名掛掉,所以建議把
系統偏好設定-節能(Energy Saver)
裡的第一個選項,在 Mac 螢幕關閉時自動休眠,這個給關了。反正 M1 也不怎麼耗電嘛。
當然為了防止自己手賤把機器搞睡眠了之後要輸密碼,可以在
系統便好設定-安全性和隱私
中把第一個選項,也就是機器睡眠後喚醒需要輸密碼,這個功能關掉。
“Hey, Siri”
如果你不太介意用
"Open Siri"
這麼個指令來喚出 Siri,這篇文章就到此為止了。這個小章節簡單介紹一下怎麼把
"Hey, Siri"
給開啟。
在
Automator
中,建立一個新的
語音命令(Dictation Command)。
然後簡單加入一個節點:
啟動應用程式(Launch Application)
,選擇啟動
Siri
,儲存。頂上的
語音命令
裡寫上
"Hey Siri"
。當然你要是想寫成
"OK Google"
也是可以的,親測能用。
現在你就可以用
"Hey, Siri"
喚起 Siri 了。
Hey, Siri; Mirror to my iPad
這是我獨享的 moment。