Ubuntu终端透明度设置需先用ps -o comm= -p $PPID确认终端类型:ptyxis用dconf写opacity;gnome-terminal用gsettings配background-opacity并动态获取UUID;alacritty等靠配置文件;X11下可用Compton全局控制。
Ubuntu 设置终端透明度没有“一刀切”的命令,得先确认你用的是哪个终端程序——gnome-terminal、ptyxis、konsole,还是 alacritty 这类独立终端。不同程序的配置方式完全不同,混用命令只会报错或无效。
别猜,直接查进程:
ps -o comm= -p $PPID
输出可能是 ptyxis、gnome-terminal-server、konsole 或 alacritty。Ubuntu 24.10+ 默认是 ptyxis,不是 gnome-terminal,这点很多人踩坑。
ptyxis:必须用 dconf 写配置,GUI 设置项已移除gnome-terminal-server:用 gsettings,但路径含动态 UUID,硬写路径会失败alacritty、kitty、wezterm:它们不读系统设置,只认自己配置文件(如 ~/.config/alacritty/alacritty.yml)xterm、rxvt 等传统 X11 终端:xprop 可临时设,但不持久,且 Wayland 下完全不生效新版 Ubuntu/Fedora 的 ptyxis 不响应 gsettings,也不提供图形界面开关。必须用 dconf 直接写入 profile 路径:
dconf write /org/gnome/Ptyxis/Profiles/$(dconf read /org/gnome/Ptyxis/default-profile-uuid | sed -e "s/'//g")/opacity 0.75
注意几个关键点:
0.75 表示 75% 不透明(即 25% 透明),填 75 或 "75%" 会报错ptyxis 窗口才生效,已打开的窗口不会刷新No such key,先运行 dconf list /org/gnome/Ptyxis/Profiles/ 看实际路径是否存在gnome-terminal 的透明度键名是 background-opacity,但它藏在 profile 的动态路径下:
gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$(gsettings get org.gnome.Terminal.ProfilesList default | awk -F ' '{print $2}')/ background-opacity 0.6
这个命令容易失效,尤其当 profile 名含空格或单引号时。更稳妥的做法是分步操作:
gsettings get org.gnome.Terminal.ProfilesList list,手动找出 UUID(一串带短横线的字符串)gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8/ background-opacity 0.6
如果你用的是 Compton(或其分支 picom),它能统一控制所有 X11 窗口的透明度,包括终端。但注意:它和终端自身透明设置是两套逻辑,可能叠加导致过暗或闪烁。
在 ~/.config/compton.conf 中加:
[core]alpha = 0.85opacity-rule = ["95:class_g 'gnome-terminal'", "95:class_g 'ptyxis'", "95:name 'Terminal'"]
要点:
alpha 是全局默认值,opacity-rule 是覆盖规则,优先级更高class_g(窗口类名)比 name(标题)更稳定,因为标题可能变,类名一般固定killall compton && compton -c ~/.config/compton.conf &
真正麻烦的不是设置本身,而是终端程序和桌面环境的组合太多——ptyxis 在 GNOME Wayland 下没 GUI 设置、gnome-terminal 的 UUID 路径每次重装都可能变、alacritty 完全不搭理系统配置。动手前,一定先用 ps -o comm= -p $PPID 确认身份,否则所有命令都是白忙。