
Я использую 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
Ваш скрипт Python работает, потому что GTK+ правильно устанавливает это свойство. :)