Тайловые оконные менеджеры
Вне зависимости от того, какая рабочая среда установлена на вашем компьютере, в ней наверняка есть какие-то особенности, "фишки", из-за которых вы предпочли именно данную систему. Возможно, вас привлекло богатство программного обеспечения Windows, а может быть — сетевые возможности Linux или интуитивность OSX. Каждая из них хороша по-своему и каждая имеет особенности, отсутствующие у других.
Сегодня речь пойдет об отличительной черте Unix-совместимых систем - тайловых оконных менеджерах. Этот термин означает стиль работы, при котором все пространство экрана занято непересекающимися окнами открытых программ.
Несколько лет назад в web было множество страниц с фреймами. Это были не те IFrame, в которых сейчас выводятся надоедливые рекламные сообщения и всяческие галереи картинок, а отдельные самостоятельные области на web-странице, подгружаемые из разных источников, с независимой прокруткой. Окно браузера "разрезается" на несколько частей прямыми линиями, и каждый получившийся прямоугольник живет своей собственной жизнью, независимо от других. Примерно так же ведут себя тайловые оконные менеджеры, только вместо фреймов web-страницы в этих нарезанных кусочках экрана (тайлах) живут программы. Если, например, вы захотите соорудить на экране подобие "коммандера", можно открыть две папки и дать менеджеру окон команду: "применить схему - два окна на экране, разделены вертикальной границей".
Такой стиль работы сформировался еще во времена текстовой строки Unix, когда система была уже давно многозадачной, а быстрого и удобного интерфейса не было. Разделение экрана на части позволяло использовать всю доступную площадь и отслеживать сразу несколько параллельно работающих процессов. Тайловые менеджеры пережили появление графического интерфейса и даже использовались как основной способ вывода в нескольких новых операционных системах (правда, весьма узкоспециализированных).
А теперь давайте вернемся к системе, которая сейчас имеется на большинстве компьютеров читателей – Microsoft Windows. От тайлового
менеджера в ней окончательно отказались еще в версии 2.0. Реализованное ныне управление окнами становится лучше с каждой версией. В Windows 7 появилось несколько новых возможностей - теперь можно быстро развернуть окно только вертикали или расположить его ровно на половине экрана, справа или слева. Если вам часто приходится пользоваться одновременно двумя программами, это очень удобно, больше нет нужды прибегать к контекстному меню панели задач. Однако это еще не максимум того, что можно "выжать" из оконного менеджера Windows. Правда, ничего больше разработчики в него пока не заложили. Давайте посмотрим, что можно найти на просторах Всемирной паутины, и попробуем использовать найденное.
Бесплатно: hashTWM
https://github.com/ZaneA/HashTWM
Единственный стопроцентный, чистокровный, безупречно идеологически выдержанный тайловый менеджер, который мне удалось обнаружить. После запуска все открытые масштабируемые окна лишаются рамок и заголовков и разбиваются на две группы – основная и дополнительная. В основной группе (справа или вверху экрана) содержится одно (по умолчанию) или более окон программ, в дополнительной – все остальные.
Управление осуществляется исключительно горячими клавишами и аргументами командной строки при запуске. Можно в любой момент перевести текущее окно в обычный режим и обратно, сменить размеры и размещение окон, выйти из тайлового режима (при этом расположение окон сохраняется), поменять количество окон в группах — и все это после небольшой практики делается моментально, несравнимо быстрее по сравнению с попытками сделать примерно то же стандартными средствами.
Попользовавшись программой один день, берусь утверждать, что при всей аскетичности это весьма мощный инструмент, который непременно обретет своих поклонников. Будь у меня возможность повлиять на разработку, я попросил бы добавить поддержку мыши для манипуляций с размерами и размещением окон, например, для сбора окон в стеки с закладками, наподобие страниц в браузере.
Бесплатно: GridMove
http://jgpaiva.dcmembers.com/gridmove.html
Эта утилита провисела у меня в трее примерно полгода, и на данный момент мне обходиться без нее уже сложновато. Программа не является «настоящим» тайловым менеджером. Вместо этого она предлагает размещение окон по нескольким заранее заготовленным схемам. Это не означает, что по вашей команде все программы выстроятся в заранее задуманную мозаику, просто окно, к которому будет применена команда, займет очерченную в схеме область. Способов отдачи команды два – мышь и горячие клавиши.
Управление мышью отличается оригинальностью среди исследованных программ. Окно считается перешедшим в новый режим, если вы потянули за заголовок в самом начале, первые 100 пикселей (впрочем, это можно изменить в настройках). При перетаскивании окна на экране будут подсвечиваться области, которые займет окно, если вы сейчас отпустите кнопку мыши. Единственный раз неудобство у меня возникло, когда я попытался перетащить таким образом первую вкладку в браузере Chrome – вместо перетаскивания вкладки включился тайлинг всего окна браузера. «Хром» пришлось внести в исключения и двигать горячими клавишами. Впрочем, это тоже вполне удобно и не вызывает чувства отторжения.
Программа примечательна еще одной возможностью – очень гибко настраиваемыми схемами раскладки окон. Вы можете отредактировать имеющуюся, создать свою и, что особенно интересно, использовать «плагины» - программы, реагирующие на события GridMove. В поставке уже есть несколько таких утилит, они умеют запоминать положение окна, восстанавливать его обратно, разворачивать окно только по горизонтали и т.д. В схеме можно указать не только «левую половину экрана», но и «справа внизу на 33%+10 пикселей по ширине с отступом 20 пикселей от края экрана и развернуть по вертикали на две трети экрана».
По умолчанию у меня включена схема, которая разбрасывает окна в соответствии с положением цифр на нампаде. Например, «Win+9» - окно в верхнюю правую четверть экрана, а «Win+5» - окно по центру экрана, размером 2/3 высоты и ширины от текущего разрешения дисплея.
Для меня GridMove стал фаворитом за простоту – после первого дня использования пальцы сами стали нажимать нужные клавиши. Раскладка перетаскиванием за область заголовка – это вообще функция, которую бы мне хотелось увидеть как штатное обновление Windows. Времени на привыкание вообще не требуется, а вот отвыкнуть уже практически нереально.
Бесплатно: WinSplit
http://winsplit-revolution.com/
Для меня это — ближайший конкурент GridMove, которому для полного счастья не хватало только удобного перетаскивания за заголовок.
Масштабирование горячими клавишами у WinSplit даже удобнее, чем у GridMove – настройки закрепляют за одним хоткеем несколько разных положений, которые можно перебирать, последовательно нажимая комбинацию клавиш. Например, несколько нажатий «Ctrl+Alt+NumPad1» последовательно развернут окно в нижнем правом углу (половина высоты десктопа) на треть, половину и две трети ширины экрана. Сочетание «Ctrl+Alt+F» включает режим Fusion, когда окно прилипает к одной из сторон экрана, а ширину/высоту, то есть положение «не прилипшего» края, можно тут же отрегулировать курсорными кнопками.
Можно с помощью тех же горячих клавиш развернуть окно по вертикали/горизонтали, поместить поверх прочих окон, задать прозрачность и т.д. По моему скромному мнению, это уже лишнее, но иметь такую возможность не помешает.
Управление окнами с помощью мыши здесь называется Drag’n’Go и реализовано почти так же удобно, как в GridMove. Единственное отличие – переход в тайловый режим при перетаскивании окна выбирается не областью, за которую вы «ухватились», а сочетанием клавиш-модификаторов. По умолчанию это Ctrl+Alt, но можно назначить свои. Я сначала поставил Win, а после и вовсе отключил модификаторы. Все равно окна у меня почти никогда не перекрываются, так что любое перетаскивание окна можно считать попыткой расположить его в тайлах.
Единственный минус, который я смог найти, – программа при установке забирает под себя много популярных сочетаний клавиш. Впрочем, их можно переназначить, в остальном управление с клавиатуры – лучшее среди всех рассмотренных. Неплохо было бы также добавить область окна для перетаскивания, как в GridMove — и тогда WinSplit был бы практически идеальным инструментом.
Приводить скриншоты этих двух программ бессмысленно, в этом плане они похожи на DropBox – вы не видите их, они просто работают, и делают это хорошо.
Shareware:WindowSizer
http://www.windowsizer.com
Эта программа уже является «настоящим» тайловым менеджером, который не просто располагает окна, но занимает ими по возможности весь экран. На приведенном скриншоте – один из вариантов раскладки окон, получившихся при включении режима QuickArrange. Если сейчас, например, растянуть окно Total Commander (на скриншоте справа внизу), то остальные окна соответствующим образ масштабируются, чтобы не нарушилась целостность «мозаики». Попытка перетянуть одно окно на другое приведет к тому, что окна обменяются местами. Например, окно браузера, перетянутое на Word, займет левую половину экрана, а текстовый редактор масштабируется и переместится в верхний правый угол дисплея. Такое поведение будет только у окон, открытых на момент команды тайлового менеджера.
Как и у прочих утилит, среди которых мне пришлось выбирать, у этой есть свои «изюминки». Понравилась возможность приблизительно разнести окна по экрану, а затем собрать их в живую мозаику одним прикосновением к клавиатуре.
Впрочем, первое впечатление не было настолько хорошим, чтобы пользоваться программой постоянно и, тем более, покупать ее. После запуска пару раз возникали проблемы с искажением панелей в офисных программах, а настройки довольно бедны – настройка горячих клавиш ограничивает выбором… нет, не самих клавиш, а только модификаторов Ctrl-Alt либо Ctrl-Shift. Для платной программы, на мой взгляд, WindowSizer пока сыровата и слишком бедна возможностями.
Shareware: MaxTo
http://www.maxto.net/
Как понятно из названия, программа позволяет разворачивать окна не на весь экран, а так, как будет угодно пользователю. Единственное, чем этот продукт выделился из общего ряда – здесь есть хоть какой-то простенький визуальный редактор, позволяющий накромсать рабочий стол на куски- тайлы.
Кроме этого, похвастаться программе особенно нечем. Управление окнами при помощи мыши почему-то работать не захотело. Будь эта поделка единственным вариантом, ею вполне можно было бы пользоваться, но как ни странно, платные программы показали при проверке худшие результаты по удобству использования, чем их свободные аналоги.
Бесплатно: Bug.n
http://www.autohotkey.net./~joten/
По сути, Bug.n является набором скриптов для программы Autohotkey. При запуске от пользователя скрывается панель задач, а сами окна (по крайней мере, те, у которых были стандартные декораторы), лишаются заголовков и располагаются в тайлы. Взамен панели задач предлагается собственный простенький тулбар.
Не могу сказать, что меня впечатлила реализация, но сама идея понравилась – не зашивать программу намертво в исполнимый код, а дать пользователю возможность что-то переделать. Экспериментировать с интерпретируемыми скриптами куда проще, чем пересобирать исходники. Мне эта вещь очень напомнила тайловые менеджеры в Linux, с которых, собственно, и начались мои поиски.
Итого
За рамками статьи остались другие интересные аддоны к оконному менеджеру Windows, такие как WindowTabs, складывающий любые окна в стеки с закладками (как страницы в Chrome), разнообразные утилиты, добавляющие элементы в заголовки окон, реализующие функции RollUp, свертывание в трей, прикрепление к десктопу и «поверх всех окон» и т.п.
Что же касается предмета рассмотрения, то мои фавориты – GridMove, который я использую сейчас, и WinSplit, завороживший меня реализацией горячих клавиш, удобнейшей из всех рассмотренных. Именно с одной из этих программ я рекомендую вам познакомиться поближе.
Поляков Александр, Lecosson@mail.ru
Сегодня речь пойдет об отличительной черте Unix-совместимых систем - тайловых оконных менеджерах. Этот термин означает стиль работы, при котором все пространство экрана занято непересекающимися окнами открытых программ.
Несколько лет назад в web было множество страниц с фреймами. Это были не те IFrame, в которых сейчас выводятся надоедливые рекламные сообщения и всяческие галереи картинок, а отдельные самостоятельные области на web-странице, подгружаемые из разных источников, с независимой прокруткой. Окно браузера "разрезается" на несколько частей прямыми линиями, и каждый получившийся прямоугольник живет своей собственной жизнью, независимо от других. Примерно так же ведут себя тайловые оконные менеджеры, только вместо фреймов web-страницы в этих нарезанных кусочках экрана (тайлах) живут программы. Если, например, вы захотите соорудить на экране подобие "коммандера", можно открыть две папки и дать менеджеру окон команду: "применить схему - два окна на экране, разделены вертикальной границей".
Такой стиль работы сформировался еще во времена текстовой строки Unix, когда система была уже давно многозадачной, а быстрого и удобного интерфейса не было. Разделение экрана на части позволяло использовать всю доступную площадь и отслеживать сразу несколько параллельно работающих процессов. Тайловые менеджеры пережили появление графического интерфейса и даже использовались как основной способ вывода в нескольких новых операционных системах (правда, весьма узкоспециализированных).
А теперь давайте вернемся к системе, которая сейчас имеется на большинстве компьютеров читателей – Microsoft Windows. От тайлового
менеджера в ней окончательно отказались еще в версии 2.0. Реализованное ныне управление окнами становится лучше с каждой версией. В Windows 7 появилось несколько новых возможностей - теперь можно быстро развернуть окно только вертикали или расположить его ровно на половине экрана, справа или слева. Если вам часто приходится пользоваться одновременно двумя программами, это очень удобно, больше нет нужды прибегать к контекстному меню панели задач. Однако это еще не максимум того, что можно "выжать" из оконного менеджера Windows. Правда, ничего больше разработчики в него пока не заложили. Давайте посмотрим, что можно найти на просторах Всемирной паутины, и попробуем использовать найденное.
Бесплатно: hashTWM
https://github.com/ZaneA/HashTWM
Единственный стопроцентный, чистокровный, безупречно идеологически выдержанный тайловый менеджер, который мне удалось обнаружить. После запуска все открытые масштабируемые окна лишаются рамок и заголовков и разбиваются на две группы – основная и дополнительная. В основной группе (справа или вверху экрана) содержится одно (по умолчанию) или более окон программ, в дополнительной – все остальные.
Управление осуществляется исключительно горячими клавишами и аргументами командной строки при запуске. Можно в любой момент перевести текущее окно в обычный режим и обратно, сменить размеры и размещение окон, выйти из тайлового режима (при этом расположение окон сохраняется), поменять количество окон в группах — и все это после небольшой практики делается моментально, несравнимо быстрее по сравнению с попытками сделать примерно то же стандартными средствами.
Попользовавшись программой один день, берусь утверждать, что при всей аскетичности это весьма мощный инструмент, который непременно обретет своих поклонников. Будь у меня возможность повлиять на разработку, я попросил бы добавить поддержку мыши для манипуляций с размерами и размещением окон, например, для сбора окон в стеки с закладками, наподобие страниц в браузере.
Бесплатно: GridMove
http://jgpaiva.dcmembers.com/gridmove.html
Эта утилита провисела у меня в трее примерно полгода, и на данный момент мне обходиться без нее уже сложновато. Программа не является «настоящим» тайловым менеджером. Вместо этого она предлагает размещение окон по нескольким заранее заготовленным схемам. Это не означает, что по вашей команде все программы выстроятся в заранее задуманную мозаику, просто окно, к которому будет применена команда, займет очерченную в схеме область. Способов отдачи команды два – мышь и горячие клавиши.
Управление мышью отличается оригинальностью среди исследованных программ. Окно считается перешедшим в новый режим, если вы потянули за заголовок в самом начале, первые 100 пикселей (впрочем, это можно изменить в настройках). При перетаскивании окна на экране будут подсвечиваться области, которые займет окно, если вы сейчас отпустите кнопку мыши. Единственный раз неудобство у меня возникло, когда я попытался перетащить таким образом первую вкладку в браузере Chrome – вместо перетаскивания вкладки включился тайлинг всего окна браузера. «Хром» пришлось внести в исключения и двигать горячими клавишами. Впрочем, это тоже вполне удобно и не вызывает чувства отторжения.
Программа примечательна еще одной возможностью – очень гибко настраиваемыми схемами раскладки окон. Вы можете отредактировать имеющуюся, создать свою и, что особенно интересно, использовать «плагины» - программы, реагирующие на события GridMove. В поставке уже есть несколько таких утилит, они умеют запоминать положение окна, восстанавливать его обратно, разворачивать окно только по горизонтали и т.д. В схеме можно указать не только «левую половину экрана», но и «справа внизу на 33%+10 пикселей по ширине с отступом 20 пикселей от края экрана и развернуть по вертикали на две трети экрана».
По умолчанию у меня включена схема, которая разбрасывает окна в соответствии с положением цифр на нампаде. Например, «Win+9» - окно в верхнюю правую четверть экрана, а «Win+5» - окно по центру экрана, размером 2/3 высоты и ширины от текущего разрешения дисплея.
Для меня GridMove стал фаворитом за простоту – после первого дня использования пальцы сами стали нажимать нужные клавиши. Раскладка перетаскиванием за область заголовка – это вообще функция, которую бы мне хотелось увидеть как штатное обновление Windows. Времени на привыкание вообще не требуется, а вот отвыкнуть уже практически нереально.
Бесплатно: WinSplit
http://winsplit-revolution.com/
Для меня это — ближайший конкурент GridMove, которому для полного счастья не хватало только удобного перетаскивания за заголовок.
Масштабирование горячими клавишами у WinSplit даже удобнее, чем у GridMove – настройки закрепляют за одним хоткеем несколько разных положений, которые можно перебирать, последовательно нажимая комбинацию клавиш. Например, несколько нажатий «Ctrl+Alt+NumPad1» последовательно развернут окно в нижнем правом углу (половина высоты десктопа) на треть, половину и две трети ширины экрана. Сочетание «Ctrl+Alt+F» включает режим Fusion, когда окно прилипает к одной из сторон экрана, а ширину/высоту, то есть положение «не прилипшего» края, можно тут же отрегулировать курсорными кнопками.
Можно с помощью тех же горячих клавиш развернуть окно по вертикали/горизонтали, поместить поверх прочих окон, задать прозрачность и т.д. По моему скромному мнению, это уже лишнее, но иметь такую возможность не помешает.
Управление окнами с помощью мыши здесь называется Drag’n’Go и реализовано почти так же удобно, как в GridMove. Единственное отличие – переход в тайловый режим при перетаскивании окна выбирается не областью, за которую вы «ухватились», а сочетанием клавиш-модификаторов. По умолчанию это Ctrl+Alt, но можно назначить свои. Я сначала поставил Win, а после и вовсе отключил модификаторы. Все равно окна у меня почти никогда не перекрываются, так что любое перетаскивание окна можно считать попыткой расположить его в тайлах.
Единственный минус, который я смог найти, – программа при установке забирает под себя много популярных сочетаний клавиш. Впрочем, их можно переназначить, в остальном управление с клавиатуры – лучшее среди всех рассмотренных. Неплохо было бы также добавить область окна для перетаскивания, как в GridMove — и тогда WinSplit был бы практически идеальным инструментом.
Приводить скриншоты этих двух программ бессмысленно, в этом плане они похожи на DropBox – вы не видите их, они просто работают, и делают это хорошо.
Shareware:WindowSizer
http://www.windowsizer.com
Эта программа уже является «настоящим» тайловым менеджером, который не просто располагает окна, но занимает ими по возможности весь экран. На приведенном скриншоте – один из вариантов раскладки окон, получившихся при включении режима QuickArrange. Если сейчас, например, растянуть окно Total Commander (на скриншоте справа внизу), то остальные окна соответствующим образ масштабируются, чтобы не нарушилась целостность «мозаики». Попытка перетянуть одно окно на другое приведет к тому, что окна обменяются местами. Например, окно браузера, перетянутое на Word, займет левую половину экрана, а текстовый редактор масштабируется и переместится в верхний правый угол дисплея. Такое поведение будет только у окон, открытых на момент команды тайлового менеджера.
Как и у прочих утилит, среди которых мне пришлось выбирать, у этой есть свои «изюминки». Понравилась возможность приблизительно разнести окна по экрану, а затем собрать их в живую мозаику одним прикосновением к клавиатуре.
Впрочем, первое впечатление не было настолько хорошим, чтобы пользоваться программой постоянно и, тем более, покупать ее. После запуска пару раз возникали проблемы с искажением панелей в офисных программах, а настройки довольно бедны – настройка горячих клавиш ограничивает выбором… нет, не самих клавиш, а только модификаторов Ctrl-Alt либо Ctrl-Shift. Для платной программы, на мой взгляд, WindowSizer пока сыровата и слишком бедна возможностями.
Shareware: MaxTo
http://www.maxto.net/
Как понятно из названия, программа позволяет разворачивать окна не на весь экран, а так, как будет угодно пользователю. Единственное, чем этот продукт выделился из общего ряда – здесь есть хоть какой-то простенький визуальный редактор, позволяющий накромсать рабочий стол на куски- тайлы.
Кроме этого, похвастаться программе особенно нечем. Управление окнами при помощи мыши почему-то работать не захотело. Будь эта поделка единственным вариантом, ею вполне можно было бы пользоваться, но как ни странно, платные программы показали при проверке худшие результаты по удобству использования, чем их свободные аналоги.
Бесплатно: Bug.n
http://www.autohotkey.net./~joten/
По сути, Bug.n является набором скриптов для программы Autohotkey. При запуске от пользователя скрывается панель задач, а сами окна (по крайней мере, те, у которых были стандартные декораторы), лишаются заголовков и располагаются в тайлы. Взамен панели задач предлагается собственный простенький тулбар.
Не могу сказать, что меня впечатлила реализация, но сама идея понравилась – не зашивать программу намертво в исполнимый код, а дать пользователю возможность что-то переделать. Экспериментировать с интерпретируемыми скриптами куда проще, чем пересобирать исходники. Мне эта вещь очень напомнила тайловые менеджеры в Linux, с которых, собственно, и начались мои поиски.
Итого
За рамками статьи остались другие интересные аддоны к оконному менеджеру Windows, такие как WindowTabs, складывающий любые окна в стеки с закладками (как страницы в Chrome), разнообразные утилиты, добавляющие элементы в заголовки окон, реализующие функции RollUp, свертывание в трей, прикрепление к десктопу и «поверх всех окон» и т.п.
Что же касается предмета рассмотрения, то мои фавориты – GridMove, который я использую сейчас, и WinSplit, завороживший меня реализацией горячих клавиш, удобнейшей из всех рассмотренных. Именно с одной из этих программ я рекомендую вам познакомиться поближе.
Поляков Александр, Lecosson@mail.ru
Компьютерная газета. Статья была опубликована в номере 08 за 2011 год в рубрике soft