我正在尝试改进某些应用程序的最小化到托盘功能,如果它被最小化到托盘或未放置在当前工作区中,我想在托盘图标单击上显示窗口。
当我尝试显示(取消最小化)除当前窗口(“工作区 2”)之外的工作区(比如说“工作区 1”)上可见的应用程序窗口时,我遇到了这个问题。问题是停留在当前工作区左侧的工作区,应用程序的窗口具有负 x 坐标,因为窗口位置是相对于当前工作区计算的。我想获取窗口相对于工作区 1(不是当前)的位置,并在此时显示在工作区 2(当前)上。
我现在正在这样做,以在当前工作空间上显示与前一个工作空间相同位置的窗口:
# get desktop size
ws_width, ws_height = gtk.gdk.get_default_root_window().get_size()
# get position relative to current workspace
x, y = window.get_position()
# get position relative to the workspace the window is on
x %= ws_width
y %= ws_height
window.move(x, y)
window.show()
但我不喜欢这种解决方法,并且不确定此代码不会在 gnome 以外的桌面上破坏 smth。
因此,我将不胜感激该问题的任何其他解决方案以及有关其他 linux 桌面情况的信息(例如,它们是否将窗口位置相对于当前工作区计算为 gnome 或不计算)。