Автор Тема: Запуск приложения на определённом рабочем столе [РЕШЕНО]  (Прочитано 1747 раз)

Оффлайн Sam

  • Постоялец
  • ***
  • Сообщений: 109
  • Сэм. Просто Сэм.
Ранее, для своей рабочей системы, я всегда настраивал восстановление прошлого сеанса при запуске. При старте системы на первом рабочем столе автозапускался браузер, на втором - развёрнутое окно Terminator с тремя терминалами внутри, на третьем - редактор Atom, на четвёртом - записная книжка CherryTree. Всё готово для работы, достаточно лишь включить компьютер. Почему на разных столах? Разгружается панель задач, если в ней отображать только окна с текущего стола. Более удобное переключение - всё на своих местах, искать ничего не нужно. Изящнее, в конце концов. 
В основном пользовался KDE, там это реализовано одним пунктом в настройках.  Пытаюсь сделать тоже в Matuntu-TV64-MR112-X115. В "Запускаемых приложениях" включил пункт "Автоматически запоминать запущеные приложения при выходе из сеанса". Не помогает. Добавил в автозагрузку - запускаются на одном столе. Возможно ли в Mate как-то восстановить сеанс? Или привязать запускаемое приложение к конкретному рабочему столу?
 
« Последнее редактирование: 08 Декабрь 2015, 16:37:50 от Sam »

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 1409
Да, было когда-то при выключении, если что-то забыл закрыть, при следующем включении открывалось. При этом не факт, что оно было мне нужно.
Сейчас проверил в указанной Вами системе. Не знаю, как всё, но терминал и домашняя папка, открытые на 2 и 3 столах запустились. После добавления FF в запускаемые приложения, он открылся на первом рабочем месте.
Заранее выставил отметку Автоматически запоминать запущенные приложения
Что непонятно спрашиваем, если всё понятно - пользуемся.

Оффлайн Sam

  • Постоялец
  • ***
  • Сообщений: 109
  • Сэм. Просто Сэм.
Проверил Pluma, Caja и Htop. Запустились на разных рабочих столах. Сложилось впечатление, что это работает для программ Mate, а для "сторонних" - нет. Fox, Cherrytree, Terminator, Atom - никак не реагируют на  отметку "Автоматически запоминать запущенные приложения". А при добавлении в автозагрузку стартуют на первом раб.столе.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2174
  • Да будет свет!
Стараюсь сокращать число запускаемых приложений, в т.ч. Plank, поскольку чем больше список автозапуска, тем медленнее загружается система.
Если приложения включены в автозапуск, можно легко переключаться между ними при помощи апплетов Переключатель окон и Указатель окон.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн Sam

  • Постоялец
  • ***
  • Сообщений: 109
  • Сэм. Просто Сэм.
Стараюсь сокращать число запускаемых приложений, в т.ч. Plank, поскольку чем больше список автозапуска, тем медленнее загружается система.
Любое действие, которое повторяется постоянно, должно быть автоматизировано. Принцип эффективности.
Цитировать
Если приложения включены в автозапуск, можно легко переключаться между ними при помощи апплетов Переключатель окон и Указатель окон.
Это работает, если окон несколько. Хотя, конечно, всё это субъективно. Мне свалка из десятка окон на одном столе делает нервы. Какой-то Windows-style. Собственно, виртуальные рабочие столы и существуют, дабы облегчить работу с большим количеством приложений.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2174
  • Да будет свет!
Мне свалка из десятка окон на одном столе делает нервы. Какой-то Windows-style. Собственно, виртуальные рабочие столы и существуют, дабы облегчить работу с большим количеством приложений.
Вами перечислено всего четыре остро необходимых для автозапуска приложения. Остальные виртуальные рабочие столы в любом количестве могут применяться по прямому их назначению.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн Sam

  • Постоялец
  • ***
  • Сообщений: 109
  • Сэм. Просто Сэм.
Это четыре, без которых работы не будет вообще. Те, которые запускаются постоянно. Но работа же идёт не только с ними, много программ запускаются по мере необходимости. Вообще, это мы уехали в сторону. Меня интересует, есть ли возможность сделать так, как я привык, как мне удобно. То, что есть Планки и Указатели окон - я и так в курсе.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2174
  • Да будет свет!
Попробуйте утилиту DevilsPie2
sudo apt-get install devilspie2 && mkdir ~/.config/devilspie2 && cd ~/.config/devilspie2 && touch ./rules.lua && nano ./rules.lua
  • для каждого окна задайте правило вида, где «3» — абсолютный номер рабочего стола:
if (get_window_name() == "Calculator") then
set_window_workspace(3)
end
    сохраняем этот скрипт и запускаем терминале:
devilspie2 &
  • если все ок — можно поставить его в автозагрузку
Чтобы узнать windows/application name, поместите в скрипт следующие правила:
debug_print("Window Name: " .. get_window_name());
debug_print("Application name: " .. get_application_name())

и запустите в отладочном режиме:
devilspie2 -dи он вам скажет windows/application name запущенных приложений.


После настройки тестируем всё ли работает как вам надо, если всё норм, то добавляем в автозагрузку:
devilspie2 &

Источник
Делай с нами, делай как мы, делай лучше нас!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2174
  • Да будет свет!
Проверила выше описанный способ в Matuntu-TV64-M112-X115 для автозапуска Firefox на рабочем столе 2.
Файл конфигурации DevilsPie2 выглядит так::
Спойлер
if (get_window_name() == "Mozilla Firefox") then
   set_window_workspace(2)
end

debug_print("Mozilla Firefox: " .. get_window_name());
debug_print("Firefox: " .. get_application_name())

И всё рулит!
Делай с нами, делай как мы, делай лучше нас!

Оффлайн Sam

  • Постоялец
  • ***
  • Сообщений: 109
  • Сэм. Просто Сэм.
Re: Восстановление сеанса
« Ответ #9 : 09 Декабрь 2015, 11:47:02 »
Пока разбирался с DevilsPie2, разработчикам Mate сильно икалось. :)
 Как-то у них не очень логично получилось - либо вообще не делали бы функцию восстановления сеанса, либо делали  её полноценной, а не только для своих приложений. Очевидно же, что пользователи будут пользоваться и сторонними.
По DevilsPie2:
if (get_window_name() == "Calculator") then
set_window_workspace(3)
end
Вместо get_window_name лучше использовать get_application_name, ибо имя окна может быть очень загадочным:
Спойлер
Window Name: Как раскидать окна по рабочим столам после загрузки / Хабрахабр - Mozilla Firefox
Application name: Firefox
Window Name: x-caja-desktop
Application name: Caja
Window Name: None
Application name: terminator

Да и  get_application_name работает для всего приложения, а не для конкретного окна. Запускается в терминале для проверки командой devilspie2, без амперсанда в конце. С амперсандом не работает. Если в скрипте всё задано верно, то, при работающем в терминале  DevilsPie2, нужное приложение запускается на указаном рабочем столе. Прерывание работы CTRL-C.  Добавил в автозагрузку - всё отлично работает.
Мой вариант скрипта rules.lua
Спойлер
if (get_application_name() == "terminator") then
        set_window_workspace(2)
end
if (get_application_name() == "untitled - Atom") then
        set_window_workspace(3)
end
if (get_application_name() == "cherrytree") then
        set_window_workspace(4)
end

Вообще, DevilsPie2 умеет не только закреплять рабочий стол за приложением, но и задавать размер, декорацию и прочая. Полный список в официальном мануале - http://www.gusnan.se/devilspie2/manual.php
vita, Вам большое спасибо.
« Последнее редактирование: 09 Декабрь 2015, 12:31:41 от Sam »

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2174
  • Да будет свет!
Sam, просто постаралась найти для Вас решение. Только не понятно, почему тему называете "Восстановление сеанса".  Дисплейный менеджер, применяемый в Matuntu, MDM в меню Приложения->Системные имеет также пункт Новый сеанс.
Восстановление сеанса не обозначено нигде. Да и суть Вашего обращения в необходимости запуска нужных приложений на определённых рабочих столах, независимо от выполняемых пользователем действий: завершение сеанса, перезагрузки или просто включения компьютера.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн Sam

  • Постоялец
  • ***
  • Сообщений: 109
  • Сэм. Просто Сэм.
Прошу прощения, vita. Это у меня старая привычка, ещё со времён пользования KDE. Там оно обозначено именно так. Ещё раз спасибо.

Оффлайн Sam

  • Постоялец
  • ***
  • Сообщений: 109
  • Сэм. Просто Сэм.
Вдруг кому пригодится. При выборе Compiz оконным менеджером DevilsPie2 не работает. Но Compiz сам имеет подобный функционал, реализованный в плагине "Размещение окон" (Place Windows).

В его настройках, на вкладке "Фиксированное размещение окна", в нижней секции задаётся имя окна или приложения и позиционирование.  К примеру, у меня указан запуск Cherrytree на четвёртом рабочем столе.

Узнать имя приложения довольно просто, последовательно: создать, плюс, считать и кликнуть появившимся крестиком на нужном открытом приложении.

При этом в поле "Тип" имеется большой выбор: заголовок окна, класс окна, тип окна, роль окна, ID окна... Если не требуется что-то иное, то лучше выбрать класс, это общий идентификатор всего приложения. В целом же, плагин предоставляет не меньше возможностей, чем DevilsPie2, так же позволяя задавать окнам размер и прочее. Всё хорошо работает, проверено в Matuntu-TV64-MR112-X115.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2174
  • Да будет свет!
Вдруг кому пригодится.
Спасибо!
Проверено в Matuntu-TW64-M112 путём добавления автозапуска на указанном (втором) рабочем месте Firefox. Выполнения первых двух пунктов было достаточным + добавление FF в запускаемые приложения.
Делай с нами, делай как мы, делай лучше нас!