Polybar: лучшая панель WM для вашей системы Linux
Задача
Установите и настройте Polybar.Распределения
Polybar не упакован для многих дистрибутивов, но вы можете скомпилировать его из любого исходного кода.Требования
Работающая установка Linux с правами root.трудность
среднийУсловные обозначения
- # - требует, чтобы данные команды linux выполнялись с правами root либо напрямую как пользователь root, либо с помощью
sudo
команды - $ - требует, чтобы данные команды linux выполнялись как обычный непривилегированный пользователь
Введение
Если вы использовали оконный менеджер (мозаичный или другой), или вы думаете об этом, вы, вероятно, изучили различные параметры для строк меню. Большинство оконных менеджеров либо не поставляются с ними, либо упакованы с чем-то, что не так уж и полезно. Полибар - отличный ответ.Polybar полностью независим, но он был специально разработан для совместимости с i3 и BSPWM. Вы можете использовать его с другими, хотя. Это просто потребует дополнительной настройки оконных менеджеров.
Polybar является одновременно гибким и простым. Это не требует каких-либо сложных скриптов, но вы можете создать собственный модуль со скриптами, если вы выберете. Также легко заставить Polybar выглядеть хорошо и вписываться в тему вашего рабочего стола.
Скачать зависимости сборки
Polybar - довольно новая программа, и она еще не упакована для многих дистрибутивов. Это доступно для Арки через AUR . Gentoo имеет несколько доступных сборок . Если вы используете Debian или Ubuntu, в репозитории GetDeb он также доступен. Все остальные должны построить это.Если вам не нравятся эти источники или вы им не доверяете, вы можете создать их и сами. Вы можете найти источник и зависимости на странице проекта Github .
Настройка Polybar
После того, как вы установили Polybar, вам нужно будет его настроить. Одной из сильных сторон Polybar является гибкость, которую дает вам конфигурация с относительно небольшими усилиями.Получить настройки по умолчанию
Лучше всего начать с использования существующего файла конфигурации в качестве основы вашей конфигурации. Вы можете сделать это одним из двух способов. Вы можете скопировать конфигурацию по умолчанию и изменить ее или скопировать конфигурацию по умолчанию и скопировать ее фрагменты в новый файл, который станет вашей конфигурацией. Любой из них работает, так что выбирайте тот, который подходит вашему стилю.Независимо от того, что вы выберете, вам нужно будет захватить конфигурацию по умолчанию. Сначала создайте каталог конфигурации, если его там еще нет.
$ mkdir ~/.config/polybar/Затем распакуйте конфигурацию по умолчанию в эту папку.
$ cd ~/.config/polybar $ $ sudo gzip -d /usr/share/doc/polybar/config.gz ~/.config/polybar/config

Цвета
Цвета - это, очевидно, первое, что вы захотите изменить.Есть несколько способов обработки цветов. Посмотрите на конфигурацию по умолчанию.
[colors]
Раздел должен выглядеть как пример ниже.[colors] ;background = ${xrdb:color0:#222} background = #222 background-alt = #444 ;foreground = ${xrdb:color7:#222} foreground = #dfdfdf foreground-alt = #555 primary = #ffb52a secondary = #e60053 alert = #bd2c40Обратите внимание на два разных способа установки цветов. Один просто использует простые шестнадцатеричные коды. Другой импортирует цвета из
.Xresources
. Это, вероятно, самый эффективный, и это гарантирует, что Polybar всегда будет соответствовать цветовой схеме вашей системы.Также важно отметить, что эти значения присваиваются переменным. Вы можете повторно использовать эти переменные в конфигурации, чтобы упростить свою жизнь и сохранить единую цветовую схему. Теоретически, вы можете настроить это так, чтобы вы могли менять цвет один раз
.Xresources
, и он вступит в силу во всех ваших X-приложениях и при каждом использовании в вашей конфигурации Polybar.Бар
Вы можете определить несколько баров в одном файле конфигурации. Чтобы определить их, создайте блок, похожий на[colors]
тот. Панель по умолчанию в конфигурации [bar/example]
. Взгляни на это.[bar/example] ;monitor = ${env:MONITOR:HDMI-1} width = 100% height = 27 ;offset-x = 1% ;offset-y = 1% radius = 6.0 fixed-center = false background = ${colors.background} foreground = ${colors.foreground} line-size = 3 line-color = #f00 border-size = 4 border-color = #00000000 padding-left = 0 padding-right = 2 module-margin-left = 1 module-margin-right = 2 font-0 = fixed:pixelsize=10;1 font-1 = unifont:fontformat=truetype:size=8:antialias=false;0 font-2 = siji:pixelsize=10;1 modules-left = bspwm i3 modules-center = xwindow modules-right = filesystem xbacklight volume xkeyboard memory cpu wlan eth battery temperature date powermenu tray-position = right tray-padding = 2 ;tray-transparent = true ;tray-background = #0063ff ;wm-restack = bspwm ;wm-restack = i3 ;override-redirect = true ;scroll-up = bspwm-desknext ;scroll-down = bspwm-deskprev ;scroll-up = i3wm-wsnext ;scroll-down = i3wm-wsprevНазвание бара "пример". Вы можете определить имя как угодно. Помните об этом, потому что вы будете использовать его при запуске панели.
Здесь есть несколько важных частей, которые нужно сломать.
Во-первых, верхняя часть обрабатывает размер и расположение стержня. Есть закомментированная строка, чтобы указать, на каком мониторе будет отображаться панель. Это важно помнить при использовании нескольких мониторов.
Остальная часть раздела довольно понятна. В
radius
опции ручки округления углов бара, и fixed-center
говорит Polybar держать центральную секцию модулей в одном месте, независимо от количества модулей.Следующая пара разделов позволяет вам установить цвета переднего плана и фона, а также несколько других связанных со стилем значений. Переменные заполнения относятся к заполнению панели в целом, а поля модуля являются полями каждого отдельного модуля. Будьте более консервативны с этими ценностями.
Шрифты по умолчанию не так часто используются. Возможно, вы захотите изменить их на шрифты, которые, как вы знаете, установлены. Желательно иметь хотя бы один текстовый шрифт и один значок шрифта. Что-то вроде Font Awesome очень хорошо работает для иконок.
После этого есть раздел выравнивания модуля. Это позволяет вам выбрать, где Polybar будет отображать каждый из модулей. Панель имеет левую, центральную и правую части. Перечислите модули, где вы хотите, чтобы они появились.
Наконец, у вас есть короткий раздел, касающийся вашего лотка и его значков. Выберите, как вы хотите, чтобы Polybar обрабатывал лоток.
Если вы используете i3 или BSPWM, раскомментируйте параметры
wm-restack
прокрутки и, соответствующие вашему WM.Встроенные модули
Теперь, когда у вас есть представление о том, как настроить панель, пришло время взглянуть на модули, которые поставляются с Polybar. На самом деле, Polybar предоставил вам большую часть информации, которую вы хотите отобразить в строке состояния.
Преимущество встроенных модулей в том, что все они должны работать «из коробки» с минимальными изменениями или настройками. Просто измените значки и метки, чтобы они соответствовали вашему стилю, и вы будете на пути к полностью настроенному Polybar.

Если вы используете i3 или BSPWM, у каждого из них есть модуль, который объединяет функциональность от WM, например, отображение рабочих пространств. Значения по умолчанию здесь невелики, так что вы захотите немного их настроить. Посмотрите на этот пример.
[module/workspaces] type = internal/i3 enable-click = true enable-scroll = false strip-wsnumbers = true format = pin-workspaces = true ws-icon-0 = 1; ws-icon-1 = 2; ws-icon-2 = 3;♪ ws-icon-3 = 4; ws-icon-4 = 5; ws-icon-5 = 6; ws-icon-6 = 7; ws-icon-9 = 10; label-focused = %name% label-focused-padding = 2 label-focused-margin = 0.5 label-focused-foreground = ${colors.white} label-focused-underline = ${colors.white} label-unfocused = %name% label-unfocused-padding = 2 label-unfocused-margin = 0.5 label-unfocused-underline = ${colors.l_gray} label-visible-padding = 2 label-visible-margin = 0.5 label-urgent = %name% label-urgent-padding = 2 label-urgent-margin = 0.5 label-urgent-foreground = ${colors.red} label-urgent-underline = ${colors.red}Как видите, вы можете настроить Polybar на отображение значков рабочей области, соответствующих значкам, заданным вами в конфигурации i3 / BSPWM. Оба оконных менеджера могут быть настроены одинаково. Есть много разных способов работы с этим модулем, так что не стесняйтесь исследовать.
Пользовательские Модули
Если модуль не совсем соответствует вашим потребностям, или вы хотите сделать что-то совершенно нестандартное, вы можете. Polybar поддерживает отображение вывода командной строки в свой собственный модуль. Это может быть из сценария Bash, или что-то более сложное. Polybar в основном просто читает и форматирует вывод. Взгляните на этот реальный пример.[module/pub-ip] type = custom/script exec = /home/nick/.config/polybar/pub-ip.sh interval = 100 format-underline = ${colors.white} format = label = %output%Как вы можете видеть, чтобы определить пользовательский модуль, вам просто нужно установить тип модуля. Затем вам нужно указать Polybar на скрипт, который он должен выполнить. Интервал - это частота обновления, а все остальное определяет, как форматируется и отображается вывод.
Если вам интересно, это скрипт, который выполняет модуль.
#! /bin/bash IP=$(dig +short myip.opendns.com @resolver1.opendns.com) if pgrep -x openvpn > /dev/null; then echo VPN: $IP else echo $IP fi

В этом нет ничего сложного. Он просто проверяет, запущен ли OpenVPN и получает открытый IP-адрес из OpenDNS. Это именно та вещь, для которой вы хотите создать модуль.
Начальный Полибар

Запуск Polybar очень прост. Назовите его с названием бара, который вы хотите запустить.
$ polybar exampleВы можете запустить Polybar по умолчанию с помощью WM, либо добавив его в
.xinitrc
файл конфигурации вашего оконного менеджера, либо используя ту же команду, что и выше.