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

And*_*res 5 customization scripts workspaces desktop-environments default-programs

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

例如:

  • Workspace1:1 个终端 + 2 个在 Chrome 中打开的选项卡 + 一个用 PDF 查看器打开的文档
  • Workspace2:3 个终端 + 4 个在 Chrome 中打开的标签 + 1 个在 Firefox + Eclipse 中打开的标签

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

顺便说一句,我正在运行 11.04

omn*_*dan 3

我认为标准窗口管理器没有这样的功能。

但魔鬼派可以做你想做的事。

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

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

我希望这对你有帮助,

丹尼尔


Ser*_*nyy 0

从技术上讲,工作区被称为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
Run Code Online (Sandbox Code Playgroud)

本质上发生的事情是我有两个函数,每个函数都针对特定的视口。我还有一个功能可以检查我当前所在的视口。如果我当前位于视口 1(坐标 0,0),它将生成一组应用程序。如果我在视口 2(坐标 1366,0)上,我们将生成不同的应用程序集。