Форум проекта Matuntu

Поддержка => Если вдруг... => Тема начата: Sam от 08 Декабря 2015, 15:50:33

Название: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: Sam от 08 Декабря 2015, 15:50:33
Ранее, для своей рабочей системы, я всегда настраивал восстановление прошлого сеанса при запуске. При старте системы на первом рабочем столе автозапускался браузер, на втором - развёрнутое окно Terminator с тремя терминалами внутри, на третьем - редактор Atom, на четвёртом - записная книжка CherryTree. Всё готово для работы, достаточно лишь включить компьютер. Почему на разных столах? Разгружается панель задач, если в ней отображать только окна с текущего стола. Более удобное переключение - всё на своих местах, искать ничего не нужно. Изящнее, в конце концов. 
В основном пользовался KDE, там это реализовано одним пунктом в настройках.  Пытаюсь сделать тоже в Matuntu-TV64-MR112-X115. В "Запускаемых приложениях" включил пункт "Автоматически запоминать запущеные приложения при выходе из сеанса". Не помогает. Добавил в автозагрузку - запускаются на одном столе. Возможно ли в Mate как-то восстановить сеанс? Или привязать запускаемое приложение к конкретному рабочему столу?
 
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: ivm от 08 Декабря 2015, 16:42:18
Да, было когда-то при выключении, если что-то забыл закрыть, при следующем включении открывалось. При этом не факт, что оно было мне нужно.
Сейчас проверил в указанной Вами системе. Не знаю, как всё, но терминал и домашняя папка, открытые на 2 и 3 столах запустились. После добавления FF в запускаемые приложения, он открылся на первом рабочем месте.
Заранее выставил отметку Автоматически запоминать запущенные приложения
(http://storage4.static.itmages.ru/i/15/1208/h_1449582047_5515147_92bf65d22a.jpg)
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: Sam от 08 Декабря 2015, 17:16:39
Проверил Pluma, Caja и Htop. Запустились на разных рабочих столах. Сложилось впечатление, что это работает для программ Mate, а для "сторонних" - нет. Fox, Cherrytree, Terminator, Atom - никак не реагируют на  отметку "Автоматически запоминать запущенные приложения". А при добавлении в автозагрузку стартуют на первом раб.столе.
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: vita от 08 Декабря 2015, 19:44:17
Стараюсь сокращать число запускаемых приложений, в т.ч. Plank, поскольку чем больше список автозапуска, тем медленнее загружается система.
Если приложения включены в автозапуск, можно легко переключаться между ними при помощи апплетов Переключатель окон и Указатель окон.
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: Sam от 09 Декабря 2015, 00:41:41
Стараюсь сокращать число запускаемых приложений, в т.ч. Plank, поскольку чем больше список автозапуска, тем медленнее загружается система.
Любое действие, которое повторяется постоянно, должно быть автоматизировано. Принцип эффективности.
Цитировать
Если приложения включены в автозапуск, можно легко переключаться между ними при помощи апплетов Переключатель окон и Указатель окон.
Это работает, если окон несколько. Хотя, конечно, всё это субъективно. Мне свалка из десятка окон на одном столе делает нервы. Какой-то Windows-style. Собственно, виртуальные рабочие столы и существуют, дабы облегчить работу с большим количеством приложений.
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: vita от 09 Декабря 2015, 00:53:45
Мне свалка из десятка окон на одном столе делает нервы. Какой-то Windows-style. Собственно, виртуальные рабочие столы и существуют, дабы облегчить работу с большим количеством приложений.
Вами перечислено всего четыре остро необходимых для автозапуска приложения. Остальные виртуальные рабочие столы в любом количестве могут применяться по прямому их назначению.
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: Sam от 09 Декабря 2015, 01:12:10
Это четыре, без которых работы не будет вообще. Те, которые запускаются постоянно. Но работа же идёт не только с ними, много программ запускаются по мере необходимости. Вообще, это мы уехали в сторону. Меня интересует, есть ли возможность сделать так, как я привык, как мне удобно. То, что есть Планки и Указатели окон - я и так в курсе.
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: vita от 09 Декабря 2015, 03:04:45
Попробуйте утилиту DevilsPie2
sudo apt-get install devilspie2 && mkdir ~/.config/devilspie2 && cd ~/.config/devilspie2 && touch ./rules.lua && nano ./rules.luaif (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 &

Источник (http://habrahabr.ru/post/143540/)
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: vita от 09 Декабря 2015, 11:31:41
Проверила выше описанный способ в 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())

И всё рулит!
Название: Re: Восстановление сеанса
Отправлено: Sam от 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 (http://www.gusnan.se/devilspie2/manual.php)
vita, Вам большое спасибо.
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: vita от 09 Декабря 2015, 12:04:40
Sam, просто постаралась найти для Вас решение. Только не понятно, почему тему называете "Восстановление сеанса".  Дисплейный менеджер, применяемый в Matuntu, MDM в меню Приложения->Системные имеет также пункт Новый сеанс.
Восстановление сеанса не обозначено нигде. Да и суть Вашего обращения в необходимости запуска нужных приложений на определённых рабочих столах, независимо от выполняемых пользователем действий: завершение сеанса, перезагрузки или просто включения компьютера.
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: Sam от 09 Декабря 2015, 12:12:49
Прошу прощения, vita. Это у меня старая привычка, ещё со времён пользования KDE. Там оно обозначено именно так. Ещё раз спасибо.
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: Sam от 19 Декабря 2015, 17:13:32
Вдруг кому пригодится. При выборе Compiz оконным менеджером DevilsPie2 не работает. Но Compiz сам имеет подобный функционал, реализованный в плагине "Размещение окон" (Place Windows).
(http://storage7.static.itmages.ru/i/15/1219/s_1450532151_7074109_27f398e8e0.png) (http://itmages.ru/image/view/3322129/27f398e8)
В его настройках, на вкладке "Фиксированное размещение окна", в нижней секции задаётся имя окна или приложения и позиционирование.  К примеру, у меня указан запуск Cherrytree на четвёртом рабочем столе.
(http://storage3.static.itmages.ru/i/15/1219/s_1450532904_5987545_a2801b00a1.png) (http://itmages.ru/image/view/3322173/a2801b00)
Узнать имя приложения довольно просто, последовательно: создать, плюс, считать и кликнуть появившимся крестиком на нужном открытом приложении.
(http://storage8.static.itmages.ru/i/15/1219/s_1450533368_6405063_d93ee89441.png) (http://itmages.ru/image/view/3322187/d93ee894)
При этом в поле "Тип" имеется большой выбор: заголовок окна, класс окна, тип окна, роль окна, ID окна... Если не требуется что-то иное, то лучше выбрать класс, это общий идентификатор всего приложения. В целом же, плагин предоставляет не меньше возможностей, чем DevilsPie2, так же позволяя задавать окнам размер и прочее. Всё хорошо работает, проверено в Matuntu-TV64-MR112-X115.
Название: Re: Запуск приложения на определённом рабочем столе [РЕШЕНО]
Отправлено: vita от 19 Декабря 2015, 18:18:13
Вдруг кому пригодится.
Спасибо!
Проверено в Matuntu-TW64-M112 путём добавления автозапуска на указанном (втором) рабочем месте Firefox. Выполнения первых двух пунктов было достаточным + добавление FF в запускаемые приложения.