devilspie - управление состоянием окон

Автор: bicyclist56
Опубликовано: 4444 дня назад (27 февраля 2012)
Редактировалось: 8 раз — последний 28 февраля 2012
0
Голосов: 0
Нашел решение, как можно при запуске ОС иметь окно моего будильника на всех рабочих местах, да еще и свернутым в заголовок! И для всех программ можно задавать состояние окон.
Устанавливаем http://debian.nctu.edu.tw/debian/pool/main/d/devilspie/devilspie_0.22-2_i386.deb
Ссылки:
http://www.foosel.org/linux/devilspie
http://help.ubuntu.ru/wiki/devilspie
http://lazysketches.blogspot.com/feeds/posts/default
архив /usr/share/man/man1/devilspie.1.gz
Создаем каталог /root/.devilspie - а в нем для конкретной программы отдельный файл с расширением .ds, в котором содержатся правила поведения окна.
Проверяем в терминале: devilspie
Далее, в /etc/rc.d/rc.local для автозапуска демона devilspie при старте ОС добавляем строку:
devilspie &
Команда в терминале xprop позволит указать нужное окно мышью и выдаст о нем много информации.
Кроме того, можно установить
http://archive.ubuntu.com/ubuntu/pool/universe/w/wmctrl/wmctrl_1.07-6_i386.deb - это еще одна возможность расширенно управлять окнами, раб.столами и т.д.
У меня запуск программ и их размещение теперь организованы с помощью скриптов в Startup.
start-conky :
conky

start-opera :
sleep 7
opera
#(время задержки подобрать в зависимости от вашего соединения)

start-notecase :
sleep 9
notecase

start-waker :
sleep 8
cd /root/MyApps/Waker
exec /root/MyApps/Waker/project1

start-ntupdate :
sleep 10
ntpdate ntp.ubuntu.com
aplay /root/Media/Sounds/Sqeak.wav
devilspie
#(сверка времени, звук.сигнал, выполнение правил для окон)

В /root/.devilspie заданы следующие правила:

notecase.ds :
(if
    (is (application_name) "notecase")
    (begin
       (set_workspace 2)
    )
)
#(если имя программы - notecase, то отправить ее окно на 2-й раб.стол)

project1.ds :
(if
        (is (application_name) "project1")
    (begin
        (pin)
        (shade)
    )
)
#(если имя программы - project1, то сделать окно видимым на всех раб.столах и свернутым в заголовок)
deadbeef.ds :
(if
    (is (application_name) "deadbeef")
    (begin
       (minimize)
    )
)
#(если имя программы - deadbeef, то опустить окно)
и т.д.
Таким образом, можно заранее спланировать размещение окон многих программ, на каком раб.месте будут появляться при запуске программы, в каком виде. Потом можно перетаскивать на другое место, конечно, но если выполнить (сделал кнопочку запуска) команду devilspie, то все окна немедленно разбегаются по своим штатным местам, и в нужном виде!
Уровень чернил в принтере | Передача файлов по bluetooth
Теги: ivanna