Toggle window decorations on Linux GTK3 with Python3
March 23, 2021 [GNOME, Linux, Python, Tech, Xfce]The Internet is full of outdated Python code for doing things with windows, so here is what I got working today in a Python 3, GTK 3 environment.
This script toggles the window decorations on the active window on and off. I have it bound to Ctrl+NumPadMinus for easy access.
#!/usr/bin/env python3
import gi
gi.require_version('Gdk', '3.0')
gi.require_version('GdkX11', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gdk
from gi.repository import GdkX11
from gi.repository import Wnck
def active_window(screen):
for window in screen.get_windows():
if window.is_active() == True:
return window
def toggle_decorations(w):
if w.get_decorations().decorations == 0:
w.set_decorations(Gdk.WMDecoration.ALL)
else:
w.set_decorations(0)
screen = Wnck.Screen.get_default()
screen.force_update()
display = GdkX11.X11Display.get_default()
window = active_window(screen)
window_id = window.get_xid()
w = GdkX11.X11Window.foreign_new_for_display(display, window_id)
toggle_decorations(w)
window = None
screen = None
Wnck.shutdown()