macOS在remote screen sharing的時候會激活顯示器,但是對於我出門辦公來說,remote過去之後家裡的顯示器並沒有必要開著浪費電。
網上的曲線救國方法是開設一個別的user,remote進來先login這個user然後lock screen,再開一個新的連線登入自己的user,這個時候macOS會因為「另一個user正在使用熒幕」提供一個offscreen的remote desktop session。
但這個方法每次進來要一通切換賬戶很麻煩,而且因為我的熒幕是4K,offscreen session會被鎖在screen的native resolution,對於vnc進來寫code來說毫無必要,再加上macOS在多賬戶登入的情況下會disable universal control,這個方案可行性很差。
最後偶然發現CoreGraphics里有一個 CGSConfigureDisplayEnabled 私有API可以enable / disable特定display,於是搓了一個CLI小工具,在從外面連入後disable display就可以了。
有需要自取,releases裡面有pre-built binary:https://github.com/laosb/MacDisplayTool
網上的曲線救國方法是開設一個別的user,remote進來先login這個user然後lock screen,再開一個新的連線登入自己的user,這個時候macOS會因為「另一個user正在使用熒幕」提供一個offscreen的remote desktop session。
但這個方法每次進來要一通切換賬戶很麻煩,而且因為我的熒幕是4K,offscreen session會被鎖在screen的native resolution,對於vnc進來寫code來說毫無必要,再加上macOS在多賬戶登入的情況下會disable universal control,這個方案可行性很差。
最後偶然發現CoreGraphics里有一個 CGSConfigureDisplayEnabled 私有API可以enable / disable特定display,於是搓了一個CLI小工具,在從外面連入後disable display就可以了。
有需要自取,releases裡面有pre-built binary:https://github.com/laosb/MacDisplayTool