之前寫了一篇 讓你的螢幕也支援 HiDPI 放大模式 的教學,其實不只是 3440x1440,其他外接螢幕也可以用這個方法支援 HiDPI。可惜的是,這個方法在 Apple Silicon 的機器失效了。不過在我稍微研究之後,發現問題蠻好解決的,所以這篇文章就是來教大家如何在 M1 機器開啟外接螢幕的 HiDPI 功能。
更新:
這個方法很快地已經被淘汰了,因為最新版的 BetterDummy 已經改叫 BetterDisplay 了,然後從 1.2.5c 版本開始支援直接透過 GUI 改設定檔解析度,並且也支援 HiDPI!
其實原理就跟下面介紹的方法一樣,只是 BetterDisplay 現在的操作方式更簡單而已。相關討論可以看這裡。
以下是過時教學:
喔對了忘記提到,有蠻多人在 Apple Silicon 都會推薦使用 BetterDummy 來開啟 HiDPI,但是我比較喜歡我用的方法,一來不需要安裝任何第三方 App,而來 BetterDummy 是投射畫面的方式顯示,多少會有性能損耗才對(?),但透過直接改設定檔的方式就原生許多了。
目前我在 macOS 12.4 測試是可以用,但是根據討論,有可能 macOS 12.4 之前的機器不會出現 HiDPI 選單,所以如果你不是 macOS 12.4 以上然後失敗的話,可以先試試看升級系統。
那麼,教學開始!首先,請先按照 讓你的螢幕也支援 HiDPI 放大模式 這篇文章操作,設定好你想要的解析度,讓腳本產生設定檔,然後「不要」馬上重新開機。
接著,Finder 前往路徑 /Library/Displays/Contents/Resources/Overrides
,會看到有一個 DisplayVendorID-0
的資料夾,裡面有檔案開頭是 DisplayProductID-0
的檔案(如果你有自訂顯示器圖示,可能會有多個檔案)。
接著,請在終端機輸入 ioreg -lw0 | grep -i "DisplayAttributes"
,結果長得像是這樣:
| | | | "DisplayAttributes" = {"SupportsSuspend"=No,"MaximumRefreshRate"=100,"SupportsActiveOff"=No,"PortID"=49,"ProductAttributes"={"ManufacturerID"="MSI","YearOfManufacture"=2021,"SerialNumber"=0,"ProductName"="MAG342CQRV","AlphanumericSerialNumber"="xxxxxxxxxxxxxxxx","LegacyManufacturerID"=13929,"ProductID"=15798,"WeekOfManufacture"=12},"MaxVerticalImageSize"=33,"MaxHorizontalImageSize"=79,"HasHDMILegacyEDID"=No,"Chromaticity"={"Red"={"X"=44416,"Y"=20224},"Green"={"X"=13248,"Y"=45184},"Blue"={"X"=9728,"Y"=3328}},"DefaultColorSpaceIsSRGB"=No,"NativeFormatHorizontalPixels"=3440,"DefaultWhitePoint"={"X"=20544,"Y"=21568,"Gamma"=144179},"SupportsVariableRefreshRate"=No,"AspectRatio"=17,"MinimumRefreshRate"=48,"WhitePoints"=({"X"=20544,"Y"=21568,"Gamma"=144179}),"PreciseAspectRatio"=156889,"ContinuousFrequencySupport"="CVT","SupportsStandby"=Yes,"NativeFormatVerticalPixels"=1440}
找到 LegacyManufacturerID 跟 ProductID 兩個數字,例如我這台螢幕 LegacyManufacturerID 是 13929,ProductID 是 15798。
接著,用文字編輯器(或者 VSCode、Sublime ...)打開 DisplayProductID-0 (沒有副檔名)的檔案,內容大概長這樣:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>DisplayProductID</key> <integer>0</integer> <key>DisplayVendorID</key> <integer>0</integer> <key>scale-resolutions</key> <array> <data>AAAXcAAAD6AA</data> ...... </array> <key>target-default-ppmm</key> <real>10.0699301</real> </dict> </plist> |
接著把 DisplayProductID 下面的 0 改成 ProductID 的數值,DisplayVendorID 下面的 0 改成 LegacyManufacturerID 的數值,然後存檔。
接著修改檔名,把所有 DisplayProductID-0
的檔案名稱的 0 改成 ProductID 的十六進位小寫數值。這裡有十進位轉十六進位的轉換器,或者你會的話,用 macOS 內建的計算機也可以轉換。
舉例來說,我 ProductID 15798 轉換成十六進位是 3db6,所以檔名是 DisplayProductID-3db6
。同理,資料夾的 DisplayVendorID-0 也改成十六進位名稱,例如我的 LegacyManufacturerID 13929 轉換後是 3669,所以資料夾就是 DisplayVendorID-3669
。
改完之後重新開機,在顯示器這邊就會顯示 HiDPI 的解析度了
如果用了不喜歡,刪掉 DisplayVendorID-xxxx
的資料夾,重開機即可。
最後要補充一下,如果你同時有 Intel 跟 Apple Silicon 的機器,會發現 Apple Silicon 無論是這樣改還是使用 BetterDummy 開啟 HiDPI,文字解析度還是會比 Intel 的機器模糊一些,這個目前好像無解,只能等待 Apple 未來修正(或者永遠不會修正)。
發佈留言