web-dev-qa-db-fra.com

xprop ne parvient pas à décorer la fenêtre

Je suis sous Ubuntu 16.04. Je veux annuler la décoration (supprimer les bordures et la barre de titre) d'une fenêtre. J'ai trouvé un vieux script posté sur le net prétendant fonctionner, mais cela ne fonctionne pas maintenant.

Pour décorer:

xprop -f _MOTIF_WM_HINTS 32c -set _MOTIF_WM_HINTS "0x2, 0x0, 0x0, 0x0, 0x0"

à redécorer:

xprop -f _MOTIF_WM_HINTS 32c -set _MOTIF_WM_HINTS "0x2, 0x0, 0x1, 0x0, 0x0"

Bien que ce script python fonctionne

#! /usr/bin/python2
import gtk.gdk
w = gtk.gdk.window_foreign_new( gtk.gdk.get_default_root_window().property_get("_NET_ACTIVE_WINDOW")[2][0] )
w.set_decorations( (w.get_decorations()+1)%2 ) # toggle between 0 and 1
gtk.gdk.window_process_all_updates()
gtk.gdk.flush()

Comment puis-je basculer la décoration de fenêtre depuis un terminal sans python?

2
kenn

Cela ne fonctionnera pas en compiz! Compiz s'attend à ce que le type de propriété _MOTIF_WM_HINTS soit _MOTIF_WM_HINTS, mais la commande xprop le définisse sur CARDINAL. Si vous utilisez xprop | grep _MOTIF_WM_HINTS, vous verrez ceci:

_MOTIF_WM_HINTS (CARDINAL) = 2, 0, 0, 0, 0

Cela devrait être comme ça:

_MOTIF_WM_HINTS (_MOTIF_WM_HINTS) = 2, 0, 0, 0, 0

Votre script python fonctionne, car GTK + définit correctement cette propriété. :)

3
muktupavels