商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Ubuntu如何设置具体的窗口透明度

Ubuntu如何设置具体的窗口透明度

  发布于2026-08-15 阅读(0)

扫一扫,手机访问

Compton 可以借助 opacity-rule 对窗口透明度做更精细的控制,写法是“不透明度百分比:匹配条件”,例如 "90:class_g 'Firefox'"。不过这里有个关键前提:先用 xprop 查清窗口的真实属性,否则规则很容易写偏。与此同时,通常还要配合 focus-exclude,把 dmenu 这类覆盖层排除掉;最后别漏了,启动时需要显式指定配置文件路径。

Ubuntu如何设置具体的窗口透明度

Compton 是目前 Ubuntu 上最可靠、最灵活的窗口透明度控制工具,直接改 opacity-rule 就能对单个窗口精确设透明度,不用依赖桌面环境或 GNOME 扩展。

opacity-rule 匹配特定窗口并设透明度

这是最常见、也最稳妥的一种写法。规则通常写在 ~/.config/compton.conf[opacity] 段里,或者直接放在顶层(不带 section)位置,格式统一都是:"百分比:匹配条件"。这里有个细节特别容易弄反:它表示的是“不透明度百分比”,不是透明度本身。换句话说,90 代表 10% 透明,100 则是完全不透明。

  • class_g 匹配窗口类名(稳定、推荐),比如 "95:class_g 'Firefox' —— 所有 Firefox 窗口默认 95% 不透明
  • name 匹配窗口标题(易变),比如 "85:name 'Terminal' —— 标题含 “Terminal” 的窗口设为 85% 不透明
  • 支持逻辑组合,例如 "100:class_g 'dmenu' && override_redirect true" 排除 dmenu 这类无边框覆盖层
  • 聚焦状态可区分:"100:class_g 'Alacritty' && focused""80:class_g 'Alacritty' && !focused"

active-opacityinactive-opacity 更省事但粒度粗

如果你不想写规则,只想让当前激活窗口更亮、其他窗口稍暗,直接在 [core] 下设这两个参数就行。它们优先级低于 opacity-rule,但生效范围覆盖所有窗口(包括未被 rule 显式匹配的)。

  • active-opacity = 0.95:激活窗口不透明度(0.0–1.0),建议 ≥0.9
  • inactive-opacity = 0.75:非激活窗口不透明度,0.6–0.8 是较舒适区间
  • 注意:这两个值只影响“是否激活”这一状态,无法按程序、标题、类型做差异化

规则不生效?先查窗口属性再写条件

很多规则失效,根本原因是匹配条件写错了——你看到的窗口名不等于 Compton 实际识别的 class 或 name。必须用 xprop 实时抓取:

  • 终端里运行 xprop | grep -E "(class|name)",然后点击目标窗口
  • 典型输出:WM_CLASS(STRING) = "firefox", "Firefox" → class_g 应该用 'Firefox'(第二个值)
  • 若输出含 WM_NAME(STRING) = "https://example.com - Firefox"name 匹配可用 'Firefox''https',但别写全路径(空格和特殊字符会破坏规则)
  • 遇到 override_redirect = true 的窗口(如 dmenurofi),必须显式排除,否则透明会糊掉整个屏幕

启动与重载必须带完整配置路径

Compton 不读默认路径,每次启动都得显式指定配置文件,否则规则无效:

  • 正确启动:compton -c ~/.config/compton.conf -b-b 后台运行)
  • 修改配置后重载:killall compton && compton -c ~/.config/compton.conf -b
  • 别用 compton --config 拼写错误,也别漏掉 -c 参数——这是最常踩的坑
  • 如果系统已启用 GNOME 的自带合成器(Mutter),Compton 可能被静默禁用,需先关 GNOME 合成:gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"(仅限 GNOME 40+)

真正难的不是写规则,而是确认窗口到底叫什么;一旦 xprop 抓准了 class 或 name,opacity-rule 基本一写就中。别跳过这步,否则所有调试都是盲调。

本文转载于:https://www.php.cn/faq/2988025.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注