Openbox: Starten Sie eine Maximierungsanwendung über das Menü ob

7

Ich versuche, die menu.xml meiner Openbox zu konfigurieren, und möchte einen Menüeintrag definieren, der eine Maximierungsanwendung startet, z. B. Firefox.

<menu id="root-menu" label="OpenBox 3">
    <item label="firefox">
        <action name="Execute">
            <execute>firefox</execute>
        </action>
        <action name="Maximize" />
    </item>
</menu>

Aber es funktioniert nicht. Nach einigen Tests denke ich, dass nur die erste Aktion ausgeführt wird.

Hat jemand eine Lösung?

Arthropode
quelle

Antworten:

8

Hier finden Sie eine Möglichkeit, alle Anwendungen zu öffnen, die mit dem Openbox-Fenstermanager maximiert wurden. (Ich weiß nicht, welche Distribution OP verwendet, und daher werden zwei leicht unterschiedliche Routen vorgeschlagen.)

Für andere Distributionen als Lubuntu: Erstellen
Sie aus /etc/xdg/openbox/rc.xmlSicherheitsgründen ein Backup.
Öffnen Sie /etc/xdg/openbox/rc.xmlmit einem Texteditor.
Gehen Sie zum Ende der Datei. Das solltest du sehen:
</applications>
</openbox_config>

Fügen Sie direkt über der Zeile mit </applications>Folgendes ein:
<application class="*">
<maximized>yes</maximized>
</application>
Speichern rc.xml
Öffnen Sie ein Terminal und führen Sie es aus openbox --reconfigure. Dadurch wird Openbox auf die Änderungen aufmerksam gemacht. Wenn dies nicht effektiv ist, melden Sie sich ab und wieder an. Von nun an werden alle Anwendungen maximiert geöffnet.

( Quelle )


Bearbeiten Sie für Lubuntu 12.10-Benutzer ~/.config/openbox/lubuntu-rc.xmlanstelle von /etc/xdg/openbox/rc.xml. (Ich habe dies überprüft, weil ich Lubuntu 12.10 verwende.)
Wenn Sie nicht alle Anwendungen maximiert öffnen möchten , sondern nur einige bestimmte, benötigen Sie für jede zu maximierende Anwendung den folgenden Code anstelle des obigen Codes :
<application class="......"> (Siehe unten)
<maximized>yes</maximized>
</application>

  • Beachten Sie, dass der Weg, um das herauszufinden, application classüber ist xprop.
  • Sie müssen ein Terminalfenster sowie ein Fenster der Anwendung öffnen, deren Klasse Sie suchen müssen.
  • Geben Sie xprop _OB_APP_CLASSdas Terminalfenster ein und drücken Sie Enter.
  • Beachten Sie, dass der Cursor sein Aussehen in Fadenkreuz geändert hat.
  • Klicken Sie nun mit der Maus in das Fenster der gewünschten Anwendung.
  • Schauen Sie sich dann den Ausgang im Terminal noch einmal an. Wenn ich beispielsweise xprop _OB_APP_CLASSein Fenster von Google Chrome ausführe und darauf klicke, wird Folgendes angezeigt: _OB_APP_CLASS(UTF8_STRING) = "Google-chrome""Google-Chrome", einschließlich der Anführungszeichen, sollte genau als Anwendungsklasse eingegeben werden.
  • Sie müssen dies für jede Anwendung tun, für die Sie eine maximale Maximierung wünschen.
    Ein Nebeneffekt davon <maximized>yes</maximized>ist, dass nicht nur das primäre Fenster, sondern auch andere Fenster maximiert geöffnet werden. Zum Beispiel in Firefox, drückt Alt> Edit> Preferencesoder Alt> Help> Aboutwird in maximierten Scheiben führen. Das gleiche passiert im Task-Manager von Chrome ( Shift+ Esc).

Wenn ein solches Verhalten unerwünscht ist, xpropmuss es sowohl für das primäre als auch für das sekundäre Fenster ausgeführt werden, um festzustellen, ob sie unterschieden werden können.
Für die Browser Chrome, Firefox, Opera und Seamonkey maximiert der folgende Code nur das eigentliche Browserfenster und nicht die "internen" Fenster:
<application role="browser">
<maximized>yes</maximized>
</application>


quelle
Ja, aber das Fenster ist nicht wirklich maximiert und ich kann es trotzdem verschieben. Und wie könnte ich für andere Anwendungen tun?
Arthropode
Ich habe die Antwort umgeschrieben, um wirklich maximierte Fenster für alle Anwendungen bereitzustellen.