Pull to refresh

Как раскидать окна по рабочим столам после загрузки

Reading time2 min
Views12K
Задача: 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


Извещения об ошибках — хабрапочтой.
Tags:
Hubs:
+31
Comments33

Articles