xprop がウィンドウのデコレートに失敗する

xprop がウィンドウのデコレートに失敗する

Ubuntu 16.04 を実行しています。ウィンドウの装飾を解除 (境界線とタイトル バーを削除) したいです。ネット上に投稿された古いスクリプトは動作すると記載されていましたが、現在は動作しません。

装飾を解除するには:

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

改装するには:

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

このPythonスクリプトは動作しますが

#! /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()

Python を使わずにターミナルからウィンドウの装飾を切り替えるにはどうすればよいですか?

答え1

これは、Compiz では動作しません。Compiz は_MOTIF_WM_HINTSプロパティ タイプが であると想定しています_MOTIF_WM_HINTSが、xpropコマンドはそれを に設定しますCARDINAL。 を使用すると、xprop | grep _MOTIF_WM_HINTS次のようになります。

_MOTIF_WM_HINTS(カーディナル) = 2, 0, 0, 0, 0

次のようになります:

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

GTK+ がこのプロパティを適切に設定するため、Python スクリプトは機能します。 :)

関連情報