如何在特定工作区中运行自定义程序集?

我使用几个工作区,以便为不同的作品提供不同的上下文。 因此,我重复在同一工作区中运行相同的应用程序集。 此外,我在每组应用程序中运行相同的应用程序,因此设置每个应用程序应运行的默认工作区不适用于此目的。

例如:

  • Workspace1:在Chrome中打开1个终端+ 2个选项卡+使用PDF Viewer打开的文档
  • Workspace2:在Firefox + Eclipse中打开的Chrome + 1选项卡中打开3个终端+ 4个选项卡

那么,有没有办法让一个脚本或类似set_workspace1.sh的东西一旦在特定工作区中运行打开所有所需的程序?

顺便说一下,我跑11.04

我不认为标准窗口管理器有这样的function。

但是Devil’s Pie可以做你想要的。

http://burtonini.com/blog/computers/devilspie/

来自Devil’s Pie网站的引用: “Devil’s Pie可以配置为在创建窗口时检测窗口,并将窗口与一组规则匹配。如果窗口符合规则,它可以在该窗口上执行一系列操作。例如,我可以让X-Chat创建的所有窗口出现在所有工作区中,主要的Gkrellm1窗口不会出现在寻呼机或任务列表中。“

我希望这能帮到你,

丹尼尔

从技术上讲,工作空间被称为viewports ,扩展桌面的特定部分,具有特定坐标,例如0, 0是视口1和1366, 0是紧邻右边的那个。

应该注意的是, CompizConfig设置管理器有一个选项可以在特定工作区上“固定”打开一个窗口,但是可以像你提到的那样创建一个脚本。 这是我的例子。

 #!/bin/bash get_viewport() { xprop -root -notype _NET_DESKTOP_VIEWPORT | awk '{print $3,$4}' } spawn_viewport_1() { nohup gnome-terminal 2>&1 > /dev/null & nohup chromium-browser 2>&1 > /dev/null & } spawn_viewport_2() { nohup xterm 2>&1 > /dev/null & nohup firefox 2>&1 > /dev/null & } main() { case $(get_viewport) in "0, 0") spawn_viewport_1 ;; # note , single space in "0, 0" is important "1366, 0") spawn_viewport_2 ;; esac } main 

基本上发生的事情是我有两个函数,每个函数用于特定的视口。 我还有一个函数来检查我当前在哪个视口。 如果我当前在视口1(坐标0,0)上,它将生成一组应用程序。 如果我在视口2(坐标1366,0)上,我们将生成不同的应用程序集。