CentOS环境下Compton配置技巧
首先确保系统更新至最新状态,再通过包管理器安装Compton:
sudo yum update -y && sudo yum install -y compton
sudo dnf update -y && sudo dnf install -y compton
Compton的配置文件优先级为:
~/.config/compton.conf
(推荐,不影响其他用户)/etc/xdg/compton.conf
(全局配置,需root权限)mkdir -p ~/.config/ && touch ~/.config/compton.conf
以下是一个兼顾性能与视觉效果的配置模板,可根据需求调整:
# 后端选择(glx/glx-no-stencil/gl.render,优先选glx以启用GPU加速)
backend = "glx"
# 阴影设置(关闭可提升性能)
shadow = true
shadow-radius = 12
shadow-offset-x = -15
shadow-offset-y = -15
shadow-opacity = 0.75
shadow-exclude = [ # 排除不需要阴影的窗口(如通知栏、Conky)
"name = 'Notification'",
"class_g = 'Conky'",
"class_g = 'Cairo-clock'"
]
# 透明度设置
inactive-opacity = 0.8 # 非活动窗口透明度
active-opacity = 1.0 # 活动窗口透明度
frame-opacity = 0.7 # 窗口边框透明度
# 淡入淡出效果(关闭可减少CPU占用)
fading = true
fade-delta = 5
fade-in-step = 0.03
fade-out-step = 0.03
# 性能优化
vsync = "opengl-swc" # 垂直同步,避免屏幕撕裂
frame-rate-limit = 60 # 限制帧率(根据显示器刷新率调整)
paint-on-overlay = true # 减少渲染层级,提升性能
shadow = false
、opacity = false
,可显著降低资源消耗。frame-rate-limit
限制帧率(如60),避免高帧率导致的CPU占用过高。vsync = "opengl-swc"
(或"opengl"
、"drm"
),防止屏幕撕裂,同时减少GPU负载。backend = "glx"
,并安装对应显卡驱动(如NVIDIA专有驱动),提升渲染性能。shadow-exclude
或opacity-rule
排除资源占用高的应用(如Firefox、Conky),避免不必要的特效计算。若使用多显示器,需通过xrandr
确认显示器名称(如HDMI-1
、DP-1
),然后在配置文件中添加xrandr-args
参数,例如:
xrandr --output HDMI-1 --auto --right-of eDP-1 # 先用xrandr配置好多显示器布局
在compton.conf
中添加:
xrandr-args = "--output HDMI-1 --auto --right-of eDP-1"
确保Compton适配多显示器配置。
创建Systemd服务文件,实现Compton开机自动运行:
sudo nano /etc/systemd/system/compton.service
添加以下内容(替换为你的配置文件路径):
[Unit]
Description=Compton Window Composer
After=display-manager.service # 确保在显示管理器启动后运行
[Service]
ExecStart=/usr/bin/compton --config ~/.config/compton.conf
Restart=on-failure # 失败时自动重启
[Install]
WantedBy=multi-user.target
保存后执行以下命令启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable compton.service
sudo systemctl start compton.service
compton --config ~/.config/compton.conf
systemctl status compton.service
pkill compton && compton -b
(-b
表示后台运行)vsync
参数(如vsync = "opengl-swc"
),或尝试不同的同步方式。frame-rate-limit = 30
)、开启paint-on-overlay
,或切换后端为xrender
(牺牲部分特效换取性能)。shadow-exclude
或opacity-rule
中,例如:opacity-rule = ["90:class_g = 'Alacritty'", "80:class_g = 'URxvt'"] # 设置终端透明度
shadow-exclude = ["class_g = 'Firefox'"] # 禁止Firefox显示阴影