在启动它的同一屏幕上打开应用程序窗口

Dig*_*ace 8 multiple-monitors unity google-chrome launcher window

我正在使用双屏设置。Ubuntu 14.10/Unity。每个屏幕都有自己的启动器/Dash。默认应用程序,如 Firefox、nautilus、终端和雷鸟出现在我使用启动器的屏幕上。所以..当我在右侧屏幕上使用 Firefox 启动器时,浏览器会在右侧屏幕上打开。应该是这样。

我希望 Google Chrome 等其他应用程序具有这种行为。我似乎找不到合适的解决方案。

Ser*_*nyy 6

Unity 使用 Compiz 作为组合管理器,它有各种插件来处理这类东西。为了在不搞乱命令行的情况下简单和长话短说,安装 Compiz 配置设置管理器(使用sudo apt-get install compizconfig-settings-manager或通过软件中心),并查找Place Windows,确保已选中

在此处输入图片说明

在该插件下,将有几个选项用于Multi Output Mode. 你想要的是Use output device of focused window. 因此,无论您的文件管理器在哪里,它都会放置打开的文件窗口 在此处输入图片说明


Jac*_*ijm 5

重定向命令以运行应用程序

大多数应用程序在启动它们的屏幕上打开它们的窗口(从 Dash 或启动器)。然而,有些应用程序没有,但可以通过重定向命令以通过下面的脚本运行应用程序来强制它们。为此,您需要编辑相应的.desktop文件(启动器)。

设置看起来有点复杂,但如果按照程序(“如何使用”),应该不会太难。

这个怎么运作

  • 当您单击启动器或从 Dash 中选择应用程序时,脚本会读取鼠标位置,并确定在哪个屏幕上(左/右)。
  • 随后,它等待由您启动的应用程序 (pid) 拥有的新窗口出现。
  • 窗口出现后,它会检查窗口 (screen-) 位置是否与鼠标 (screen-) 初始位置匹配。
  • 如果没有,它会将窗口移动到您启动应用程序的屏幕。在大多数情况下,该操作将处于窗口存在的(非常)早期阶段,因此您甚至不会注意到它。

问题/解决方案

有一个缺点:如果将.desktop文件的命令替换为调用此脚本的命令,则右键单击“打开方式”将无法正常工作。对于像谷歌浏览器这样的网络浏览器,这不会是太大的问题。对于其他应用程序,一个简单的解决方案是添加在当前屏幕上打开新窗口的选项作为快捷方式(见下文)。

<图片>

如何使用:

如何与其他应用程序一起使用:

同样,您可以将该解决方案应用于其他应用程序。要在文件中使用的命令的语法.desktop类似于示例:

Exec=/bin/bash -c "open_oncurrent <command>"
Run Code Online (Sandbox Code Playgroud)

关于如何处理异常的小附加说明在脚本中。

剧本

sudo apt-get install xautomation
sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)