別のプログラムのタイトルバーを削除する


10

過剰なライブラリを使用してプログラムを開発し、そのタイトルバーを削除したいと考えています。

過剰なライブラリからタイトルバーを削除することは不可能であるため、外部ツールを使用してタイトルバーを削除する必要があります。

Windowsオペレーティングシステムで他のウィンドウ装飾を操作することが可能であるという事実に関して、私はこの障害に対する同様の救済策を見つけたいと考えています。

スクリプトまたは単純なX11アプリケーションで特定のウィンドウのタイトルバーを削除する方法について何かアイデアはありますか?


ウィンドウマネージャは、ウィンドウの装飾をある程度操作することもできます。IceWMでは、〜/ .icewm / winoptionsに行を入れることができますyourWindow.dTitleBar: 0
manatwork 2013

ウィンドウのタイトルバーは、アプリケーションではなくウィンドウマネージャによって描画および管理されます。ウィンドウマネージャーは、ICCCMヒントまたは最新の派生物に基づいてタイトルバーを表示するかどうかなどを決定します。アプリケーションとウィンドウマネージャーの両方に依存しない方法でこれを制御できるとは思いません。
Gilles「SO-邪悪なことをやめよう」

回答:


10

Wmctrl

これは一種の関連ですが、コマンドを使用して、このミステリーアプリケーションのタイトルバーのテキストを変更できます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で説明されているこの方法がありますMPlayerのタイトルバーをgnomeで非表示にできますか?

この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 

うわー !動いた !この方法で実行する必要があります:python2 ./toggle.py。私はそのようなものを見たことがなく、少なくとも今は答えの手がかりを持っています。スマートルッキングマン(slm)ありがとうございます。
スポンジ同志

私はsystem( "python2 ./toggle.py")呼び出しでテストし、それも機能しましたが、そのコードはC ++に変換できると確信しています。
スポンジ同志

奇妙なことに、私はそれを2回呼び出す必要があるということです!!! system( "python2 ./toggle.py"); system( "python2 ./toggle.py"); 馬鹿馬鹿しい !しかし、それは私にとっては機能し、
それで

6

Muktupavelsによって開発された、動作する単純なCプログラムがあります。

私はそれを使用し、それは非常にうまく機能します。ここだよ

https://gist.github.com/cat-in-136/96ee8e96e81e0cc763d085ed697fe193

特定のアプリケーションのタイトルバーのオンとオフを切り替えることができます。

使用するには、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}")

$(...)--idwmctrlを使用してアプリケーションのをキャプチャします。

私はこの素晴らしい仕事をしなかったし、それを信用していません。

それはmuktupavelsによって行われました。


Unity / compiz thxで動作した唯一のもの!
Aquarius Power
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.