普通的顯示,接上 MacBook 發現原生的分辨率設置在 2K 顯示器上字體很小,換成 1080P 分辨率顯示效果又特別模糊。下面介紹MacBook強行開啓 HiDPI。
什麼是 HiDPI
它使用橫縱 2 個物理像素也就是 4 個物理像素來顯示 1 個像素區域,結果就是圖像的細節得到翻倍、更清晰、邊緣更平滑。
拿 13 寸的 MacBook Pro 舉例,它的屏幕物理分辨率是 2560 x 1600,所以原生的 HiDPI 分辨率就是 1280x800。更高的一檔 1440x900 HiDPI 縮放分辨率,則是虛擬出一個 2880x1800 的分辨率,再進行軟縮放輸入。所以你能發現蘋果的電腦總是有很高的分辨率。
好了,既然你的屏幕是 1080p,本身就沒有那麼多像素去合成 HiDPI,如果以原生的顯示計算,你這屏幕的 1080p 分辨率應該是 960x540,這麼低的分辨率你是沒法用的。
這個腳本的功能就是虛擬出比你的屏幕物理分辨率更高的假分辨率……如果你要開啓 1080p 的 HiDPI 分辨率,就虛擬一個 3840 x 2160 的假分辨率,然後 macOS 會使用 4 個像素來顯示 1 個像素區域,也就是和你物理分辨率一樣的 1080p 分辨率。
手動配置 HiDPI
本教程測試環境:
- 筆記本:MacBook Pro (Retina, 15-inch, Mid 2015)
- 顯示器:Dell P2416D
- 操作系統:MacOS Catalina (Version 10.15.1)
0. 安裝 RDM
相信很多人已經裝過這個工具了,它是用來修改顯示分辨率的,如果沒裝,請在 RDM下載頁面 安裝它。
1. 關閉 macOS 的 SIP
SIP 全稱爲「System Integrity Protection」即「系統完整性保護」,是蘋果公司爲防止你胡亂篡改系統文件用的保護機制,請先按照下面步驟把它關閉,以便後續操作:
- 關機(最好先手機拍個照把這 4 步記錄下來)
- 按
command(⌘)+ R+電源鍵
開機,自動進入恢復模式 - 選擇上邊菜單欄的
實用工具
中的終端
- 輸入命令
csrutil disable
最後終端顯示 「Successfully……」 等一大堆文字就說明你成功了。你可以輸入reboot
重啓。等下文的全部設置都完成後,你如果想恢復 SIP,就重複步驟 1 到 3,在第 4 步輸入csrutil enable
就好了。
2. 開啓 macOS 的 HiDPI 選項
再次重啓後進入系統,打開終端輸入
sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true
3. 查詢你的外接顯示器的編號
這一步相當重要,先介紹兩個命令
ioreg -l | grep "DisplayVendorID"
ioreg -l | grep "DisplayProductID"
這兩條命令用來查詢你的顯示器供應商 ID DisplayVendorID
和產品 ID DisplayProductID
。接下來你要找到你的顯示器對應的DisplayVendorID
和DisplayProductID
:
- 拔掉顯示器的 HDMI 或者 DP 線
- 分別輸入上面兩個命令之後
return(↩)
,每個命令會返回一個帶有數字的結果。那個數字就是 MacBook 默認的DisplayVendorID
和DisplayProductID
了 - 接入顯示器
- 再分別輸入那兩個命令,每個命令會分別返回兩條帶有數字的結果。對比剛纔 MacBook 默認的結果,另一個數字就是你顯示器的
DisplayVendorID
和DisplayProductID
了 - 把這兩個數字分別轉成對應的 16 進制數,用這個 進制轉換工具。
現在,回到桌面,新建一個文件夾命名爲DisplayVendorID-[你剛纔查到的DisplayVendorID的16進制數]
,例如DisplayVendorID-10ac
。
之後在這個剛建好的文件夾下增加一個文件,命名爲DisplayProductID-[你剛纔查到的DisplayProductID的16進制數]
,例如DisplayProductID-a0c3
。
4. 爲你的顯示器生成 plist 文件
在左側的空裏分別輸入顯示器型號,DisplayProductID 和 DisplayVendorID,注意填 16 進制的數字,並且檢查下後邊 10 進制的數字是不是和你剛纔命令查到的一致。如果需要添加自己額外的分辨率,直接在下邊新建一條分辨率配置就行。最後,複製右邊生成 XML 格式文本,粘貼到剛纔新建的文件裏。(也可以直接從網站下載文件,去掉文件名後綴 .plist
)
XML 文本類似下邊這樣:
DisplayProductID
41155
DisplayVendorID
4268
scale-resolutions
AAAKAAAABaAAAAABACAAAA==
AAAFAAAAAtAAAAABACAAAA==
AAAPAAAACHAAAAABACAAAA==
AAAHgAAABDgAAAABACAAAA==
AAAMgAAABwgAAAABACAAAA==
AAAGQAAAA4QAAAABACAAAA==
AAAKAgAABaAAAAABACAAAA==
AAAKrAAABgAAAAABACAAAA==
AAAFVgAAAwAAAAABACAAAA==
4. 複製 plist 配置文件到系統配置目錄
這一步就是把剛纔新建的配置文件複製到你係統目錄裏,你直接複製通常會提示你係統目錄是「只讀」的,不允許你胡作非爲。所以你先要在終端執行下面的命令:
sudo mount -uw /
這樣,你就可以複製到系統的文件夾了。(這個命令重啓後失效)
接下來打開系統文件夾/System/Library/Displays/Contents/Resources/Overrides/
,你會發現一大堆跟你剛纔文件夾命名相似的目錄。把你新建的文件夾丟進去,和它們混在一起,假裝它原來就是其中一員。重啓。
5. 修改分辨率
重啓之後又進入系統,首先打開 RDM,你會在菜單欄看見它:
Main Display 和 Display 2 就分別是你的外接顯示器和 MacBook 的顯示器分辨率設置(位置有可能對調,自己嘗試一下)。帶有 ⚡️ 符號的分辨率設置項就是開啓 HiDPI 後新增出來的。如果你像我一樣是 24 寸 2K 顯示器,可以給顯示器選擇1920x1080⚡️
那個配置。
是不是比原生分辨率的 UI 和字體更大更清晰了?