l1feh4ck3r 04.03.2009 14:13
Оконные менеджеры — Ionize It! или Ионизируем себя при помощи ion3
Ion™ is a tiling tabbed window manager designed with keyboard users in mind. О ion3 и его базовой настройке.Что это?Ion (или IonWM) — фреймовый оконный менеджер для UNIX-подобных операционных систем, разработанный в первую очередь для удобства управления окнами без мыши. Проблема навигации в Ионе решается путём разделения экрана на неперекрывающиеся фреймы. Таким образом перемещение между окнами при помощи клавиатуры становится быстрым и удобным. В каждом фрейме может находиться несколько клиентских окон, обозначенных вкладками. Начиная с версии 2, Ion поддерживает скриптинг на языке Lua.<1>
Так же хочется заметить, что в ion3 понятие "рабочего стола" заменено на понятие "воркспейса" (workspace), что, в принипе, логично =). Воркспейс разбивается на фреймы (Frame, WSFrame), фреймы состоят из табов (tab). У табов принцип такой же как у вкладок в браузере.
Моя причина переходаНачну с того, что у меня не самая слабая домашняя система: Athlon64 x2, 2гб оперативы, GeForce9800GT.
Но меня всегда не устраивала скорость работы различных DE/WM. Гном мне почему-то никогда не нравился. xfce - лучше, очень лучше, но при переключении рабочего стола на тот, где открыт огнелис с 10 вкладками уходило порядка 2+ секунды. Для меня это очень медленно. Пробовал openbox - минималистично, но все теже перекрывающиеся окна. Последним был KDE 4.1. Симпатично, работает довольно шустро, но смена рабочего стола на тот, где открыта опера с 10 вкладками, опять же занимает довольно продолжительное время. Да и мышкой возюкать иногда бывает лениво.
Быстрый стартИ тут я решил поставить себе ion3. Отступление: надеюсь, что вы тоже. Если нет - дочитайте до конца и может решите ;)
Самое необходимое - хоткеи
Первое, что пришлось сделать - запомнить несколько хоткиев (потому, что почти все управление окнами - с клавиатуры). К ним относятся:F2 - запуск эмулятора терминала
F3 - запуск приложения (внизу появиться строчка для ввода)
Alt+c - закрыть текущий фрейм (если фреймы кончились, то закрывается весь воркспейс)
Alt+F9 - создать новый воркспейс
Alt+1 - Alt+0 - переключение на воркспейс с соответствующим номером
Alt+Tab - сделать следующий по горизонтали фрейм активным
Alt+n, Alt+p - сделать следующий/предыдущий по вертикали фрейм активным
Alt+k, p(n) (нажать одновременно Alt и k, затем нажать p(или n)) - сделать предыдущий(следующий) таб активным
Alt+k, 1(2..9) - сделать активным таб с номером 1 (2..9)
F12 - вызыват главное меню
О роли мыши
Для управлениями фреймами так же можно пользоваться мышой. Например, зажав Alt+ПКМ, можно изменять размеры текущего фрейма. По нажатию ПКМ на заголовке выскакивает меню управления воркспейсом/фреймом.Немного конфигурилова
Вот вы уже понасоздавали воркспейсов, разбили их так, как вам нравиться, поназапускали приложений. Погодите - не перезагружайтесь, ибо все изменения пропадут. Пришло самое время поработать с конфигами.Итак, первое, что нам нужно сделать - это создать файл ~/.ion3/cfg_user со следующим содержимым (далее везде, где будет содержимое конфигурационных фалов, необходимо убирать цифры слева : т.е. вместо "1 dopath("cfg_kludges")" должно быть просто "dopath("cfg_kludges")") :
1 |
dopath("cfg_kludges") --настройки окон
|
Последний можно взять вот здесь. Другие скрипты можно найти вот в этом каталоге.
Для того, чтобы легче заполнять конфиги, будет полезным переименовать все фреймы, с которыми вы работаете. Чтобы это сделать нужно:
Сделать нужный фрейм активным
Нажать Alt+F3
Ввести
1 |
|
Ввести новое имя фрейма
Таким же образом можно посмотреть текущее имя текущего фрейма.
После того, как вы настроили и переименовали все фреймы необходимо сохранить сессию, чтобы после ребута расположение всех фреймов осталось. Для этого:
Нажимаем F12
Вводим
1 |
|
Теперь настроим ион так, чтобы приложения при запуске оказывались в нужых нам фреймах. Для начала создаем файл ~/.ion3/cfg_kludges.lua, который как раз за это и отвечает. Воспользуемся моей заготовкой (она у меня храниться в самом начале файла):
Последовательность действий, примерно, такая:
Запускаем приложение
Открываем эмулятор терминала
Вводим
1 |
|
Тыкаем в нужное приложение
Сохраняем полученные данные в конфиг
Для каждого окна в ~/.ion3/cfg_kludges.lua должна быть своя секция defwinprop {...}. Причем именно для окна, потому что разные окна одного приложения можно расположить в разных фреймах. Например, участок моего конфига, отвечающего за psi, выглядит так:
Результат Вот что я имею в результате:
К тому же, переключение на воркспейс с открытой оперой - мгновенный. Да вообще переключение на любой воркспейс мгновенный.Использую его уже больше месяца. Периодически заглядываю в хелп, для поиска комбинаций клавиш, для выполнения нужного мне действия, но это бывает редко. Мышу трогать стал намного реже (ибо даже в опере есть управление с клавиатуры), а, считаю, для ноутов это было бы вообще идеально). К сожалению, не имею возможности сравнить с другими twm, ибо это первый, с которым я смог работать сразу искаропки и который мне сразу понравился.
Немного о плавающих окнахЕсть такая полезная штука в ионе, как плавающие окна - окна, которые открываются поверх всех воркспейсов. Их можно двигать, изменять им размер, а так же использовать как полноценный воркспейс. Открывается эту штука по нажатию Alt+Space и выглядит, примерно, так:
Благодарности и ссылки Спасибо KerneL за то, что нашел мой коммент, где я писал про ион.
Спасибо Egyptian за идею для названия статьи.
В данной статье использовался материал из <2> и еще откуда-то (сейчас не вспомню, ибо сейчас писал все по памяти), а так же из головы и моих конфигов =) Советую почитать еще по этой ссылке.
xT 04.03.2009 14:28 #
+ 4 -
Не пойму, зачем нужен аудио-плеер постоянно на экране. Разве это улучшает делопроизводство? :) Имхо, лучше убрать его на другой виртуальный десктоп, чтобы место для других окон освободить.
Они и так на другом ) Еще на отдельном опера открыта, а на третьем doublecmd и консолька.
На первом скриншоте я вижу, что он не на отдельном =) Ну да ладно, это никчемные придирки
Статья гуд =)
Статья гуд =)
Не знаю как у вас, а у нас "плавающих окон" - scratchpad'ов бывает много и разных, а не один. И открываются они по любым мыслимым клавишам.
Круто вам. А мне больше не надо, поэтому только одно ) У меня в нем обычно консоль с рутом сидит )
Ну я клоню к тому что в статье написано что плавающее окно бывает только одно, что правдой не является.
Тогда прошу вас написать про расширеную настройку иона ;) Биндинги клавиш там и тп.
Кстати, а можно переназначить стандартные комбинации? А то напрягает, что некоторые комбинации совпадаются с используемыми в программах и не удобно становиться пользоваться.
Кстати, а можно переназначить стандартные комбинации? А то напрягает, что некоторые комбинации совпадаются с используемыми в программах и не удобно становиться пользоваться.
Уже нашел. В дебиане надо сделать так:
И в нем уже менять стандартные мета-кнопки.
cp /etc/defaults/ion3 ~/.ion3/cfg_debian.lua
И в нем уже менять стандартные мета-кнопки.
Мб. Мне раздел Я рекомендую не очень нравиться - там бойда какая-та по большей части...
Если посты будут публиковаться в других блогах, там и будет бойда какая-то по большей части.
Спасибо за статью, непременно попробую ion. Кстати, fluxbox тоже поддерживает табы (посмотреть можно тут, не реклама, пример) и шустро работает. Я к табам быстро привык, и вряд ли отвыкну)
Для неограниченного количества т.н. скратчпадов как раз и используется упомянутый в статье скрипт named_scratchpad. Вообще замечательная вещь. Очень удобно распихать по ним IM, плеер, системный монитор, калькулятор, словарь и т.д. и вызывать по определенной комбинации, как упоминал a1fred.
Пример вызова такого скрачпада (у меня прописан в пользовательском файле настроек):
kpress("XF86AudioMedia", "named_scratchpad(_, 'player_sp')"),
Плюс ~/.ion3/cfg_kludges.lua нужно прописать настройки для нужного приложения, чтобы оно открывалось на воркспейсе с названием player_sp (для данного примера)
Пример вызова такого скрачпада (у меня прописан в пользовательском файле настроек):
kpress("XF86AudioMedia", "named_scratchpad(_, 'player_sp')"),
Плюс ~/.ion3/cfg_kludges.lua нужно прописать настройки для нужного приложения, чтобы оно открывалось на воркспейсе с названием player_sp (для данного примера)