
為什麼載入時間較長的應用程式(NetBeans、Eclipse 等)會「跳轉」到目前桌面,即使該進程是在另一個桌面上啟動的?
如果我轉到桌面 3 並啟動應用程序,然後在等待時轉到桌面 2,那麼當應用程式加載後,它將在桌面 2 上啟動。
答案1
這是一個比較複雜的問題。
誰能想到,視窗管理器(WM)應該管理視窗。這包括但不限於它們的位置、尺寸、桌面以及是否接受裝飾。 WM 不會以任何方式啟動應用程序,它只會查看和管理該進程將產生的視窗。那麼,會發生什麼事呢?
- 切換到桌面2
- 啟動 NetBeans
- 啟動畫面在桌面 2 上建立為沒有任何裝飾的視窗
- 切換到桌面 3
- NetBeans 啟動畫面停留在桌面 2
- NetBeans 完成並最終創建主窗口,當然會發送到當前桌面,因為它是一個全新的窗口
這種情況下的問題是視窗管理器完全不知道(或無知,不確定)世界衛生組織該視窗屬於。有兩種可能:
找到一個視窗管理器,它可以...
- ...支援按父進程對視窗進行分組
- ....允許您為每個視窗定義規則
或者你得到一個幫助應用程序,例如魔鬼派它允許定義視窗規則。
答案2
如果您使用 compiz(是的,您甚至可以在 12.04 下使用;)),您可以嘗試安裝compizconfig-settings-manager
,然後轉到Place Windows
子選單新增新的Fixed Window tab
,您將在其中選擇應用程式和桌面的類別(名稱)。
否則,你可以使用控制面板這將允許您啟動應用程式並強制它們轉到您的桌面之一。