跨(全屏)应用程序进行拖放,通过 Alt-Tab 进行切换

跨(全屏)应用程序进行拖放,通过 Alt-Tab 进行切换

例子

将媒体文件拖到 Totem 的播放列表中以加入队列

Compiz 中的错误

特别是对于 Unity(以前称为 Netbook Edition,适用于小屏幕)来说,这是一个非常重要的功能,因为应用程序通常以全屏方式运行,而使用触摸板拖动会很麻烦。

https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/624810

有什么提示可以说明从哪里开始修复错误吗? compiz 源代码中的哪个文件/行?

可用性背景

根据 Fitts、Accot 和 Zhai 的说法,所需时间迅速转移到目标区域距离尺寸目标(参见菲茨定律转向规律)。

拖放没有跨全屏窗口 Alt-Tab 需要

  1. 开始拖动对象
  2. 移至启动器/任务栏
  3. 转向目标应用程序图标——目标小而远!
  4. 等待应用程序获得焦点
  5. 转向窗户——(巨大目标)
    可选:转到窗口的预期区域,例如播放列表(相当大的目标)
  6. 放下物体

拖放另一方面,Alt-Tab 只需要

  1. 开始拖动对象
  2. 可选按Alt-Tab 切换到其他应用程序
    :转到窗口的预期区域,例如播放列表(相当大的目标)
  3. 放下物体

因此,在 Alt-Tab 键时,拖放不需要小而远的目标

解决方法

以下答案中介绍了一些有趣且可能对许多用户有用的替代方法。非常感谢社区!

正确答案

... 不过,似乎只有在错误修复后才可用。

一些最近的操作,可能与相关错误有关:https://bugs.launchpad.net/ayatana-design/+bug/727903

答案1

我发现它的工作方式:

  1. 开始拖动,
  2. 按住鼠标按钮, Super + (0-9)切换应用程序,
  3. 继续拖放。

注意:在步骤 2 中,您可以抓住 Super 键片刻,启动器将出现并显示哪个数字(0-9)分配给哪个应用程序。

答案2

我还没有找到一个可靠的方法在接收应用程序全屏时将文件管理器文件拖放到(例如)Totem 上 - 但是如果你不让接收应用程序全屏,以下方法对我有用。

运行 CCSM 并编辑 Scale Addon。

单击“启动窗口选择器”(启动边缘,即带有监视器图标的边缘)并将 BottomRight 分配给它。

接下来启动接收应用程序(不是全屏)。

从文件管理器中启动所需文件的拖放操作 - 将鼠标拖到屏幕的右下角 - 所有窗口都会出现 SpreadMode。将鼠标拖到接收应用程序。Spread Mode 将关闭,接收应用程序将成为活动窗口。放下您一直拖动的项目。

我以全屏模式的 Totem 为例尝试了此方法。有时可以正常工作,但不太可靠。我认为是全局菜单捕获了各种事件。

注意:要让示例 Totem 接受 drop 中的一个或多个文件,需要对其桌面启动器进行轻微修改,如本文所述非盟问题

答案3

假设您已经打开了要放到的应用程序:开始拖动文件,转到启动器(它应该在您开始拖动后不久显示)并将鼠标悬停在要放到的应用程序上,这应该显示该应用程序的打开的窗口,然后在仍然拖动文件的同时,将鼠标悬停在要放到的窗口上并等待该窗口变为活动状态(默认值为 500 毫秒,但可以在 ccsm 中更改),然后您可以将文件放到您喜欢的任何位置。

这听起来可能很长,但并不会花很长时间,特别是如果你在 ccsm 中的 Scale 插件的“行为”选项卡中调低“拖放悬停超时”(可在软件中心找到),我的是 200 毫秒,这就很好了。

答案4

与 totem 无关,但我找到了一种在拖放文件时按 alt-tab 的方法(将 pycharm 文件拖到 chrome)。在 Ubuntu 20 上测试。主要细节是在完成 alt-tab 之前不要移动鼠标。

  1. 单击文件并按住鼠标按钮。
    不要移动光标。光标应保持静止,
    只需单击并按住即可。(将出现您常用的光标图标,没有拖放图标)
  2. Alt-Tab
  3. 开始移动光标并将文件放到您想要的任何位置(现在您将拥有拖放图标)

相关内容