linux

如何通过Compton配置实现多屏显示优化

小樊
61
2025-09-22 18:30:05
栏目: 编程语言

一、前置准备:安装Compton 在开始配置前,需确保系统已安装Compton。以Debian/Ubuntu为例,可通过包管理器安装:

sudo apt update && sudo apt install compton -y

二、创建/编辑Compton配置文件 Compton的配置文件通常位于~/.config/compton.conf(若不存在则手动创建)。使用文本编辑器(如nano)打开:

nano ~/.config/compton.conf

三、配置多显示器核心参数

  1. 指定显示器输出与位置
    通过screen模块定义每个显示器的输出接口、位置关系及缩放比例。例如,若有两个显示器HDMI-1(右侧)和eDP-1(左侧),可添加以下配置:

    screen0 {
        output = "HDMI-1";          # 显示器接口名称(通过xrandr查看)
        position = "right";         # 相对位置(left/right/top/bottom)
        transform = "normal";       # 屏幕旋转(normal/90/180/270)
        scale = 1.0;                # 缩放比例(适配高分辨率屏幕)
    }
    screen1 {
        output = "eDP-1";
        position = "left";
        transform = "normal";
        scale = 1.0;
    }
    

    注:显示器接口名称可通过xrandr --query命令获取(如HDMI-1、DP-1、eDP-1等)。

  2. 优化合成性能
    多屏显示对性能要求较高,需开启OpenGL加速并关闭不必要的特效:

    backend = "glx";                # 使用OpenGL加速(优先于xrender)
    glx-no-stencil = true;          # 禁用模板缓冲区(提升性能)
    glx-damage = true;              # 仅合成修改的区域(减少资源消耗)
    shadow = false;                 # 关闭窗口阴影(显著降低CPU/GPU负载)
    opacity = false;                # 关闭窗口透明(避免合成透明窗口的性能开销)
    
  3. 调整刷新率与同步
    避免画面撕裂,可开启垂直同步(vsync)并设置合适的刷新率:

    vsync = "true";                 # 开启垂直同步(防止画面撕裂)
    refresh-rate = 60;              # 设置刷新率(匹配显示器原生刷新率)
    

四、启动Compton并设置开机自启动

  1. 手动启动Compton
    通过配置文件启动Compton,验证多屏设置是否生效:

    compton -c ~/.config/compton.conf
    
  2. 设置开机自启动
    以systemd服务为例(适用于大多数Linux发行版),创建服务文件:

    sudo nano /etc/systemd/system/compton.service
    

    添加以下内容(替换你的用户名为实际用户名):

    [Unit]
    Description=Compton Compositor
    After=display-manager.service
    
    [Service]
    ExecStart=/usr/bin/compton -c ~/.config/compton.conf
    Restart=always
    User=你的用户名
    
    [Install]
    WantedBy=multi-user.target
    

    启用并启动服务:

    sudo systemctl enable compton.service
    sudo systemctl start compton.service
    

五、常见问题排查与优化

  1. 副屏黑屏/无显示

    • 检查显示器线缆连接(HDMI/DP/VGA)是否松动;
    • 确认xrandr输出的显示器名称与配置文件中的output一致;
    • 临时关闭Compton(killall compton),通过系统设置重新配置多屏,再重启Compton。
  2. 性能不足(窗口卡顿、延迟)

    • 降低refresh-rate(如从60调整为30);
    • 减小shadow-radius(阴影半径,默认5,可设为3或更低);
    • 关闭vsyncvsync = "false",但可能导致画面撕裂);
    • 切换至更轻量的合成后端(如backend = "xrender",但OpenGL性能更好)。
  3. 窗口位置异常(跨屏时窗口错位)

    • 确保position参数设置正确(如right表示副屏在主屏右侧);
    • 调整transform参数(如inverted可翻转屏幕,适配特殊显示需求);
    • 排除特定应用的窗口合成问题(通过shadow-excludeopacity-rule添加例外):
      shadow-exclude = ["class_g = 'Firefox'", "class_g = 'Gnome-terminal'"];
      opacity-rule = ["class_g = 'Desktop' A"];  # 桌面图标保持不透明
      

0
看了该问题的人还看了