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

    Задача: 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


    Извещения об ошибках — хабрапочтой.
    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 33

      +2
      awesome wm :)
        0
        || dwm || xmonad || wmfs2 ;)
      +9
      Опасаюсь нарваться на минуса — но в кедах такой функционал (правда более широкий) имеется из коробки
        +5
        в юнити (точнее в компизе самом) это тоже имеется из коробки, как и многое другое. Но раскопать эту коробку всем влом.
          +3
          Ну допустим для сохранения сессии (вплоть до документов открытых в приложении), достаточно отметить 1 чекбокс (по умолчанию отмечен). Плюс имеются activities — тут поле для кастомизации вообще широкое.

          А уж задать при необходимости специфичное поведение определенному окну (группе окон) вообще как два байта переслать.
            +1
            да, сильно обобщил забыв, как все хорошо в кедах с wm в этом плане. На активитис давно слюни пускаю, но это пока не киллфича, что бы так сильно перестраиваться.
          +1
          такое даже в е17 есть
            0
            Причём он там был ещё с 3-й версии.
          • UFO just landed and posted this here
              0
              да, с ребутом все еще не так гладко, как хотелось бы, но с пробуждением все ок.
              +4
              Что только люди не придумают, лишь бы KDE не пользоваться
                0
                вы пост то прочитайте сперва
                  +3
                  Просто не все знают что в KDE есть жесткая привязка приложений или отдельных окон к определенному рабочему столу, что очень удобно. А вот удобство использования этого DE уже вопрос индивидуальный :)
                +1
                А счастье всю дорогу было под боком! Спасибо за подсказку.
                  +1
                  Рискую в очередной раз нарваться на минуса, но такому блужданию по окошкам я бы предпочел конфиг файл. Уж очень эти «где поставить галочку» мне напоминают windows.
                    +1
                    а поиски где и в каком в конфиге поставить var=true вам не напоминает gconf-editor?
                      0
                      gconftool в зубы.
                      ну и да, не все знают, что ходить по контролам можно табом, а нажимать их пробелом. плюс клавиши-акселераторы формата Alt+подчёркнутая_буква_в_названии_контрола
                      +1
                      openbox

                      на клавишу в menu.xml:
                      <keybind key="W-c">
                            <action name="Execute">
                              <command>chromium</command>
                              <startupnotify>
                                <enabled>yes</enabled>
                                <name>Web Chromium</name>
                              </startupnotify>
                            </action>
                            <action name="Focus"/>
                            <action name="SendToDesktop">
                              <desktop>2</desktop>
                            </action>
                            <action name="Raise"/>
                          </keybind>
                      


                      на класс в rc.xml:
                      <application class="Chromium*">
                            <action name="Focus"/>
                                <action name="SendToDesktop">
                                  <desktop>2</desktop>
                                </action>
                            <action name="Raise"/>
                          </application>
                      
                        +1
                        На весь экран — добавить />
                          +1
                          <action name="Unmaximize"/>
                          
                            +1
                            <action name="Maximize"/>
                            


                            :facepalm: дважды )))
                          +1
                          Очень вовремя статья появилась, как раз хотел начать выяснять почему оно не работает как надо.
                          Через Place Windows у меня всё давно настроено, но эти правила применяются только к окнам открытым вручную. А открываемые при старте системы остаются на первом экране.

                          У всех ли так, и есть ли решение?
                          0
                          А как переключаться на нужный стол? Раньше, что с KDE, что с голым Гномом, всё было просто — назначил нужные клавиши для каждого стола (у меня было Win+F1… Win+F6) — оно работало. Пробую сейчас это [skipped] юнити — там получается перейти только на соседний стол, а не на любой, нужный мне, а нажатия на Win+F1 просто игнорируются. Нажатие сочетаний Win+цифра иногда, как побочный эффект, вызывает переход на тот стол, где запущено требуемое приложение, но это — совсем не то, что мне надо. Как-то не хочется быть плачущей мышью, жрущей кактус.
                            0
                            там просто хоткеи не прописаны по дефолту. гугл в курсе как это сделать.
                              0
                              Прописывал — не помогает. Компиз игнорирует гомячьи хоткеи. Мне комментом ниже советуют плагин viewport switcher — попробую…
                                0
                                там мама не горюй всего наворочено. в 12.04 у меня было включено было viewport switcher и desktop wall.
                                пробовал отключать и то и то, по результатам оставил desktop wall, без него как раз вообще не переключалось.
                                хоткеи прописывал в application->system tools->system settings->keyboard->navigation->switch to workspace X, все заработало сразу.
                                ctrl+alt+->/< — не вариант если воркспейсов больше двух, дольше кнопками щелкать.
                              0
                              ctrl + alt + <вверх/вниз/влево/вправо>
                              Чтобы настроить переключение на конкретный раб стол, нужно включить плагин «viewport switcher»

                              вообще покопайтесь в ccsm. там много чего интересного.
                              0
                              О слава тебе великий! Я целый год метался по всему инету в поисках. И вопросы открывал на гугле и яндексе и замучал всю оффициальную русскую ubuntu-конфу в irc. Всё было безрезультатно, пока не прочёл ваш пост!
                                0
                                блджад. как irc-то подзапустили…
                                0
                                А как дело обстоит, если у меня два монитора? X и Y позиционирование неправильно работает. вернее не помещает на второй экран
                                  0
                                  Не работает плагин Place Windows — в режиме «Multi Output» т.е. с двумя мониторами. Окна открываются в случайном мониторе. Вот баг bugs.launchpad.net/ubuntu/+source/compiz/+bug/936605.
                                  Бесит, если честно, когда смотришь на одном мониторе фильм, а во втором приложения открываешь и они появляются поверх фильма. Убунту 12.04 x86_64. Кто знает как пофиксить? В частности интересует полноэкранный режим remmina.

                                  Only users with full accounts can post comments. Log in, please.