Автоматически размещаем окна по рабочим столам после загрузки
Задача: Ubuntu Precise, Compiz Wall, несколько приложений в автостарте и желание не раскидывать их по рабочим столам вручную каждый раз при логине.
Решение найдет только очень внимательный, что и стало причиной для поста. Оказалось, что задачу можно решить силами самого compiz'a без каких-либо ухищрений. Все что нужно, это плагин Place Windows, который есть в поставке по умолчанию.
На второй вкладке есть три секции, нам нужна последняя — windows with fixed viewport. Задаем идентификатор, лучше всего самый общий — class, окна/приложения, и координаты рабочего стола вида (x, y):
Попутно можно зафиксировать другие свойства окон — положение и режим размещения (на нетбуке с небольшим экраном самое актуальное — развернуть на весь экран). При задании идентификатора есть пикер, так что можно просто ткнуть в интересующее вас приложение. Также доступны логические операции над фильтром (and/or/not).
Теперь при открытии любого окна, подпадающего под фильтры, оно будет размещаться в соответствии с указанными правилами.
PS. Если вы все таки еще на Gnome то у вас сработает такая приблуда, как 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