Как запустить пользовательский набор программ в определенной рабочей области?

Я использую несколько рабочих пространств, чтобы иметь разный контекст для разных работ. Поэтому я многократно запускаю один и тот же набор приложений в одной рабочей области. А также я запускаю одно и то же приложение в каждом наборе приложений, поэтому настройка рабочей области по умолчанию, в которой должно выполняться каждое приложение, не работает для этой цели.

Например:

  • Рабочая область 1: 1 терминал + 2 вкладки, открытые в Chrome + документ, открытый с помощью PDF Viewer
  • Рабочая область 2: 3 терминала + 4 вкладки, открытые в Chrome + 1 вкладка открыта в Firefox + Eclipse

Итак, есть ли способ иметь скрипт или что-то наподобие set_workspace1.sh, который после запуска открывает все нужные программы в определенной рабочей области?

Кстати, я бегу 11.04

5
задан 12 April 2011 в 06:07

2 ответа

Я не думаю, что есть такая функция для стандартного оконного менеджера.

Но Пирог Дьявола может делать то, что ты хочешь.

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

Цитата с сайта «Пирог дьявола»: «Пирог дьявола можно настроить для обнаружения окон такими, какие они есть». создать и сопоставить окно с набором правил. Если окно соответствует правилам, оно может выполнить ряд действий над этим окном. Например, я могу сделать так, чтобы все окна, созданные X-Chat, появлялись во всех рабочих пространствах, и Главное окно Gkrellm1 не отображается в списке пейджеров или задач. "

Надеюсь, это помогло вам,

Даниэль

0
ответ дан 12 April 2011 в 06:07

Технически говоря, рабочие пространства называются viewports, конкретным разделом расширенного рабочего стола, с определенными координатами, например 0, 0 - это окно просмотра 1, а 1366, 0 будет тем, которое расположено непосредственно справа. ]

Следует отметить, что CompizConfig Settings Manager имеет опцию «фиксированного» открытия окна в определенной рабочей области, но можно создать скрипт, как вы упомянули. Вот мой пример.

#!/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), у нас будет другой набор приложений.

0
ответ дан 12 April 2011 в 06:07

Другие вопросы по тегам:

Похожие вопросы: