Just 4 fun → Ionize It! или Ионизируем себя при помощи ion3
Ion™ is a tiling tabbed window manager designed with keyboard users in mind. О ion3 и его базовой настройке.
Так же хочется заметить, что в ion3 понятие "рабочего стола" заменено на понятие "воркспейса" (workspace), что, в принипе, логично =). Воркспейс разбивается на фреймы (Frame, WSFrame), фреймы состоят из табов (tab). У табов принцип такой же как у вкладок в браузере.
Но меня всегда не устраивала скорость работы различных DE/WM. Гном мне почему-то никогда не нравился. xfce - лучше, очень лучше, но при переключении рабочего стола на тот, где открыт огнелис с 10 вкладками уходило порядка 2+ секунды. Для меня это очень медленно. Пробовал openbox - минималистично, но все теже перекрывающиеся окна. Последним был KDE 4.1. Симпатично, работает довольно шустро, но смена рабочего стола на тот, где открыта опера с 10 вкладками, опять же занимает довольно продолжительное время. Да и мышкой возюкать иногда бывает лениво.
Итак, первое, что нам нужно сделать - это создать файл ~/.ion3/cfg_user со следующим содержимым (далее везде, где будет содержимое конфигурационных фалов, необходимо убирать цифры слева : т.е. вместо "1 dopath("cfg_kludges")" должно быть просто "dopath("cfg_kludges")") :
Последний можно взять вот здесь. Другие скрипты можно найти вот в этом каталоге.
Для того, чтобы легче заполнять конфиги, будет полезным переименовать все фреймы, с которыми вы работаете. Чтобы это сделать нужно:
Таким же образом можно посмотреть текущее имя текущего фрейма.
После того, как вы настроили и переименовали все фреймы необходимо сохранить сессию, чтобы после ребута расположение всех фреймов осталось. Для этого:
Теперь настроим ион так, чтобы приложения при запуске оказывались в нужых нам фреймах. Для начала создаем файл ~/.ion3/cfg_kludges.lua, который как раз за это и отвечает. Воспользуемся моей заготовкой (она у меня храниться в самом начале файла):
Последовательность действий, примерно, такая:
Для каждого окна в ~/.ion3/cfg_kludges.lua должна быть своя секция defwinprop {...}. Причем именно для окна, потому что разные окна одного приложения можно расположить в разных фреймах. Например, участок моего конфига, отвечающего за psi, выглядит так:
К тому же, переключение на воркспейс с открытой оперой - мгновенный. Да вообще переключение на любой воркспейс мгновенный.Использую его уже больше месяца. Периодически заглядываю в хелп, для поиска комбинаций клавиш, для выполнения нужного мне действия, но это бывает редко. Мышу трогать стал намного реже (ибо даже в опере есть управление с клавиатуры), а, считаю, для ноутов это было бы вообще идеально). К сожалению, не имею возможности сравнить с другими twm, ибо это первый, с которым я смог работать сразу искаропки и который мне сразу понравился.
Спасибо Egyptian за идею для названия статьи.
В данной статье использовался материал из [2] и еще откуда-то (сейчас не вспомню, ибо сейчас писал все по памяти), а так же из головы и моих конфигов =) Советую почитать еще по этой ссылке.
Что это?
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 2 3 |
dopath("cfg_kludges") --настройки окон dopath("cfg_bindings") --биндинги клавиш dopath("named_scratchpad") --вроде как полезный скрипт |
Последний можно взять вот здесь. Другие скрипты можно найти вот в этом каталоге.
Для того, чтобы легче заполнять конфиги, будет полезным переименовать все фреймы, с которыми вы работаете. Чтобы это сделать нужно:
- Сделать нужный фрейм активным
- Нажать Alt+F3
- Ввести
mod_query.query_renameframe(_)
- Ввести новое имя фрейма
Таким же образом можно посмотреть текущее имя текущего фрейма.
После того, как вы настроили и переименовали все фреймы необходимо сохранить сессию, чтобы после ребута расположение всех фреймов осталось. Для этого:
- Нажимаем F12
- Вводим
session/save
Теперь настроим ион так, чтобы приложения при запуске оказывались в нужых нам фреймах. Для начала создаем файл ~/.ion3/cfg_kludges.lua, который как раз за это и отвечает. Воспользуемся моей заготовкой (она у меня храниться в самом начале файла):
1 2 3 4 5 6 7 8 |
--xprop | grep -iE "class|role" --defwinprop --{ -- isntance="", -- первое значение WM_CLASS -- class="", -- второе значение WM_CLASS -- role="", -- значение WM_WINDOW_ROLE -- target="" -- целевой workspace, tag, frame or launchpad --} |
Последовательность действий, примерно, такая:
- Запускаем приложение
- Открываем эмулятор терминала
- Вводим
xprop | grep -iE "class|role"
- Тыкаем в нужное приложение
- Сохраняем полученные данные в конфиг
Для каждого окна в ~/.ion3/cfg_kludges.lua должна быть своя секция defwinprop {...}. Причем именно для окна, потому что разные окна одного приложения можно расположить в разных фреймах. Например, участок моего конфига, отвечающего за psi, выглядит так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
defwinprop { isntance="main", class="psi", role="psimain", target="stuff_psi" } defwinprop { isntance="tabs", class="psi", role="", target="stuff_psi" } |
Результат
Вот что я имею в результате:К тому же, переключение на воркспейс с открытой оперой - мгновенный. Да вообще переключение на любой воркспейс мгновенный.Использую его уже больше месяца. Периодически заглядываю в хелп, для поиска комбинаций клавиш, для выполнения нужного мне действия, но это бывает редко. Мышу трогать стал намного реже (ибо даже в опере есть управление с клавиатуры), а, считаю, для ноутов это было бы вообще идеально). К сожалению, не имею возможности сравнить с другими twm, ибо это первый, с которым я смог работать сразу искаропки и который мне сразу понравился.
Немного о плавающих окнах
Есть такая полезная штука в ионе, как плавающие окна - окна, которые открываются поверх всех воркспейсов. Их можно двигать, изменять им размер, а так же использовать как полноценный воркспейс. Открывается эту штука по нажатию Alt+Space и выглядит, примерно, так:Благодарности и ссылки
Спасибо KerneL за то, что нашел мой коммент, где я писал про ион.Спасибо Egyptian за идею для названия статьи.
В данной статье использовался материал из [2] и еще откуда-то (сейчас не вспомню, ибо сейчас писал все по памяти), а так же из головы и моих конфигов =) Советую почитать еще по этой ссылке.