CentOS上Compton配置的诀窍
Compton作为轻量级窗口合成器,能有效提升CentOS桌面环境的视觉效果(如透明、阴影)与性能。以下是针对CentOS系统的配置技巧,涵盖安装、基础设置、性能优化及常见问题解决:
在CentOS上安装Compton需根据系统版本选择包管理器:
yum
安装,命令为sudo yum install -y compton
;dnf
安装,命令为sudo dnf install compton -y
。sudo yum update -y
更新系统,确保软件包兼容性。Compton的配置文件优先级为:用户级配置 > 系统级配置,具体路径如下:
~/.config/compton.conf
(推荐,不影响其他用户);/etc/xdg/compton.conf
(全局生效)。touch ~/.config/compton.conf
创建。backend = "glx"; # 使用OpenGL后端(性能优于xrender,需显卡支持)
vsync = "opengl-swc"; # 垂直同步,减少屏幕撕裂
shadow = true; # 启用窗口阴影
shadow-radius = 12; # 阴影模糊半径
shadow-offset-x = -15; # 阴影X轴偏移(负值向左)
shadow-offset-y = -15; # 阴影Y轴偏移(负值向上)
shadow-opacity = 0.75; # 阴影透明度(0-1)
inactive-opacity = 0.8; # 非活动窗口透明度
frame-opacity = 0.7; # 窗口边框透明度
用户可根据需求调整参数(如shadow-exclude
排除特定窗口的阴影,避免通知栏、Conky等工具的遮挡)。
Compton的性能消耗主要集中在阴影、透明度和垂直同步上,以下设置可显著降低资源占用:
shadow = false
;若不需要窗口透明,设置opacity = false
。这两项是性能开销的主要来源。backend = "glx"
(OpenGL后端),并添加以下参数提升GPU利用率:glx-no-stencil = true; # 禁用模板缓冲,减少GPU内存占用
glx-no-rebind-pixmap = true; # 避免重复绑定纹理,提升合成效率
paint-on-overlay = true; # 在覆盖层上绘制,减少重绘次数
vsync
和frame-rate
控制刷新率,避免过高帧率导致的CPU占用:vsync = "opengl-swc"; # 垂直同步
frame-rate = 30; # 限制帧率为30FPS(根据显示器刷新率调整,如60Hz可设为60)
unredir-if-possible
自动排除全屏窗口(如视频播放),减少合成负载:unredir-if-possible = true; # 自动排除全屏窗口
unredir-if-possible-exclude = ["class_g = 'vlc'"]; # 排除特定应用(如VLC)
这些设置能在保持视觉效果的同时,将Compton的CPU占用控制在10%以内(取决于硬件配置)。
为避免每次登录手动启动Compton,可创建Systemd服务文件:
sudo nano /etc/systemd/system/compton.service
;[Unit]
Description=Compton Window Composer
After=i3.service # 根据你的窗口管理器调整(如Openbox则改为Openbox.service)
[Service]
ExecStart=/usr/bin/compton --config ~/.config/compton.conf
Restart=always # 崩溃后自动重启
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable compton.service
sudo systemctl start compton.service
此后,Compton会在系统启动时自动运行。
vsync
参数为"opengl-swc"
或"drm"
(部分显卡支持),能有效减少屏幕撕裂。backend
改为"xrender"
(牺牲部分效果换取性能);paint-on-overlay = true
和glx-no-stencil = true
;cpulimit
限制Compton的CPU占用(如cpulimit -l 50 -p $(pgrep compton)
)。shadow-exclude
或opacity-rule
中添加应用排除规则,例如:shadow-exclude = ["name = 'Notification'", "class_g = 'Conky'", "class_g = 'Cairo-clock'"];
opacity-rule = ["90:class_g = 'Alacritty'", "80:class_g = 'URxvt'"]; # 设置终端透明度
backend = "xrender"
(效果可能下降)。通过以上技巧,可在CentOS上高效配置Compton,兼顾桌面美观与系统性能。建议根据自身硬件配置(如显卡型号、内存大小)调整参数,逐步优化至最佳状态。