удалить строку заголовка другой программы

10

Я разработал программу с библиотекой перенасыщенности и хочу удалить строку заголовка.

Поскольку невозможно удалить строку заголовка из библиотеки перенасыщения, я должен использовать внешний инструмент для удаления строки заголовка.

Что касается того факта, что в операционной системе Windows можно манипулировать другим оформлением окон, я надеюсь найти аналогичное решение для этого препятствия.

Есть ли у вас какие-либо идеи о том, как удалить определенную строку заголовка окна с помощью скрипта или простого приложения X11?

Губка товарищ
источник
Оконные менеджеры также могут в определенной степени управлять оформлением окон. С IceWM вы можете поместить строку в ~ / .icewm / winoptions yourWindow.dTitleBar: 0.
Манатворк
Строка заголовка окна рисуется и управляется оконным менеджером, а не приложениями. Менеджеры окон решают, например, отображать ли строку заголовка на основе подсказок ICCCM или их современных производных. Я не думаю, что вы можете управлять этим способом, который не зависит ни от приложения, ни от оконного менеджера.
Жиль "ТАК - перестань быть злым"

Ответы:

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окна есть заголовок «[Без имени] - 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: Могу ли я скрыть строку заголовка 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 
SLM
источник
Вот Это Да ! это сработало ! Он должен быть запущен следующим образом: python2 ./toggle.py . Я не видел ничего подобного, и, по крайней мере, теперь у меня есть ключ к ответу. Спасибо Умный Мужчина (slm).
Губка товарищ
Я протестировал его с помощью системного вызова ("python2 ./toggle.py"), и он тоже работал, но я уверен, что его код можно преобразовать в C ++.
Губка товарищ
Странно то, что я должен назвать это два раза, чтобы эффект !!! system ("python2 ./toggle.py"); system ("python2 ./toggle.py"); Это смешно ! но у меня это работает и этого достаточно: D
Губка товарищ
6

Работает простая программа на C, изначально разработанная Muktupavels .

Я использую это, и это работает очень хорошо. Это здесь

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}")

где $(...)захватывает --idваше приложение, используя wmctrl.

Я не делал эту великую работу и не принимал это во внимание.

Это было сделано muktupavels.

Кес
источник
единственное, что работало на Unity / compiz thx!
Водолей Сила