Gestartete Anwendung bleibt nicht auf demselben Desktop

Gestartete Anwendung bleibt nicht auf demselben Desktop

Warum führen Anwendungen mit langer Ladezeit (NetBeans, Eclipse usw.) einen „Sprung“ zum aktuellen Desktop durch, selbst wenn der Prozess auf einem anderen gestartet wurde?

Wenn ich zu Desktop 3 gehe und eine Anwendung starte und dann während des Wartens zu Desktop 2 gehe, wird die Anwendung nach dem Laden auf Desktop 2 gestartet. Gibt es eine Möglichkeit, dies zu ändern?

Antwort1

Dies ist ein ziemlich kompliziertes Problem.

Der Window Manager (WM) soll, wer hätte das gedacht, Fenster verwalten. Dazu gehören unter anderem ihre Position, Abmessungen, der Desktop und ob sie dekoriert werden oder nicht. Was nicht Teil des WM ist, ist das Starten von Anwendungen, er sieht und verwaltet nur die Fenster, die dieser Prozess erzeugt. Was passiert also?

  • Wechseln Sie zu Desktop 2
  • Starten Sie NetBeans
    • Der Splash-Screen wird als Fenster ohne Dekorationen auf Desktop 2 erstellt
  • Wechseln Sie zu Desktop 3
    • Der NetBeans-Splash-Screen bleibt auf Desktop 2
  • NetBeans ist fertig und erstellt schließlich das Hauptfenster, das natürlich an den aktuellen Desktop gesendet wird, da es ein komplett neues Fenster ist

Das Problem in diesem Fall ist, dass der Fenstermanager überhaupt nichts davon weiß (oder nicht weiß, ich bin nicht sicher)WHOzu dem dieses Fenster gehört. Es gibt zwei Möglichkeiten:

Suchen Sie einen Fenstermanager, der …

  1. ...unterstützt die Gruppierung von Fenstern nach ihrem übergeordneten Prozess
  2. ...ermöglichen Ihnen, Regeln für jedes Fenster zu definieren

Oder Sie erhalten eine Hilfsanwendung wieTeufelskuchenwelches das Definieren von Fensterregeln ermöglicht.

Antwort2

Wenn Sie Compiz verwenden (ja, das geht sogar unter 12.04 ;) ), könnten Sie versuchen, es zu installieren compizconfig-settings-managerund dann zum Place WindowsUntermenü „Neu hinzufügen“ gehen Fixed Window tab, wo Sie die Klasse (den Namen) Ihrer Anwendung und den Desktop auswählen.

Andernfalls könnten SiewmctrlDadurch können Sie Ihre Anwendungen starten und sie zwingen, auf einen Ihrer Desktops zu wechseln.

verwandte Informationen