Оконный менеджер ubuntu. Что такое оконный менеджер? Оконный менеджер в окружении рабочего стола

Сейчас я вам расскажу про мой любимый оконный менеджер.

Я пробовал различные:

KDE , который визуально мне совсем не заходит. Такое ощущение, что разработчики хотели скопировать интерфейс мака, но получилось у них очень плохо.

Gnome , который в последнее время превратился будто бы в оболочку для планшета, так как там сейчас просто огромные кнопки и все элементы управления. Такое ощущение что все масштабировали на 300%. Из-за этого пропадает большое количество свободного места.

Unity мне тоже как-то не понравился.

XFCE на мой взгляд не плох, но при этом его UI оставляет желать лучшего. Мне нравится интерфейс MacOS из-за того, что там везде очень правильные соотношения всех элементов друг к другу. Нет слишком больших или слишком маленьких кнопок. Везде правильные отступы внутри окна. Из-за этого все выглядит очень гармоничным. Вот именно этого сейчас не хватает XFCE. Хотя если вы не перфекционист, то вам пойдет.

Кроме привычных WM, есть еще и тайлинговые. Это такие WM в которых окна не накладываются друг на друга.

Awesome , мне он нравится. Но Lua немного смущает. Но если вдруг вы видите преимущества Awesome над i3wm, то расскажите мне о них пожалуйста, я с удовольствием бы с вами поговорил.

DWM , который не плох, но как-то довольно странно то, что его нужно перекомпилировать каждый раз при смене конфига. Ну, кому-то возможно окей. Но я довольно часто меняю что-то в своем интерфейсе или вижу что-то прикольное и хочу добавить. И меня очень утомляет вот эта возня. Хотя мне он очень нравится, за то, что он очень маленький и практически никогда не глючит. И сама suckless философия мне очень нравится. И я обязательно вернусть к нему в будущем и попробую его еще раз. Так же, ребята. Если вы используете DWM и считаете его лучше чем i3 то напишите мне, я бы с удовольствием с вами пообщался. Пишите мне куда угодно.

Xmonad . Но он как-то мне не зашел. Конфиг на Lua еще более менее. Но конфиг написанный на хаскеле это как-то не по людски.

i3 в данный момент мне нравится больше остальных. И мне вообще нравится идеология тайлинговых менеджеров. Нравится из-за того, что во-первых у тебя очень упрощается работа с окнами. Тебе не нужно постоянно что-то передвигать мышкой и что-то постоянно приподнимать или опускать в третьем измерении.

Во-вторых мне это нравится тем, что не пропадает зря место на твоем экране. У тебя просто нет пустого места. Никогда не надо растягивать окна. Ну и еще место экономится за счет того что у окон больше нет бордеров.

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

А тут бах и другой подход. Сначала это кажется странным.

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

В общем вам надо попробовать. Вы либо полюбите либо возненавидите.

Давайте уже перейдем к самому i3.

Как я уже сказал окно тут занимает всегда полное пространство


А при открытии нового окна пространство делится пополам. Открывать вы можете сколько угодно окон.


Вы можете сами решать как делить пространство.


Так же вы можете изменять размеры каждого окна.

Это основной режим i3, но так же есть еще два дополнительных. При одном окна ведут себя как списки а при втором накладывайтся друг на друга

Но если вам вдруг очень очень нужно, то вы можете сделать какое-либо окно плавающим.


В i3 есть несколько рабочих столов. И вы можете легко на них переключаться по хоткею, который вы задали.

Так же очень удобным является то, что вы можете задать жестко чтобы какое-то окно открывалось на нужном вам виртуальном столе.

И вы всегда будете точно знать что у вас где находится. У меня, например, Slack и Telegram всегда находятся в 9 виртуальном столе. Мой проект на go находится в 8 виртуальном столе. А мой проект на Node.js находится в 7 виртуальном столе. Вся моя личная база знаний всегда открыта в 6 виртуальном столе. На первом виртуальном столе у меня всегда браузер. А на втором виртуальном столе у меня всегда вся информация по работе.

Но если нужно, то я само собой могу это все менять.

Таким образом я никогда не путаюсь. Я всегда знаю где у меня что.

Не важно, даже если закрыто окно, при открытии я знаю где оно откроется.

Запуск программ

Теперь о том как запускать программы. Есть два способа. Первый это хоткеи. То что вы запускаете чаще всего вы можете забиндить. Например у меня по CTRL+SHIFT+P запускается калькулятор. Так же на кнопках повешено включение и выключение VPN. Или создание скриншота. В общем все, что вы захотите.

А все остальное можно запускать через штуку, которая похоже на спотлайт в маке. Она называется Rofi.


Просто нажимаем контрол и пробел и вызывается окно. Начинаем вводить что-то нажимаем ентер. Если программа закреплена за каким-то экраном, то она там и откроется, если нет, то откроется на текущем виртуальном столе.

Если вам нужно, то вы можете переместить программу на другой виртуал32ьный стол.

Так же i3 отвечает у вас за всю автозагрузку программ. И делается это довольно легко в конфиге.

Bar

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

Давайте расскажу про Polybar.

Справа вы видите значки, это обычный трей. Слева вы видите цифры, это как раз виртуальные столы.

А все что между ними это модули. Которые вы загружаете. Модули по сути это просто скрипты. не важно на чем. На баше или на пайтоне. Вы можете использовать что угодно.

Вот что делают мои

  • Показывают корзину, очищают ее при левом клике и открывают ее при правом клике;
  • Показывают свободное место на диске;
  • Показывает свободное место на моем рейд массиве на другом сервере в моей локалке;
  • Показывает погоду, и время через которое встанет или зайдет солнце.
  • Показывает загрузку процессора. Значения за минуту, за пять минут и за 15 минут;
  • Показывает количество доступных обновлений
  • Показывает цену на биткоин
  • Показывает цену на доллар
  • Показывает айпишник
  • Штука, которая регулирует громкость
  • Загруженность, температура процессора и обьем занятой памяти
  • Заряд батареи

Ну а вообще вы можете вывести сюда абсолютно любую информацию которую только захотите. Можно, например, вывести информацию из JSON или из вашей гугл-таблицы.

Здравствуйте! Прочитав недавно статью про оконные менеджеры в Linux, мне захотелось рассказать всем о менеджере, который был там упомянут - «awesome».
Это тайлинговый windows manager для unix (linux, freebsd, openbsd, netbsd).

Описание

Awesome WM - тайлинговый wm, с возможностями быть и композитным. Это одна из его особенностей, часто пользователям требуется компактность (тайлинговая сторона этого WM), но и иногда можно и поработать в обычном режиме (композитном). Он очень легок, не нагружает процессор, и пространство экрана используется очень размерено и пустых пространств не остается (в тайлинговом режиме).
Настраивается он при помощи конфигурационного файла, на скриптовом языке Lua. Есть поддержка плагинов, которые тоже, в свою очередь, написаны на Lua.

Установка

Установить его очень просто, например на Arch Linux просто напишите
sudo pacman -S awesome vicious
Или на Debian based
sudo apt-get install awesome awesome-extra
Пакет «vicious» содержит в себе базовые плагины, которые Вы в дальнейшем можете использовать.

Далее требуется прописать его загрузки при загрузке X Window System. Это прописывается в файле, находящемся в домашнем каталоге, ".xinitrc".
#!/bin/sh exec awesome
Перезагружаемся и появляется это wm.

Первое знакомство



Вот так выглядит ваша сессия при первом включении. Казалось бы, как в этом работать и что тут делать? На самом деле все просто, когда поймешь ее систему. Все действия с окнами выполняются с помощью хоткеев. По умолчанию они таковы (все это можно прочитать в «man awesome», сам текст взят с gentoo wiki):

super + number переход на другой тэг, где тэг это номер клавиши, точнее его положение (проводя аналогию с другими wm, тэг = вирт. рабочий стол).
super + shift + number перенести текущее окно на другой тэг.
super + j, super+k переход между окнами.
super + shift + j или super + shift + k поменять местами два окна.
super + Space изменение отображения окон. (В awesome очень много видов отображений - тайлинговые: вертикально, горизонтально; композитные - можно мышкой таскать; приложение в фокусе на весь экран и пр.)
super + Enter запустить терминал.
super + r запуск программы.
super+shift+c закрыть окно.
super+shift+r перезапустить awesome.
super+shift+q выйти из awesome.

Несомненно кому-то они не удобны. Но ведь мы можем все изменить! Поэтому переходим к конфигурационному файлу.

Конфигурационный файл

Предупреждение, для редактирования его нужны хотя бы небольшие навыки в программировании или написании скриптов.
Глобальный конфиг файл находится в системе в "/etc/xdg/awesome/rc.lua", но его лучше не изменять, тк если он не правильный, то wm не запустится. Поэтому сделаем свой.
mkdir ~/.config/awesome cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
И будем изменять уже непосредственно его.
Прежде всего хотелось бы изменить некоторые клавиши.
Хоткеи находятся в секции
" - {{{ Key bindings "
Изменять все просто.
modkey - это наша клавиша super (с логотипом windows на клавиатуре).
Например:
awful.key({ modkey, "Shift" }, "q", awesome.quit),
Это строчка говорит, что super + Shift + q заставит awesome закрыться.
Допустим, мы хотим оставить тоже самое, но без shift, тогда будет
awful.key({ modkey, }, "q", awesome.quit), Или например просто по клавише Esc (Это лишь пример!)
awful.key({}, "Esc", awesome.quit), Думаю, логика понятна.
Так, с клавишами разобрались. Теперь стоит настроить глобальные переменные.
Эта секция находится в начале. (Далее мои собственные настройки, которые вы можете, конечно же, изменить)
terminal = "terminal" browser = "chromium-dev" editor = os.getenv("vim") or "vim" editor_cmd = terminal .. " -e " .. editor
Думаю с «внутренностями» мы разобрались, пора браться за внешний вид.

Еще чуть-чуть про настройку

Все так же продолжаем работать в конфигурационном файле.
Сперва, вместо просто цифр хотелось бы переименовать наши тэги. Это находится в секции
"--- {{{ Tags"
Вместо цифр просто напишите имена.
Например у меня:
tags[s] = awful.tag({ "All", "IM", "Work", "Etc", "Media"}, s, layouts)
Вообще про конфигурацию я написать хорошо не сумею, ведь это дело персональное. Лучше всего про это прочитать на awesome wiki . Вообще, дописав конфиг, Вы ощутите новую легкость работы с окнами. Большое количество плюшек можно найти .

Вместо заключения

Хочу отметить, что данный wm идеально подойдет людям, которые часто держат в фокусе несколько окон. Так же он подойдет для слабых машин и легковесных систем, и машин с небольшими экранами (ноутбуки)
Заучив (по началу), а потом по наитию нажимая хоткеи, Вы уже не будете думать над тем, как, куда, что сделать с окном, как его разместить.
Например в awesome в одном тэге можно держать определенные окна. Например у меня в тэге IM находятся Skype и Pidgin.
Но что слова! Скриншоты!


Полноразмерный последний скриншот
Мои обои, по просьбам трудящихся.
А так же видео, демонстрирующее работу WM.

Так же прилагаю архив со своим конфигом + плагины.

Надеюсь, я заинтересовал Вас этим классным (от англ. awesome) WM, и Вы попробуете его в деле! И готов с радостью ответить и помочь в комментариях.

Внимание! Эта статья не содержит руководств по настройке того или иного оконного менеджера. В ней объясняются некоторые общие теоретические и практические аспекты использования оконных менеджеров. Для получения инструкций обратитесь к статье о конкретном оконном менеджере в этой вики или задайте вопрос на форуме

Оконный менеджер - это приложение, которое отвечает за размещение, декорирование окон, взаимодействие с окнами - изменение размеров, максимизация, свёртывание, закрытие. Оконный менеджер взаимодействует с графическим сервером X11, который занимается взаимодействием c видеокартой и устройствами ввода/вывода (клавиатура, мышь и монитор).

Оконный менеджер может работать как вместе с окружением рабочего стола (Gnome , KDE , XFCE), так и отдельно от него. Функционал, предоставляемый оконными менеджерами, может достаточно серьёзно различаться.

Оконный менеджер в окружении рабочего стола

Итак, в состав окружения рабочего стола уже входит оконный менеджер. В случае с Gnome это Metacity, в случае с KDE - kwin, XFCE использует по умолчанию xfwm4. Окружение рабочего стола LXDE использует менеджер окон openbox - в отличие от других DE, использующих оконные менеджеры, написанные специально для них, LXDE включает в свой состав менеджер окон, разрабатываемый независимо от остального окружения.

В составе каждого из этих окружений оконный менеджер, поставляемый «по умолчанию», может быть заменён другим по тем или иным причинам.

Два, пожалуй, самых показательных для Ubuntu примера - замена стандартного менеджера окон Metacity на Compiz для включения различных спецэффектов или на Openbox для снижения потребления ресурсов и обеспечения более точного управления окнами (более эффективное использование горячих клавиш, помещение окон в различные слои (Always on top) и т.д.)

Собственно, не существует никаких препятствий для использования оконного менеджера kwin в рабочем окружении Gnome или наоборот.

В случае, если в составе рабочего окружения заменяется оконный менеджер, обычно достаточно следующих действий:

    Добавление команды на замену оконного менеджера в автозапуск средствами утилит контроля сессий данного окружения (хрестоматийный compiz –replace)

    В случае, если требуется передать оконному менеджеру контроль над рабочим столом (например, для того, чтобы заработало меню Openbox, появляющееся при правом клике на рабочем столе) - отключение функции контроля рабочего стола в настройках приложения, которое по умолчанию этим занимается. В случае с Ubuntu - это Nautilus.

При замене оконного менеджера в составе рабочего окружения последнее продолжает выполнять для вас ряд важных функций - контроль сессий, монтирование съёмных носителей, управление буфером обмена и сетью, ассоциацию файлов с приложениями. Вы меняете только и исключительно механизм управления окнами и рабочим столом.

Оконный менеджер без окружения рабочего стола

Предположим, для снижения потребления оперативной памяти и мощности процессора, для самообразования или по эстетическим соображениям вы решили самостоятельно развернуть рабочее окружение на основе какого-либо оконного менеджера.

Что до сих пор обеспечивало вам рабочее окружение? Что вам теперь предстоит настроить самостоятельно? Какие задачи решает большинство оконных менеджеров, а какие выполняются с помощью сторонних утилит?

Давайте разберём по порядку.

    Автозапуск и контроль сессий. Если в окружении рабочего стола вы могли добавить приложение в автозапуск через графический интерфейс, то теперь вам, скорее всего, придётся прописывать такие приложения в конфигурационном файле вашего оконного менеджера. Забегая вперёд, скажу, что скорее всего в автозапуск нужно будет добавить трей и/или панель, переключатель раскладки клавиатуры, утилиту для управления сетевыми подключениями, утилиту для монтирования съёмных носителей, утилиту для отрисовки обоев, почтовый клиент и интернет-мессенджер, торрент-клиент.

При добавлении в автозапуск приложений следите за порядком, в котором они запускаются. Например, если вы хотите запустить менеджер сетевых подключений или торрент-клиент, им, скорее всего, потребуется трей, поэтому они должны запускаться после трея, возможно, с некторой задержкой (используйте команду sleep)

    Управление сетевыми подключениями. Окружение рабочего стола предоставляет вам менеджер сетевых подключений, в случае с оконным менеджером вам нужно будет позаботиться об этом самому. Вы можете подключаться к сети до старта графического сервера либо после запуска оконного менеджера и трея запускать nm-applet или wicd-client .

    Буфер обмена. Вы можете заметить, что вставить фрагмент текста из браузера в текстовый редактор теперь можно только тогда, когда «донорское» приложение запущено. Установите и добавьте в автозапуск менеджер буфера обмена, например, parcellite .

    Переключение раскладок клавиатуры. Оно исчезло!

Самое универсальное решение:

Setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll"

Её тоже нужно добавить в автозапуск. Для более тонкой настройки переключения раскладок воспользуйтесь утилитами xxkb или xneur

    Возможно, вам нужны панели и/или трей. В состав оконного менеджера может входить панель, как в случае с fluxbox, но вы можете воспользоваться любой другой - нетребовательной к ресурсам tint2 или функциональными gnome-panel или xfce-panel

    Управление питанием. Если вы используете ноутбук, возможно, вам понадобится управлять профилями энергопотребления. Можно использовать gnome-power-manager или xfce-power-manager

    Обои. Большинство менеджеров окон покажут вам вместо обоев чёрный экран. Для того, чтобы менять и показывать обои, нужна отдельная утилита, подходят специальный менеджер обоев nitrogen или просмотрщик изображений feh

    Иконки рабочего стола. Если они вообще вам нужны, то можно воспользоваться файл-менеджером, который умеет их рисовать. Nautilus , pcmanfm или rox-filer подойдут. Nautilus - в меньшей степени - он стремится захватить наиболее полный контроль над рабочим столом и может мешать вашему оконному менеджеру.

    Монтирование съёмных носителей. Можно переложить эту функцию на файловый менеджер либо настроить монтирование с помощью udev

    Внешний вид приложений. Шрифты, иконки, темы рабочего стола, темы курсоров. Теперь их нужно настраивать самостоятельно. Создайте в своей домашней папке скрытые папки.icons и.themes, в первую можно складывать темы иконок и курсоров, во вторую - темы GTK. Внимание! Следите за иерархией папок! Темы будут настраиваться только в случае, если путь к теме выглядит так: ~/.themes/название_темы /gtk-2.0. Некоторые авторы делают паки тем, и в папке «Тема» могут оказаться подпапки «Тема светлая» и «Тема тёмная». Удобный инструмент настройки тем gtk, иконок, шрифтов и тем курсора - lxappearance . Не забудьте, что темам gtk для корректной работы требуются так называемые «движки» тем, которых в свежеустановленной минимальной системе, скорее всего, нет. Их можно установить из репозитариев, посмотреть, какие движки есть в репозитарии можно так: aptitude search gtk-engines

    Выключение компьютера иначе чем через halt/shutdown из консоли. Если для вашего оконного менеджера нет утилиты для выключения, то вам придётся прибегнуть к сторонним диалогам выключения, и при этом отредактировать sudoers только с помощью visudo для разрешения своему пользователю выключения и перезагрузки компьютера без ввода пароля

    Утилита для быстрого запуска приложений посредством ввода команды. Попробуйте для этих целей gmrun

    Композитинг, также известный как «прозрачность и кубик». Поскольку compiz сам является оконным менеджером, совместить его с openbox или fvwm, к сожалению, нельзя. Существуют, однако, композитные менеджеры, занимающиеся не отрисовкой окон, а исключительно спецэффектами - cairocompmgr и связка xcompmgr и transset - оба позволяют добавить несколько простых композитинговых спецэффектов (тени, прозрачность), но не более того.

Горячие клавиши, декорации окон, виртуальные рабочие столы и меню, как правило, предоставляются оконным менеджером и настраиваются в конфигурационном файле последнего.

В Linux существует масса Windows Manager’ов, типа KDE, GNOME, Unity, но не всех они устраивают, к примеру — наверняка если Вы работаете с кодом, Вам хочется максимального комфорта при работе с ОС, без всяких графических излишеств и наворотов. Оконные менеджеры в виде «черепицы» представляют собой действительную экономию экранной области. как минимум за счет отсутствия закруглений в углах экрана, массивных форм. Кроме того, использование графических ресурсов, памяти компьютера — сведено к минимуму. Итак перейдем в обзору лучший оконных менеджеров на мой взгляд.

Как сменить графический интерфейс (графическую\оконную среду)

Чтобы сменить графический интерфейс, при старте или логине в учетную запись Ubuntu нажмем вот на эту кнопку:

После чего выбираем заранее установленное графическое оформление.

Итак, сам обзор

1. Менеджер окон — i3

На вид — — просто сказка для тех кому совершенно не нужны графические прорисовки и кому достаточно малого — окон без обрамления, краткого описания загрузки машины и прочих вещей, итак, скриншот с официального сайта:

Как видим — все интересно и крайне заманчиво — мы можем легко и лазить в коде и фоном смотреть фильм и кроме того справа читать новости) очень интересно. Кроме того, на сайте Вы можете найти горячие клавиши для упрощенного управления данным оконным менеджером:

Ну и как по привычке, прикрепляю картинку дабы сгладить свою вину за тяжело читаемый написанной текст (иначе не могу на данный момент)

2. Менеджер окон — Awersome

— как и в переводе с английского — замечательный на мой взгляд оконный менеджер черепичного вида. Пожалуй один из самых удобных из данного списка — есть хорошо документированный код, если вдруг захотите что то исправить или добавить:) ну и конечно же куча горячих клавиш, которые делают простым — навигацию в меню.

Скриншот с сайта:

3. Менеджер окон — DWM

— Динамичный менеджер окон. При этом объединяющий в себе не только «черепичный» стиль оформления окон, но и в различных стилях — выбираемых при необходимости, это и есть основное его отличие от выше описанных менеджеров окон. Сочетания клавиш так же легки для понимания, запоминания и управления:) итак, скриншот:

Как мы видим — более насыщенный цветами, интересными обрамлениями окон:)

Выводы, заключения

Безусловно, данные варианты подойдут не всем и более приемлемы для людей работающих с кодом, нежели чем для обычных пользователей. Но, и обычный пользователь, которому необходимо чтобы окна занимали только реальное место без всяческих обрамлений — будет тоже не плохим вариантом. Каждый оконный менеджер достаточно функционален и имеет горячие клавиши для быстрого управления. Попробуйте, посмотрите — установка в большинстве случаев крайне проста и стоит в поиске приложений Ubuntu ввести название — и нажать на кнопку установки.