Плавающие окна
ion3 поддерживает не только традиционную для него модель фреймов, но и плавающие окна. Если версия вашего ion3 меньше чем 20061015, то для того, чтобы было удобно пользоваться этой возможностью, пишем в cfg_ion.lua:
dopath("detatch.lua") |
и в cfg_bindings.lua:
kpress("Mod4+F","detach.topmost_transient_to_float(_sub, nil, true)"), |
Для 20061015 и более поздних версий - detach.lua прописывать не нужно, его функциональность уже включена в ioncore, а в cfg_bindings нужно прописать
defbindings("WFrame.tiled", { |
Теперь по Win-F можно сделать активное окно плавающим.
Кроме того, при использовании detatch.lua или новой версии ion3 в cfg_kludges среди свойств окна можно указать float=true - такие окна будут создаваться сразу как плавающие.
Удобное изменение размеров и перемещение окон
Прописываем в cfg_bindings.lua:
bdoc("Resize the frame."), |
Это позволит перетаскивать окна левой кнопкой мыши при нажатом модификаторе Win, и изменять размеры окон правым перетаскиванием при нажатой Win.
Возвращение к предыдущему окну
Нередко мы работаем с двумя окнами параллельно, причем хотелось бы, чтобы каждое из них занимало весь десктоп. Типичный пример - окна браузера и текстового редактора при разработке сайта. Следующий код в cfg_bindings.lua позволит быстро переключаться к предыдущему активному окну (по Win-B):
kpress("Mod4+B", "ioncore.goto_previous()"), |
Второй слой рабочих пространств
Это одна из наиболее мощных и в то же время наименее известных особенностей ion-a. Прописываем в cfg_ion.lua:
dopath("nest_ws") |
и добавляем вызов меню под именем menuattach в какое-нибудь меню:
submenu("Attach", "menuattach"), |
Например, у меня это подменю добавлено в контекстное меню заголовка окна. Также можно повесить вызов этого меню на горячую клавишу.
Теперь вызываем меню Attach и в нем выбираем пункт WIonWS. В текущем фрейме в качестве окна появляется новое рабочее место. Его можно, как и любое другое разбить на два по вертикали и горизонтали, и делать с ним все, что можно делать с обычным рабочим местом. Но при этом оно остается как бы одним из окон в родительском фрейме. Возможное применение:
-
Создаю пустой десктоп.
-
Выбираю Attach->WIonWS. Теперь на одном десктопе ютятся, как два окна, два рабочих места.
-
Вновь созданное рабочее место разбиваю на два по вертикали.
-
Сохраняю сессию.
Теперь у меня одна и та же экранная площадь может легко использоваться либо как единое целое, либо разделенное на две части, либо (sic!) двумя способами вместе: на одном рабочем месте (занимающем весь экран) открыто одно окно, а на другом рабочем месте (на том же десктопе) открыто два окна в двух половинках экрана. Это особенно удобно, когда многие привязки окон к рабочим местам определены в cfg_kludges.lua, когда хочется, чтобы одни приложения занимали, скажем, пол-экрана, а другие - весь экран, запускаясь при этом на одном и том же десктопе. Так, я много работаю с gimp, и под него у меня "расчерчен" отдельный десктоп. Изображение по умолчанию открывается в фрейме, занимающем почти весь экран. Но часто приходится работать с двумя изображениями паралельно - и на этом же фрейме у меня есть рабочее место, разделенное надвое по вертикали. При этом в "умолчальном" рабочем пространстве (на почти весь экран) может быть открыто третье изображение.
Обещанные ссылки
http://www.opennet.ru/docs/RUS/ion3/ - "Обзор оконного менеджера Ion3" от warl0ck
http://posix.ru/desktop/ion/ - "Ion3: положительный wm" от Dark_Savant
Last updated 20-Oct-2006 01:11:29 YEKST
Еще: http://jagoterr.blogspot.com/search/label/Ion3
ОтветитьУдалитьУгу, да только эти статьи jagoterr-a появились уже после моей ;) Сейчас-то можно давать ссылку сразу на серию статей на citkit, они все здесь:
ОтветитьУдалитьhttp://citkit.ru/articles/desktop/
братья, а можно сделать в ионе аналог быстрого набора в Опере (или как главное меню в мобилке) чтоб первый рабочий стол был разбит на части в которых были миниатюры остальных окон и клик на миниатюре (т.е. на определённой области) переносил в соответствующий рабочий стол?
ОтветитьУдалитьизвините за анонимность, разберусь с регистрацией, объявлюсь