Scripting

刪除另一個程序的標題欄

  • April 2, 2022

我開發了一個帶有 glut 庫的程序,並想刪除它的標題欄。

由於無法從 glut 庫中刪除標題欄,我必須使用外部工具來刪除其標題欄。

關於可以在 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 

引用自:https://unix.stackexchange.com/questions/103356