rimuove la barra del titolo di un altro programma


10

Ho sviluppato un programma con libreria glut e voglio rimuovere la sua barra del titolo.

Poiché è impossibile rimuovere la barra del titolo dalla libreria di glut, devo usare uno strumento esterno per rimuovere la barra del titolo.

Per quanto riguarda il fatto che è possibile manipolare altre decorazioni di finestre nel sistema operativo Windows, spero di trovare un rimedio simile a questo ostacolo.

Hai qualche idea su come rimuovere la barra del titolo della finestra specifica con uno script o una semplice applicazione X11?


I gestori di finestre possono anche manipolare le decorazioni delle finestre in una certa misura. Con IceWM puoi mettere una linea in ~ / .icewm / winoptions yourWindow.dTitleBar: 0.
arte

La barra del titolo di una finestra viene disegnata e gestita dal gestore delle finestre, non dalle applicazioni. I gestori delle finestre decidono cose come se visualizzare una barra del titolo basata sui suggerimenti ICCCM o sui loro derivati ​​moderni. Non penso che tu possa controllarlo in modo indipendente dall'applicazione e dal gestore delle finestre.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


10

wmctrl

Questo è un po 'correlato, ma puoi cambiare il testo nella barra del titolo di questa applicazione misteriosa usando il comando wmctrl.

Esempio

Di 'che ho eseguito l'applicazione gvim. Si presenta come segue quando elenco le finestre aperte.

$  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

Quindi la gvimfinestra ha il titolo "[No Name] - GVIM", possiamo cambiarne il nome in questo modo, usando di nuovo wmctrl:

$ wmctrl -r "[No Name] - GVIM" -N "new name"

Eseguendo -lnuovamente l' interruttore possiamo vedere il nuovo nome:

$ 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

Tutte le decorazioni

C'è questo metodo discusso in questo Q&A di AskUbuntu intitolato: Posso nascondere la barra del titolo di MPlayer in gnome? .

C'era questa sostanza di Python - window-toggle-decorations.py che sembrava fare quel che volevi. Potrebbe essere modificabile per soddisfare le tue esigenze.

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 

Wow ! ha funzionato ! Dovrebbe essere eseguito in questo modo: python2 ./toggle.py . Non ho visto nulla del genere e almeno ora ho la minima idea della risposta. Grazie Smart Looking Man (slm).
Compagno Sponge

L'ho provato con una chiamata di sistema ("python2 ./toggle.py") e ha funzionato anche, tuttavia sono sicuro che il suo codice sia convertibile in C ++.
Compagno di spugna,

La cosa strana è che devo chiamarlo due volte per avere effetto !!! sistema ("python2 ./toggle.py"); sistema ("python2 ./toggle.py"); è ridicolo ! ma funziona per me ed è abbastanza: D
Compagno di spugna il

6

C'è un semplice programma C che funziona, originariamente sviluppato da Muktupavels .

Lo uso e funziona molto bene. È qui

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

Ti consente di attivare e disattivare la barra del titolo per una determinata applicazione.

Per usarlo, assicurati semplicemente di aver libx11-devinstallato la libreria

sudo apt-get install -y libx11-dev

quindi compilare il codice usando questo comando

gcc toggle-decorations.c -Wall -o toggle-decorations `pkg-config --cflags --libs x11`

ed eseguilo con questo comando

./toggle-decorations $(wmctrl -lx | grep -E "name_of_your_application_here" | grep -oE "[0-9a-z]{10}")

dove $(...)cattura l' --idapplicazione della tua applicazione usando wmctrl.

Non ho fatto questo ottimo lavoro e non me ne sono accorto.

È stato fatto da muktupavels.


l'unica cosa che ha funzionato su Unity / compiz thx!
Aquarius Power
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.