戴尔显示器开启HiDPI支持

开启效果

系统设置

分辨率设置

由于这个显示器的最大分辨率是3440x1440,而macOS默认不支持这个分辨率的HiDPI,需要增加一个显示配置文件。HiDPI的分辨率是物理分辨率的一半,而直接使用3440x1440的一半显示,效果会偏大,使用3440x1440显示,比例是21.5:9,显示效果会偏小,2K分辨率里面按照同比例换算,使用2560x1072作为HiDPI分辨率是比较合适的。

创建显示配置文件

需要添加两个分辨率:

  • 2560x1072
  • 5120x2144

首先需要获取显示器的pid和vid,打开终端输入命令ioreg -l > ~/Downloads/display.txt获取相关信息,比如获取到的文本文件里面搜索Dell,可以看到相关信息:

1
| |   |   |   "DisplayAttributes" = {"SupportsSuspend"=Yes,"MaximumRefreshRate"=100,"SupportsActiveOff"=Yes,"PortID"=0,"ProductAttributes"={"YearOfManufacture"=2022,"ManufacturerID"="DEL","SerialNumber"=808602454,"ProductName"="DELL S3423DWC","AlphanumericSerialNumber"="B1WWNH3","LegacyManufacturerID"=4268,"ProductID"=53595,"WeekOfManufacture"=47},"MaxVerticalImageSize"=33,"MinimumVariableRefreshRate"=3145728,"MaxHorizontalImageSize"=80,"HasHDMILegacyEDID"=No,"Chromaticity"={"Red"={"X"=44160,"Y"=20672},"Green"={"X"=17984,"Y"=40960},"Blue"={"X"=9600,"Y"=5952}},"DefaultColorSpaceIsSRGB"=No,"NativeFormatHorizontalPixels"=3440,"DefaultWhitePoint"={"X"=20544,"Y"=21568,"Gamma"=144179},"SupportsVariableRefreshRate"=Yes,"AspectRatio"=17,"MinimumRefreshRate"=48,"MaximumVariableRefreshRate"=6553600,"WhitePoints"=({"X"=20544,"Y"=21568,"Gamma"=144179}),"PreciseAspectRatio"=158875,"ContinuousFrequencySupport"="CVTv1X","SupportsStandby"=Yes,"NativeFormatVerticalPixels"=1440}

这里LegacyManufacturerID是4268,转换成16进制是10acProductID是53595,转换成16进制是d15b

1
printf %x 4268
1
printf %x 53595

然后创建显示配置文件:

1
2
3
4
5
cd ~/Desktop
mkdir DisplayVendorID-10ac # 10ac是Dell的VendorID
cd DisplayVendorID-10ac
touch DisplayProductID-d15b # d15b是显示器的ProductID
open .

在打开的文件夹中,使用文本编辑器打开DisplayProductID-d15b文件,添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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>53595</integer>
<key>DisplayVendorID</key>
<integer>4268</integer>
<key>scale-resolutions</key>
<array>
<data>
AAAKAAAABDA=
</data>
<data>
AAAUAAAACGAAAAAJACAAAA==
</data>
<data>
AAAoAAAAEMAAAAAJACAAAA==
</data>
<data>
AAAUAAAACGA=
</data>
<data>
AAAoAAAAEMA=
</data>
</array>
</dict>
</plist>

这里的scale-resolutions部分是经过Base64编码的分辨率数据,分别对应以下分辨率:

  • 2560x1072
  • 5120x2144

或者使用下面的网站生成描述文件:

在线配置

将文件夹拷贝到~/Library/Displays/Contents/Resources/Overrides目录下面,如果没有这个目录,可以使用下面的命令创建并拷贝:

1
2
mkdir -p ~/Library/Displays/Contents/Resources/Overrides
cp -r ~/Desktop/DisplayVendorID-10ac ~/Library/Displays/Contents/Resources/Overrides/

开启HiDPI模式

在终端执行下面的命令开启HiDPI支持:

1
sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true

重启电脑

完成上述步骤后,重启电脑,进入系统后即可在显示设置中看到新增的分辨率选项,选择2560x1072即可开启HiDPI模式。