Я некоторое время оглядывался по сторонам и не мог найти ответ на мою следующую проблему:
У меня есть шесть рабочих столов на Ubuntu 12.04 с Unity. При запуске каждое утро я выполняю процедуру открытия одних и тех же пяти или шести программ. Я открываю каждый на определенном рабочем пространстве. Я хотел бы автоматизировать это. Есть ли способ написать или настроить это?
Дополнительный вопрос : Чтобы еще больше усложнить ситуацию, я запускаю два экрана в режиме двойного просмотра. Мне действительно нужно запускать каждую программу на определенном экране, желательно на полном экране.
Идея 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
. Вы можете найти использование для его большей функциональности.
Добавьте необходимые приложения в программу 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 дисплеев.
Здесь существует две 'проблемы': первое включает открытие определенного набора программ, когда Вы входите в систему; второе включает то, чтобы заставлять их открыться на определенных рабочих областях. Я буду иметь дело с обоими отдельно:
Создание пользовательского X сессий
Это довольно легко сделать. Просто необходимо создать X Сценариев Сессии и затем сказать LightDM использовать его. Необходимо будет знать, что команды запускают программы, которые Вы хотите от терминала.
touch ~/.customxsession
, и нажмите Enter.gedit ~/.customxsession
, и нажмите Enter.touch /usr/share/xsessions/multi.desktop
, и нажмите Enter.gedit /usr/share/xsessions/multi.desktop
, и нажмите Enter.Присвоение программ к рабочим областям
Это также довольно легко, но требуется некоторое дополнительное программное обеспечение, не установленное в Ubuntu по умолчанию.
sudo apt-get install compizconfig-settings-manager
в Терминале).Вход в систему
Когда Вы входите в систему, необходимо сказать Ubuntu, что Вы хотите использовать свое пользовательское X Сессий.
Проблемы
Довольно много, возможно, пошло не так, как надо с этим, или если Вы делаете маленькую ошибку, или если я сделал ошибку при записи этого ответа. Если что-то действительно идет не так, как надо, удостоверьтесь, что Вы следовали инструкциям к букве и исправляете что-либо, если Вы не имеете. Если Вы все еще имеете проблему, оставляете комментарий.
~/.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