Как мне сценарий, чтобы открыть набор программ, каждый на определенном рабочем пространстве?

Я некоторое время оглядывался по сторонам и не мог найти ответ на мою следующую проблему:

У меня есть шесть рабочих столов на Ubuntu 12.04 с Unity. При запуске каждое утро я выполняю процедуру открытия одних и тех же пяти или шести программ. Я открываю каждый на определенном рабочем пространстве. Я хотел бы автоматизировать это. Есть ли способ написать или настроить это?

Дополнительный вопрос : Чтобы еще больше усложнить ситуацию, я запускаю два экрана в режиме двойного просмотра. Мне действительно нужно запускать каждую программу на определенном экране, желательно на полном экране.

35
задан 2 January 2013 в 00:04

3 ответа

Идея jdp407 об использовании compizconfig будет связывать конкретное приложение с конкретным рабочим пространством, чтобы КАЖДЫЙ РАЗ, когда приложение открывалось, помещалось в соответствующее рабочее пространство. Если это нежелательно, вы можете сделать следующее:

1) Установить wmctrl

sudo apt-get install wmctrl

2) Создать файл со следующим содержимым и сделать его исполняемым

[ 111]

3) Назовите этот скрипт из .xsessionrc в вашем домашнем каталоге [если вам, возможно, придется создать этот файл], чтобы автоматизировать процесс при каждом входе в систему. Или вы можете просто позвонить из терминала, когда это необходимо. РЕДАКТИРОВАТЬ: поместите его в «Startup Applications», а не .xsessionrc. .xsessionrc будет выполняться даже до завершения загрузки среды рабочего стола.


Возможно, вы захотите создать пользовательское xsession в соответствии с предложением jdp407, чтобы у вас было на выбор две сессии, одна из которых автоматически открывает эти приложения, а другая - нет. Но это мне кажется ненужным.


Если вы чувствуете, что переключение в рабочее пространство, открытие соответствующих приложений, а затем переход к следующему занимает много времени, вы можете открыть все приложения за один снимок, а затем переместить окна, используя wmctrl. Например,

wmctrl -r 'Firefox' -t 1

сместит окно с Firefox в его заголовке на рабочую область 1. Если существует более одного окна, первое в списке окон, управляемых wmctrl, будет перемещено. Вам нужно будет знать заголовок окон, которые будут созданы приложениями, чтобы использовать это. Вот почему я не предложил это в качестве основного варианта. Если названия будут однозначными, как в случае с наиболее часто используемыми приложениями, то это путь.


Открытие приложений в полноэкранном режиме:

Некоторые приложения, такие как gnome-терминал, имеют аргументы командной строки для открытия окна в развернутом состоянии или в полноэкранном режиме. Если такие варианты существуют, используйте их. В противном случае используйте wmctrl следующим образом

wmctrl -r 'prasanth@nb37' -b add,maximized_vert,maximized_horz

Это максимизирует мое (уже существующее) окно терминала.

wmctrl -r 'prasanth@nb37' -b add,fullscreen

Отправляет окно в полноэкранный режим.


Просмотрите справочную страницу wmctrl. Вы можете найти использование для его большей функциональности.

0
ответ дан 2 January 2013 в 00:04

Добавьте необходимые приложения в программу StarupApplications, а затем добавьте и этот скрипт. Это мой сценарий: ManageWorkSpaces.sh

echo "Jeril"
wmctrl -r NetBeans IDE 7.1.1 -t 0
wmctrl -r /bin/bash -t 1
wmctrl -r Google Chrome -t 2
wmctrl -r jerilkuruvila - Skype™ -t 3

// сосредоточиться на терминале

wmctrl -a NetBeans IDE 7.1.1   -t 0 

Но я понятия не имею об обработке 2 дисплеев.

0
ответ дан 2 January 2013 в 00:04

Здесь существует две 'проблемы': первое включает открытие определенного набора программ, когда Вы входите в систему; второе включает то, чтобы заставлять их открыться на определенных рабочих областях. Я буду иметь дело с обоими отдельно:

  1. Создание пользовательского X сессий

    Это довольно легко сделать. Просто необходимо создать X Сценариев Сессии и затем сказать LightDM использовать его. Необходимо будет знать, что команды запускают программы, которые Вы хотите от терминала.

    1. Откройте Terminal.
    2. Ввести touch ~/.customxsession, и нажмите Enter.
    3. Ввести gedit ~/.customxsession, и нажмите Enter.
    4. У Вас теперь будет текстовый редактор открытым с пустым файлом.
    5. Необходимо определить X Сессий в этом файле. Я создал образец, 'восполняют пробелы' файл в нижней части ответа. Я думаю, что Ubuntu использует сессию гнома, поскольку это - менеджер окон, но я возможно неправ. Я не могу проверить его в данный момент (поврежденный ноутбук) поэтому, если это не работает как ожидалось (например: Gnome загрузок вместо Единицы), Вы, возможно, должны были бы провести некоторое исследование.
    6. Сохраните файл и закройте Gedit.
    7. Ввести touch /usr/share/xsessions/multi.desktop, и нажмите Enter.
    8. Ввести gedit /usr/share/xsessions/multi.desktop, и нажмите Enter.
    9. У Вас теперь будет текстовый редактор открытым с пустым файлом.
    10. Скопируйте и Вставка код в нижней части ответа (маркировал '/usr/share/xsessions/multi.desktop: ') в Gedit.
    11. Сохраните файл и закройте Gedit.
    12. Перезагрузка. Когда Вы добираетесь до экрана входа в систему при рассмотрении доступных сессий (нажмите небольшой Логотип Ubuntu рядом с именем пользователя), необходимо видеть тот под названием Многосеансный. Если Вы входите в систему с ним, программы, Вы вставляете X Сценариев Сессии, должны открыться автоматически.
  2. Присвоение программ к рабочим областям

    Это также довольно легко, но требуется некоторое дополнительное программное обеспечение, не установленное в Ubuntu по умолчанию.

    1. Установите compizconfig-settings-manager (можно использовать Центр программного обеспечения или просто работать sudo apt-get install compizconfig-settings-manager в Терминале).
    2. Откройте CompizConfig Settings от тире.
    3. Откройте Плагин 'Place Windows' (это находится в разделе 'Window Management').
    4. Нажмите 'New' в разделе 'Windows with fixed viewport'.
    5. Нажмите значок 'Plus'.
    6. Набор 'Тип' как 'Заголовок окна', и вводит заголовок окна одной из программ в поле 'Value'. Удостоверьтесь, что 'Отношение' установлено на 'И', и нажмите 'Add'.
    7. Установите рабочую область путем введения номеров в полях 'X' и 'Y'. Когда у Вас есть 4 рабочих области для 'X', '1' оставлен, и '2' правильное, и для 'Y', '1' вершина, и '2' нижняя часть. Наблюдение, поскольку у Вас есть 6 рабочих областей, в зависимости от того, как вещи настраиваются, установка 'Y' к '3', выбрало бы нижний ряд, и установка 'X' к '3' выберет 3-й столбец.
    8. Повторите Шаги 4-7 для остающихся программ, которым Вы хотите присвоить рабочую область.
    9. Закройте настройки CompizConfig.
  3. Вход в систему

    Когда Вы входите в систему, необходимо сказать Ubuntu, что Вы хотите использовать свое пользовательское X Сессий.

    1. Перезагрузка.
    2. Когда Вы добираетесь до экрана входа в систему при рассмотрении доступных сессий (нажмите небольшой Логотип Ubuntu рядом с именем пользователя), необходимо видеть тот под названием Многосеансный. Если Вы входите в систему с ним, программы, Вы вставляете X Сценариев Сессии, должны открыться автоматически и присвоены рабочим областям, которые Вы выбрали.
  4. Проблемы

    Довольно много, возможно, пошло не так, как надо с этим, или если Вы делаете маленькую ошибку, или если я сделал ошибку при записи этого ответа. Если что-то действительно идет не так, как надо, удостоверьтесь, что Вы следовали инструкциям к букве и исправляете что-либо, если Вы не имеете. Если Вы все еще имеете проблему, оставляете комментарий.

~/.customxsession:

#!/usr/bin/env bash
program-command-1 &
program-command-2 &
program-command-3 &
program-command-4 &
program-command-5 &
program-command-6 &
exec gnome-session

/usr/share/xsessions/multi.desktop:

[Desktop Entry]
Name=Multi-Session
Exec=/home/your-username/.customxsession
10
ответ дан 2 January 2013 в 00:04

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

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