Skip to content

Background blur - #1071

Merged
mattrose merged 2 commits into
gnome-terminator:masterfrom
Sotilrac:background_blur
Mar 29, 2026
Merged

mattrose merged 2 commits into
gnome-terminator:masterfrom
Sotilrac:background_blur

Conversation

@Sotilrac

Copy link
Copy Markdown
Contributor

Summary

Adds a background_blur profile option that requests KDE KWin to blur the content behind transparent Terminator windows, creating a frosted-glass effect.

When background_blur = True and background_type is transparent or image, Terminator sets the _KDE_NET_WM_BLUR_BEHIND_REGION X11 window property via ctypes/libX11. KWin reads this property and applies its blur desktop effect behind the window.

Addresses Issue #116, but only for KDE.

Changes

  • config.py: Added background_blur: False to profile defaults
  • window.py: Added set_blur_behind() method (ctypes X11 property) and on_window_realize signal to apply on startup
  • terminator.py: Wired blur into the reconfigure cycle so toggling the preference takes effect immediately
  • prefseditor.py: Added checkbox init, callback, and sensitivity logic
  • preferences.glade: Added "Blur background (KDE)" checkbox in the Background tab

Scope

  • KDE KWin on X11: Full support via window property hint
  • Picom/other X11 compositors: Property is safely ignored; users configure blur on the compositor side
  • Wayland: Not implemented
  • GNOME/Mutter: No per-window blur support in this compositor
  • Default off, zero-cost when disabled, fails silently on unsupported setups

Config example

[profiles]
  [[default]]
    background_type = transparent
    background_darkness = 0.8
    background_blur = True

Testing

Tested on KDE Plasma / X11 with KWin blur desktop effect enabled. Verify with:

xprop -name Terminator | grep BLUR
# Should show: _KDE_NET_WM_BLUR_BEHIND_REGION(CARDINAL) = 0

@mattrose

Copy link
Copy Markdown
Member

I don't have a KDE env to test this on, but this all looks good.

@mattrose
mattrose merged commit a900629 into gnome-terminator:master Mar 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants