如果我单击 Ubuntu 上的软件图标或菜单项,然后在程序打开之前快速切换到其他工作区,则程序不会在单击图标的工作区中打开,而是在当前工作区中打开。这对我来说非常烦人。我该如何尝试解决这个问题?
答案1
我认为这只是桌面工作方式的一部分... 单个桌面可以划分为多个工作区,但这些工作区并不像看上去那么独立。例如,它们不保留自己的鼠标位置。当您在桌面的工作区之间移动时,鼠标会保持相同的位置。启动应用程序的情况似乎也是如此。应用程序由“桌面”启动,如果在它实现(创建窗口)时您已经移动了地形(工作区),那么它就会出现在那里;在新的工作区中。
devilspie
是一个试图解决这些工作空间问题的程序...我试过,但不太了解(我找到了其他方法来实现我想要的效果)。它看起来很有前途,很多人都喜欢它,它可能适合您的特定需求。
魔鬼派在 Ubuntu 存储库中可用,并且有一个 GUI 前端,称为魔鬼,可从code.google.com/p/gdevilspie
另一个用于此类桌面/工作区/应用程序操作的非常有用的工具(命令行)称为wmctrl
。它也可以在 Ubuntu 存储库中找到。
魔鬼派可能是您最好的、最简单的选择,因为,就我个人而言,绕过这种现有的内置行为可能会产生技术上可行的结果,但实际上,适应桌面的原有工作方式可能更简单(实际上)。这里
有一个这样的脚本解决方法的链接,虽然有效,但我不会费心使用它,即使我写了它。它太慢而且太笨拙了:隐藏其中一个工作区上的 gnome-panel
答案2
安装 wmctrl
sudo apt install wmctrl
并创建一个脚本(在此示例中为第二个工作区上的 thunderbird(-t 1
)):
#!/bin/sh
(thunderbird &) & sleep 5 &&
sh -c "wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"
要知道 wmctrl 上的应用程序名称,您可以通过点击终端来查看它:
wmctrl -l
并在脚本中用正确的名称替换它。
请小心使用大写字母(“Thunderbird”而不是“thunderbird”)!!
在 3D 工作区中使用 Firefox 的其他示例 ( -t 2
):
#!/bin/sh
(firefox &) & sleep 5 &&
sh -c "wmctrl -i -r `wmctrl -l | grep Firefox` -t 2"
奖金 :
这是启动时执行的命令:
sh -c "thunderbird & sleep 5 && wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"
适用于 Debain 10 和 Cinnamon。但应该适用于所有