過剰なライブラリを使用してプログラムを開発し、そのタイトルバーを削除したいと考えています。
過剰なライブラリからタイトルバーを削除することは不可能であるため、外部ツールを使用してタイトルバーを削除する必要があります。
Windowsオペレーティングシステムで他のウィンドウ装飾を操作することが可能であるという事実に関して、私はこの障害に対する同様の救済策を見つけたいと考えています。
スクリプトまたは単純なX11アプリケーションで特定のウィンドウのタイトルバーを削除する方法について何かアイデアはありますか?
これは一種の関連ですが、wmctrl
コマンドを使用して、このミステリーアプリケーションのタイトルバーのテキストを変更できます。
アプリケーションgvim
を実行したとしましょう。開いているウィンドウを一覧表示すると、次のように表示されます。
$ wmctrl -l
0x04402eed -1 grinchy N/A
0x00c00003 -1 grinchy Bottom Expanded Edge Panel
0x00c00028 -1 grinchy Top Expanded Edge Panel
0x0120001e 0 grinchy x-nautilus-desktop
0x02a00004 0 grinchy saml@grinchy:~
0x06800003 0 grinchy [No Name] - GVIM
そのため、gvim
ウィンドウのタイトルは「[No Name]-GVIM」です。wmctrl
を使用して、そのように名前を変更できます。
$ wmctrl -r "[No Name] - GVIM" -N "new name"
-l
スイッチをもう一度実行すると、新しい名前が表示されます。
$ wmctrl -l
0x04402eed -1 grinchy N/A
0x00c00003 -1 grinchy Bottom Expanded Edge Panel
0x00c00028 -1 grinchy Top Expanded Edge Panel
0x0120001e 0 grinchy x-nautilus-desktop
0x02a00004 0 grinchy saml@grinchy:~
0x06800003 0 grinchy new name
このAskUbuntuのQ&Aでは、この方法について説明しています。 gnomeでMPlayerのタイトルバーを非表示にできますか? 。
これは Python-window-toggle-decorations.py の要旨であり、希望どおりの動作をするように見えました。ニーズに合わせて変更できる場合があります。
window-toggle-decorations.py
#! /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()
# now bind this to super-r or something
Muktupavelsが開発した単純なCプログラムがあります。 https://Gist.github.com/muktupavels 。
私はそれを使用し、それは非常にうまくいきます。ここだよ
https://Gist.github.com/muktupavels/d03bb14ea6042b779df89b4c87df975d
特定のアプリケーションのタイトルバーのオンとオフを切り替えることができます。
それを使用するには、_libx11-dev
_ライブラリがインストールされていることを確認してください
_Sudo apt-get install -y libx11-dev
_
次に、このコマンドを使用してコードをコンパイルします
_gcc toggle-decorations.c -Wall -o toggle-decorations `pkg-config --cflags --libs x11`
_
このコマンドで実行します
_./toggle-decorations $(wmctrl -lx | grep -E "name_of_your_application_here" | grep -oE "[0-9a-z]{10}")
_
ここで、$(...)
は、wmctrlを使用してアプリケーションの_--id
_をキャプチャします。
私はこの素晴らしい仕事をしなかったし、それを信用していません。
それはmuktupavelsによって行われました。