debian

如何在Debian上配置多显示器Compton

小樊
41
2025-10-31 21:56:45
栏目: 智能运维

在Debian上配置多显示器Compton的步骤

1. 安装Compton

首先通过Debian的包管理器安装Compton(确保系统已更新):

sudo apt update && sudo apt install compton -y

2. 创建/编辑Compton配置文件

Compton的主配置文件通常位于用户主目录的.config文件夹下(~/.config/compton.conf)。若文件不存在,手动创建并编辑:

mkdir -p ~/.config
nano ~/.config/compton.conf

3. 配置多显示器支持

Compton默认支持多显示器,但需通过xrandr确认显示器名称(如HDMI-1eDP-1),并在配置文件中指定显示器布局。以下是关键配置项:

3.1 查看显示器信息

运行以下命令获取显示器名称及当前配置:

xrandr --query

输出示例:

HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 510mm x 287mm
eDP-1 connected primary 1366x768+1920+0 (normal left inverted right x axis y axis) 344mm x 194mm

3.2 配置显示器布局

compton.conf中添加screen section,定义每个显示器的位置、输出源及缩放比例(以双显示器扩展模式为例):

screen0 {
    output = "HDMI-1";       # 第一个显示器名称(如HDMI-1)
    position = "left";       # 位置:左侧(也可用"right"、"top"、"bottom")
    transform = "normal";    # 变换方式:正常(无旋转/翻转)
    scale = 1.0;             # 缩放比例:1.0(原始大小)
}

screen1 {
    output = "eDP-1";        # 第二个显示器名称(如eDP-1)
    position = "right";      # 位置:右侧(与HDMI-1形成扩展屏)
    transform = "normal";
    scale = 1.0;
}

:若需更简单的配置,可直接在compton.conf中添加xrandr-output选项(指定显示器连接顺序):

xrandr-output HDMI-1 eDP-1;  # HDMI-1为主显示器,eDP-1为副显示器(右侧)

4. 启动Compton

配置完成后,通过命令行启动Compton并指定配置文件:

compton -c ~/.config/compton.conf

验证效果:启动后应能看到多显示器布局生效(如扩展屏、复制屏等,取决于xrandr的配置)。

5. 设置Compton开机自启动

为避免每次登录手动启动,可创建systemd服务实现开机自启:

5.1 创建服务文件

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

5.2 添加以下内容

[Unit]
Description=Compton Window Compositor
After=display-manager.service  # 确保在显示管理器启动后运行

[Service]
ExecStart=/usr/bin/compton -c ~/.config/compton.conf
Restart=on-failure           # 失败时自动重启

[Install]
WantedBy=multi-user.target   # 适用于多用户环境

5.3 启用并启动服务

sudo systemctl daemon-reload   # 重新加载systemd配置
sudo systemctl enable compton  # 设置开机自启
sudo systemctl start compton   # 立即启动Compton

5.4 验证服务状态

systemctl status compton

若显示“active (running)”,则表示服务已成功启动。

6. 优化建议(可选)

通过以上步骤,即可在Debian上完成Compton的多显示器配置,并根据需求优化显示效果。若遇到问题,可查看Compton的日志文件(~/.cache/compton.log)排查错误。

0
看了该问题的人还看了