Dig*_*ace 8 multiple-monitors unity google-chrome launcher window
我正在使用双屏设置。Ubuntu 14.10/Unity。每个屏幕都有自己的启动器/Dash。默认应用程序,如 Firefox、nautilus、终端和雷鸟出现在我使用启动器的屏幕上。所以..当我在右侧屏幕上使用 Firefox 启动器时,浏览器会在右侧屏幕上打开。应该是这样。
我希望 Google Chrome 等其他应用程序具有这种行为。我似乎找不到合适的解决方案。
大多数应用程序在启动它们的屏幕上打开它们的窗口(从 Dash 或启动器)。然而,有些应用程序没有,但可以通过重定向命令以通过下面的脚本运行应用程序来强制它们。为此,您需要编辑相应的.desktop文件(启动器)。
设置看起来有点复杂,但如果按照程序(“如何使用”),应该不会太难。
有一个缺点:如果将.desktop文件的主命令替换为调用此脚本的命令,则右键单击“打开方式”将无法正常工作。对于像谷歌浏览器这样的网络浏览器,这不会是太大的问题。对于其他应用程序,一个简单的解决方案是添加在当前屏幕上打开新窗口的选项作为快捷方式(见下文)。

该脚本同时使用wmctrl和xautomation:
sudo apt-get install xautomation
sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)~/bin如果目录尚不存在,请创建一个目录。
将脚本复制到一个空文件中,将其另存为open_oncurrent(无扩展名)~/bin
将相应的.desktop文件复制/usr/share/applications到~/.local/share/applications:
cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications/google-chrome.desktop
Run Code Online (Sandbox Code Playgroud)在以下位置打开本地副本~/.local/share/applications:
gedit ~/.local/share/applications/google-chrome.desktop
Run Code Online (Sandbox Code Playgroud)编辑文件(两个选项):
要更改启动器的主要命令:
找到这一行:
Exec=/usr/bin/google-chrome-stable %U
Run Code Online (Sandbox Code Playgroud)将其更改为
Exec=/bin/bash -c "open_oncurrent /usr/bin/google-chrome-stable"
Run Code Online (Sandbox Code Playgroud)要将选项添加为快捷方式(如上图所示):
找到这一行:
X-Ayatana-Desktop-Shortcuts=NewWindow;NewIncognito;
Run Code Online (Sandbox Code Playgroud)替换为:
X-Ayatana-Desktop-Shortcuts=NewWindow;NewIncognito;New window on this screen;
Run Code Online (Sandbox Code Playgroud)然后将以下部分添加到文件的最后:
[New window on this screen Shortcut Group]
Name=New window on this screen
Exec=/bin/bash -c "open_oncurrent /usr/bin/google-chrome-stable"
TargetEnvironment=Unity
Run Code Online (Sandbox Code Playgroud)同样,您可以将该解决方案应用于其他应用程序。要在文件中使用的命令的语法.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)