CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
24.10.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Окружение :: Графические среды :: Менеджеры окон

Ion3: продвинутая настройка

Я хочу рассказать о продвинутых возможностях Ion3. Чтобы получить общее представление об этом WM, советую ознакомиться со статьями "Обзор оконного менеджера Ion3" от warl0ck и "Ion3: положительный wm" от Dark_Savant.

Плавающие окна

ion3 поддерживает не только традиционную для него модель фреймов, но и плавающие окна. Если версия вашего ion3 меньше чем 20061015, то для того, чтобы было удобно пользоваться этой возможностью, пишем в cfg_ion.lua:

dopath("detatch.lua")
  и в cfg_bindings.lua: 
   kpress("Mod4+F","detach.topmost_transient_to_float(_sub, nil, true)"),
 kpress("Mod4+S","detach.toggle_floatws(_,true)"),

Для 20061015 и более поздних версий - detach.lua прописывать не нужно, его функциональность уже включена в ioncore, а в cfg_bindings нужно прописать

   defbindings("WFrame.tiled", {
   kpress("Mod4+F","mod_tiling.detach(_sub)"),
   })

Теперь по Win-F можно сделать активное окно плавающим. Кроме того, при использовании detatch.lua или новой версии ion3 в cfg_kludges среди свойств окна можно указать float=true - такие окна будут создаваться сразу как плавающие.

Удобное изменение размеров и перемещение окон

Прописываем в cfg_bindings.lua:

    bdoc("Resize the frame."),
  mdrag("Button1@border", "WFrame.p_resize(_)"),
  mdrag(MOD4.."Button3", "WFrame.p_resize(_)"),

  bdoc("Move the frame."),
  mdrag(MOD4.."Button1", "WFrame.p_move(_)"),

Это позволит перетаскивать окна левой кнопкой мыши при нажатом модификаторе 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"),
dopath("nest_ws")

Например, у меня это подменю добавлено в контекстное меню заголовка окна. Также можно повесить вызов этого меню на горячую клавишу.

Теперь вызываем меню Attach и в нем выбираем пункт WIonWS. В текущем фрейме в качестве окна появляется новое рабочее место. Его можно, как и любое другое разбить на два по вертикали и горизонтали, и делать с ним все, что можно делать с обычным рабочим местом. Но при этом оно остается как бы одним из окон в родительском фрейме. Возможное применение:

  1. Создаю пустой десктоп.
  2. Выбираю Attach->WIonWS. Теперь на одном десктопе ютятся, как два окна, два рабочих места.
  3. Вновь созданное рабочее место разбиваю на два по вертикали.
  4. Сохраняю сессию.

Теперь у меня одна и та же экранная площадь может легко использоваться либо как единое целое, либо разделенное на две части, либо (sic!) двумя способами вместе: на одном рабочем месте (занимающем весь экран) открыто одно окно, а на другом рабочем месте (на том же десктопе) открыто два окна в двух половинках экрана. Это особенно удобно, когда многие привязки окон к рабочим местам определены в cfg_kludges.lua, когда хочется, чтобы одни приложения занимали, скажем, пол-экрана, а другие - весь экран, запускаясь при этом на одном и том же десктопе. Так, я много работаю с gimp, и под него у меня "расчерчен" отдельный десктоп. Изображение по умолчанию открывается в фрейме, занимающем почти весь экран. Но часто приходится работать с двумя изображениями паралельно - и на этом же фрейме у меня есть рабочее место, разделенное надвое по вертикали. При этом в "умолчальном" рабочем пространстве (на почти весь экран) может быть открыто третье изображение.





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds