Одной из привлекательных особенностей в Linux-ах и прочих unix-like системах является то что оконные менеджеры можно менять как перчатки! Все они, конечно, отображают пользовательские программы в графических окнах — но у каждого свои фишки, настройки и особенности, что вызывает непрестанные дискуссии «KDE против Gnome» и подобные.
Для демонстрации вот мини-обзор (и мини-тьюториал) для TWM — это дефолтный оконный менеджер в разных *nix
системах, если ваш дистрибутив не содержал что-то более новомодное. Он очень легковесный, несколько непривычный в управлении — и притом хорошо конфигурируемый. Также в него вы попадаете в некоторых режимах восстановления системы — так что полезно будет узнать как им пользоваться и как из него выйти 🙂
Введение
Далее по тексту мы говорим об оконной системе X Window System которую для краткости зовём «X-Windows» и пр.
В недавней статье говорилось об альтернативах Linux — в частности о FreeBSD — и было вскользь упомянуто что по умолчанию при установке X-Windows система конфигурируется с TWM в качестве оконного менеджера. Возникло ощущение что стоит рассказать о нём подробнее.
Напомним — оконный менеджер это одна из двух частей системы X Windows
, вторая — собственно X-сервер — обычно привлекает меньше внимания (она передаёт оконному менеджеру события от мыши и клавиатуры и в то же время отрисовывает графику по указаниям оконного менеджера).
Во многих системах (включая Ubuntu например) вы можете сконфигурировать несколько оконных менеджеров паралельно и выбирать нужный на странице входа. Или использовать разный для разных пользователей.
В то же время данная статья не подразумевает что нужно срочно переходить на TWM 🙂 Большинство «толстых» современных оконных менеджеров включают дополнительные возможности и библиотеки (из-за чего часто набор дефолтных программ, начиная с «блокнота» в них может различаться). Например интерфейсы вроде Gnome могут содержать поддержку дополнительных операций с тачпадом которых не оказалось в драйвере (наиболее актуально — тапы и скролы например).
TWM — первый взгляд, первые осторожные шаги
Для исторической справки напомним что TWM создан в 1987-1989 годах — он ровесник Windows 2 и 3 версий (кто-то ещё помнит такие). Название расшифровывать неинтересно, хотя понятно что WM означает Window Manager.
Если вам захочется попробовать его живьём то вероятно лучше не пытаться сразу курочить свои X-винды (даже если вы работаете в каких-либо никсах а не на винде/маке) — а запуститься в виртуалке — например, скачать и установить FreeBSD в VirtualBox (с нынешним шустрым интернетом это вряд ли займёт вас надолго) — а в нём выполнить pkg install xorg
чтобы установить X-Windows — и запустить его с помощью startx
. И что за красота откроется нашим глазам?
В данном случае TWM сконфигурирован так, что при старте запускаются сразу 2-3 консольных окошка — и ещё модные часики. Общий стиль напоминает прошлый век, но поскольку целевая аудитория — айтишники а не секретарши, тут каких-то удивительных визуальных эффектов ожидать и не стоит, анимация всем до лампочки.
Заметьте что одно из консольных окон озаглавлено login
— оно «главное» — если вы в нём напишете exit
или закроете его, закроется и вся X-сессия, вы вернётесь в текстовый режим (ниже увидим как это настроено).
Манипуляции с окнами
Покатаем указатель мыши (тачпада) по экрану. Любопытная особенность — окно над которым указатель оказался, сразу становится активным (в фокусе). Например если вы хотите набрать что-то в одном из консольных окошек — наведите на него указатель, иначе нажатия на клавиатуре в него не попадут.
Кнопки закрытия окна нет (по умолчанию) — в полосе заголовка окон только кнопка сворачивания в иконку (слева) и изменения размера (справа). Перетаскивать окна можно привычно — за эту самую полосу заголовка. А вот если вы попытаетесь ресайзить окно с помощью кнопки в правом верхнем углу, вы не сразу поймёте что происходит — пользоваться ею нужно так:
-
нажмите на кнопку ресайза указателем и держите, после чего сдвиньте указатель к той границе окна, которую хотите подвинуть (например, правой или верхней, или к углу) — эта граница (или угол) «захватятся» и дальнейшие движения; если же вы сразу после нажатия кнопки попытаетесь уменьшить окно, ничего интересного происходить не будет 🙂
Запуск приложений тоже может сперва сбить с толку. Попробуем запустить калькулятор 🙂 просто поскольку он (вероятно) установлен по умолчанию. Наведите курсор мыши на терминал и введите команду xcalc
(конечно, нажимаем enter
после каждой команды) — мы с удивлением увидим что калькулятор сразу не появился, но отобразилась «сетка» как бы предлагающая где именно разместить окно.
Вы можете поводить указателем туда-сюда, выбрать (прицелиться!) и шлёпнуть новое окно на выбранное место экрана (нажав кнопку мыши), например так:
Если вы расположили окна так, что они перекрываются, вы опять же имеете шанс удивиться, если попытаетесь «поднять» нижележащее окно наверх. Например если мы открыли калькулятор поверх терминала и попытаемся щёлкнуть в терминал чтобы он «всплыл» — этого не произойдёт — хотя клик ему передаётся, можно даже выделять в нём что-то мышкой и печатать текст. Чтобы окно «всплыло» — нужно кликать по полосе заголовка (или использовать пункты Raise / Lower из меню).
Итак, про Меню
Вы его не видите, а оно есть (как тот суслик). Наведите указатель на свободное пространство вне окон, так чтобы появился крестик похожий на букву X — как на первой картинке выше. Нажмите и удерживайте кнопку — появится вот такая менюшка. Перемещаться по ней нужно продолжая удерживать кнопку (мыши, тачпада).
Первые пункты — для управления окнами (размер, подвинуть, поднять) — это нам понятно. Вот любопытное — тут два пункта для закрытия окон. Delete
просит окно «закрыться по-хорошему» а Kill
предсказуемо «убивает» не спрашивая. Обычно нужен первый вариант — если вы его выберите, курсор изменится на череп с костями — наводите его на нужное (точнее, ненужное уже) окно — и жмёте — оно закроется. Попробуйте закрыть калькулятор. Надеюсь, вам понравится 🙂
В целом после первых пяти минут удивление проходит и приходит понимание что пользоваться можно как и любыми другими «окнами». Сами-то приложения в окошках остаются всё теми же. В частности «скопировать-вставить» работает, хотя и немного непривычно: как только вы выделите текст в каком-нибудь окне, он сразу попадает в буфер обмена (без дополнительных нажатий волшебных клавиш и т.п.) — чтобы его вставить в каком-нибудь другом окне, используйте Shift-Insert
.
Конфигурирование
Чтобы освоиться с настройкой TWM под свои вкусы, попробуем проделать три упражнения:
-
уберем запуск лишних терминалов при старте
-
добавим кнопку закрытия окон
-
добавим в меню команду для запуска браузера
Как водится, файлов настройки может быть больше одного — во-первых файл(ы) настройки самих X-Windows и отдельный файл конфигурации TWM. Во-вторых общие системные файлы или отдельные пользовательские.
Сначала посмотрим на /usr/local/etc/X11/xinit/xinitrc
— откроем его в одном из терминальных окошек с помощью nano
или vi
— и здесь мы с любопытством обнаружим как запускается TWM и программы по умолчанию в нём (прокрутите где-то в конец):
Мы видим что в конце запускается команда twm
и вместе с ней «часики» (xclock
) и целых три терминала. Причем последний (в отличие от остальных) не в бэкграунд — и ему задаётся как раз имя login
. Можно удалить остальные два, например, а этому уменьшить размер до привычных 80x25
.
Естественно редактировать файл в /usr/local...
можно только из-под рута. Если вы экспериментируйте на неизвестной системе и ещё не разобрались как стать рутом, можете скопировать этот файл в пользовательскую папку под именем .xinitrc
— и редактировать его задавая настройки только для своего пользователя.
Конфигурация самого TWM — в файле вроде system.twmrc
— его тоже можно создать в пользовательской директории, или отредактировать общий. Возможно для этого придётся сначала его найти 🙂
$ find / -name '*.twmrc'
В моём случае он оказался в /usr/local/share/X11/twm/system.twmrc
— можно также его скопировать в свою папку и редактировать здесь, чтобы не писать с нуля.
Итак, открываем этот файл опять же с помощью nano
или vim
подправим кое-что. Одной из первых мы увидим секцию куда можно вписать самые общие настройки, и добавим здесь:
RightTitleButton "xlogo11" = f.delete
Тут легко разобраться — RightTitleButton
это название настройки, xlogo11
— иконка для кнопки (отдельный вопрос где они лежат — пока пропустим) — а после знака равенства требуемая функция, в данном случае f.delete
— «аккуратное» закрытие окна.
Крутим дальше — появится секция Color
— тут ничего объяснять наверное не требуется — название элементов и чуть непривычный но понятный 16-ричный синтаксис. Попробуем изменить цвета заголовков и меню например (результат посмотрим на картинке ниже).
Довольно длинная секция с настройками для Button1 / Button2 / Button3
— реакций на нажатия на разных участках (тайтлбарах, свободных местах) и притом можно задавать модифицирующие клавиши. Синтаксис здесь чуть сложнее — но можно догадаться или почитать в man twm
. В качестве упражнения попробуйте добавить вызов меню при щелчке не по свободному пространству, а по тайтлу окна (например, на правую кнопку или на левую с шифтом). Это будет удобно! Подсказка — для этого нужно «обокрасть» уже имеющуюся привязку для клика по свободной области:
Button1 = : root : f.menu "defops"
Наконец внизу мы находим секцию определения меню, начинающуюся со строчки menu "defops"
— причем тут мы догадываемся что defops — просто название менюшки и мы можем задать несколько разных меню — а при вызове их (например при биндинге к кнопке, как выше) указывать разные имена, например по левой и правой кнопке, при клике по свободной зоне или по тайтлу и так далее. Здесь синтаксис незамысловатый — скопируем строчку с XTerm и модифицируем чтобы запускать Firefox (конечно его надо не забыть установить pkg install firefox
например).
"Firefox" f.exec "exec firefox &"
Наконец, давайте сохраним файл и чтобы применить новые настройки, щёлкнем в меню пункт Restart — при этом оконный интерфейс перезапустится лишь частично, все открытые окна программ останутся на том же месте и в том же состоянии, где были.
Картинка ниже примерно изображает результаты нашего мини-эксперимента — цвета изменились, в меню добавился пункт — в тайтлбаре кнопка закрытия.
Заключение
Как сказано выше, эта статья не призывает «срочно менять ваш KDE / Gnome / Unity» на TWM. Напомню, что только более-менее популярных оконных менеджеров существует штук двадцать (не считая новомодной разработки Wayland
— альтернатива X-Windows
вообще). Так что там есть что попробовать. Разнообразные фичи кочуют между менеджерами. Если вы ищете легковесный менеджер для машины с относительно скромными ресурсами — fluxbox
или Xfce
возможно будут чуточку ближе к современности по ощущениям — хотя принципы использования и конфигурирования во многом похожи.
В целом сама идея альтернативных и кастомизируемых оконных менеджеров настолько занимательна, что понемногу нашла своё отражение и в Microsoft Windows, правда не настолько далеко зашла и не снискала равной популярности.
ссылка на оригинал статьи https://habr.com/ru/articles/853776/
Добавить комментарий