Compton 配置中调整分辨率与缩放的正确方式

这块有个小的、很多人容易踩的坑:compton 并不负责设置屏幕的物理分辨率或系统级缩放——这些活儿,应该交给显示服务器、桌面环境,或者更直接地说,用 xrandr 搞定。compton 作为 X11 下的窗口合成器,只能在合成阶段对渲染效果做些优化,比如缩放算法、采样、DPI 呈现等。所以,下刀之前,先想清楚你到底要动的是哪一层,再选对工具和参数。
调整分辨率的正确做法
最直接有效的方式,还是 xrandr。先查一下当前连接的情况和可用模式:
xrandr
然后直接切到目标分辨率。举个例子:
xrandr --output HDMI-1 --mode 1920x1080
如果列表里找不到你要的分辨率,没关系,自己生成一条模型线再加进去就好:
- 先生成模型线:
cvt 1920 1080(或者cvt 3840 2160等) - 新建模式:
xrandr --newmode "" <参数串> - 绑定到输出:
xrandr --addmode HDMI-1 "" - 启用模式:
xrandr --output HDMI-1 --mode ""
如果你用的是 GNOME、KDE、XFCE 这类桌面环境,直接进“系统设置 → 显示”也能选,省事儿。要想每次登录都自动应用,把上面那条 xrandr 命令加到自启动脚本里就行(比如 ~/.xprofile 或 ~/.xinitrc)。
在 Compton 中优化缩放观感
分辨率搞定之后,就可以回过头来调 compton 的渲染细节了。如果你的机器有 GPU,优先选 GLX 后端:
backend = "glx"
真要动缩放合成内容时,注意两个关键参数:
- 缩放方法:用
scale-method = "bilinear"会更平滑,用"lanczos"则更锐利但更吃资源。千万别用"nearest"。 - 缩放采样:
scale-sample = 2–4,可以提升边缘平滑度,默认通常是 1。
某些版本或构建还支持通过 downscale-dpi 调整呈现的 DPI。96 是常见值,调高会放大,调低则缩小。不过要注意,这个功能并非所有版本都提供,不同构建的命名和行为也可能不一样。
给个可以直接放进 ~/.config/compton.conf 的示例:
backend = "glx"
scale-method = "bilinear"
scale-sample = 2
# downscale-dpi = 96 # 可选,确认你的版本支持后再开
改完之后重启 compton 才能生效。
多显示器与位置摆放
多显示器布局其实不算“分辨率/缩放”的范畴,但很多人会顺手在 compton 配置里一并设置,这样多屏的阴影和渲染效果会更统一:
screen 0 {
output HDMI-1
position LeftOf eDP-1
}
screen 1 {
output eDP-1
position RightOf HDMI-1
}
用 xrandr --query 确认一下你的输出名称就好,别写错了。
使配置生效与版本差异
重载 compton 的方式很简单:先查进程 pgrep compton,然后用 kill 干掉它,再以 compton -b 启动。如果指定配置文件,可以加 --config ~/.config/compton.conf。
最后提醒一句:近年很多发行版已经用 picom 取代了 compton,部分选项名可能会变,比如 vsync 相关的字段。最好先查一下你安装版本的文档——man picom 是你的好朋友。