XWindows 管理器/桌面环境:如何将窗口从另一个屏幕移动到当前屏幕,而不在另一个屏幕上看到该窗口?

XWindows 管理器/桌面环境:如何将窗口从另一个屏幕移动到当前屏幕,而不在另一个屏幕上看到该窗口?

[术语] 假设“显示器”=“监视器”=“屏幕”。

注意:当前显示(或当前监视器、屏幕)是指鼠标指针所在的显示,和/或显示当前键盘聚焦窗口的显示。为了便于讨论,我们可以假设它们是相同的,即鼠标指向的显示 = 键盘聚焦的显示。

在常见的 Linux XWindows 管理器/桌面环境中,将窗口移动到不同屏幕的正常方法是先将鼠标指针放在目标窗口上,单击标题栏,然后将其拖到目标监视器,因为监视器形成虚拟视口。

问题是,我们目前是否有解决方案(通过某种软件?)将一个窗口从另一个窗口移出,而看不到该窗口?例如,alt-tab 可以循环遍历所有窗口,甚至那些不在当前显示中的窗口。因此,如果它可以在 tab-loop-thru 之后提供右键单击菜单“移动到当前显示”,那将是一个很好的解决方案。不幸的是,目前还没有。

- 更新 -

为了说明清楚,我有一台带 2 个外接显示器的笔记本电脑,所以总共有 3 个显示器。我只想使用 2 个外接显示器。但是,可能是由于驱动程序问题,如果我关闭边框或只是配置为禁用内置显示器,其中一个外接显示器将消失。这迫使我保持​​内置显示器开启并配置。但是内置显示器(即笔记本电脑)放得很远,所以我很难看屏幕。

如果意外地将一个窗口分配给该显示器,我没有办法将其取回,只能移动我的身体/头部来查看该显示器,然后使用鼠标将窗口拖回我的两个外接显示器之一。

答案1

这取决于具体的 X窗口管理器你正在使用的。其中一些可能已经有了键盘快捷键,例如 KDE 的 KWin 让你创建热键用于在监视器之间移动焦点窗口。

如果没有的话,你可以使用外部程序,例如ewmh-m2m用于在监视器之间移动窗口并指定热键来启动该程序。

(窗口管理器可以在其 Alt+Tab 屏幕中提供此选项;我不知道目前是否有任何选项可以做到这一点,但“在切换到鼠标指针时将窗口移动到鼠标指针”可以轻松添加到您首选的 WM 中。)

答案2

找到了解决方案:

在 Cinnamon 中,名为“Expo”的任务栏(面板)小程序可以显示缩略图虚拟工作区,包含您的所有工作空间,并且每个工作区包含您的所有监视器。

在这个工作空间的微型视图中,每个微型监视器中都显示一个微型窗口。我们可以将窗口从任何工作空间的任何监视器拖放到此微型工作空间视图上任何工作空间的任何其他监视器中。

答案3

我使用 XFCE,如果我的第二台显示器关闭,我会经常这样做。这基本上是一个辅助显示器,所有打开的窗口都显示在主屏幕顶部的面板上。

在主屏幕顶部,首先左键单击所需窗口的标题(将其置于最前面,以便您能看到它最终的位置),然后右键单击并单击“移动”。鼠标光标跳转到窗口中间,您可以移动鼠标来移动窗口。将光标移动到屏幕顶部可让您最大化窗口。

多年来,许多窗口管理器都使用了非常类似的方法,而不仅仅是在 Linux 中——类似的“移动”选项在 Windows 中已经存在了几十年。

答案4

如果您发现将鼠标指针放在该窗口上却看不到该窗口,那么您可以尝试一种最古老、几乎被遗忘的在 X 中移动窗口的方法:

将鼠标指针放在任何地方在窗口上,按住键盘上的 Alt,然后单击并将窗口拖到可见的屏幕区域。

您可能会错过小窗口,但获取最大化的窗口应该不是问题。(此外,我不确定此组合是否默认在所有当前窗口管理器/桌面环境中可用。在 Plasma 中,它仍然有效。)

相关内容