; ===================================================================
;   Максимальный конфиг Polybar для Arch Linux (v2)
;   Шрифт: Hack Nerd Font
;   Темы: Arch Blue, Gruvbox
;   Комментарии на русском языке
;
;   Поместить этот файл в: ~/.config/polybar/config.ini
; ===================================================================

; -------------------------------------------------------------------
;   Раздел с цветовыми палитрами
; -------------------------------------------------------------------

; [!] Тема Arch (синяя)
[colors-arch]
background = #282A36
background-alt = #3A3C4E
foreground = #F8F8F2
foreground-alt = #BFBFBF
primary = #1793D1  ; Arch Blue
secondary = #5294E2
alert = #FF5555
disabled = #6272A4
green = #50FA7B

; [!] Тема Gruvbox (темная)
[colors-gruvbox]
background = #282828
background-alt = #3c3836
foreground = #ebdbb2
foreground-alt = #a89984
primary = #458588
secondary = #b16286
alert = #fb4934
disabled = #665c54
green = #b8bb26


; -------------------------------------------------------------------
;   [!] АКТИВНАЯ ТЕМА [!]
;   Чтобы сменить тему, скопируй сюда значения
;   из [colors-arch] или [colors-gruvbox] выше.
;   Сейчас активна тема [colors-arch].
; -------------------------------------------------------------------
[colors]
background = #282A36
background-alt = #3A3C4E
foreground = #F8F8F2
foreground-alt = #BFBFBF
primary = #1793D1
secondary = #5294E2
alert = #FF5555
disabled = #6272A4
green = #50FA7B

; -------------------------------------------------------------------
;   Основные настройки бара
; -------------------------------------------------------------------
[bar/laptop]
; Выбор монитора. 'primary' - основной.
; Узнать: 'xrandr -q' (например, 'eDP-1')
#monitor = ${env:MONITOR:primary}
monitor = eDP-1

; Геометрия
width = 95%
offset-x = 2.5%

height = 32
radius = 8.0

; [!] Эта настройка оцентрует бар,
; так как его ширина теперь меньше 100%
fixed-center = true

; Расположение (false = вверху)
bottom = false

; Отступы
padding-left = 1
padding-right = 1

; Отступы для модулей
module-margin = 1

; Цвета
background = ${colors.background}
foreground = ${colors.foreground}

; Шрифты
; [!] Мы используем 'Hack Nerd Font', как ты и просил.
; 'font-0' - основной шрифт
; 'font-1' - шрифт с иконками (Nerd Font)
font-0 = "Hack Nerd Font:style=Regular:size=12;2"
font-1 = "Hack Nerd Font:style=Bold:size=12;2"


; Для больших иконок
font-2 = "Hack Nerd Font:style=Regular:size=12;3"

; Для цифр с номерами workspace
font-3 = "Hack Nerd Font:style=Bold:size=18;3"

; Расположение модулей
separator = |
modules-left = arch-icon bspwm xwindow
modules-center = date
modules-right = pulseaudio network-wired bluetooth updates cpu memory filesystem temperature battery powermenu

; Включить поддержку IPC (для отправки команд в polybar)
enable-ipc = true

; Системный трей
tray-position = right
tray-padding = 2

wm-restack = bspwm

[bar/laptop_external]
; Выбор монитора. 'primary' - основной.
; Узнать: 'xrandr -q' (например, 'eDP-1')
#monitor = ${env:MONITOR:primary}
monitor = HDMI-1-0

; Геометрия
width = 95%
offset-x = 2.5%

height = 32
radius = 8.0

; [!] Эта настройка оцентрует бар,
; так как его ширина теперь меньше 100%
fixed-center = true

; Расположение (false = вверху)
bottom = false

; Отступы
padding-left = 1
padding-right = 1

; Отступы для модулей
module-margin = 1

; Цвета
background = ${colors.background}
foreground = ${colors.foreground}

; Шрифты
; [!] Мы используем 'Hack Nerd Font', как ты и просил.
; 'font-0' - основной шрифт
; 'font-1' - шрифт с иконками (Nerd Font)
font-0 = "Hack Nerd Font:style=Regular:size=12;2"
font-1 = "Hack Nerd Font:style=Bold:size=12;2"


; Для больших иконок
font-2 = "Hack Nerd Font:style=Regular:size=12;3"

; Для цифр с номерами workspace
font-3 = "Hack Nerd Font:style=Bold:size=18;3"

; Расположение модулей
separator = |
modules-left = arch-icon bspwm xwindow
modules-center = date
modules-right = network-wireless

; Включить поддержку IPC (для отправки команд в polybar)
enable-ipc = true

; Системный трей
tray-position = right
tray-padding = 2

wm-restack = bspwm

[bar/bar1]
; Выбор монитора. 'primary' - основной.
; Узнать: 'xrandr -q' (например, 'eDP-1')
#monitor = ${env:MONITOR:primary}
monitor = HDMI-1

; Геометрия
width = 95%
offset-x = 2.5%

height = 32
radius = 8.0

; [!] Эта настройка оцентрует бар,
; так как его ширина теперь меньше 100%
fixed-center = true

; Расположение (false = вверху)
bottom = false

; Отступы
padding-left = 1
padding-right = 1

; Отступы для модулей
module-margin = 1

; Цвета
background = ${colors.background}
foreground = ${colors.foreground}

; Шрифты
; [!] Мы используем 'Hack Nerd Font', как ты и просил.
; 'font-0' - основной шрифт
; 'font-1' - шрифт с иконками (Nerd Font)
font-0 = "Hack Nerd Font:style=Regular:size=12;2"
font-1 = "Hack Nerd Font:style=Bold:size=12;2"


; Для больших иконок
font-2 = "Hack Nerd Font:style=Regular:size=12;3"

; Для цифр с номерами workspace
font-3 = "Hack Nerd Font:style=Bold:size=18;3"

; Расположение модулей
separator = |
modules-left = arch-icon bspwm xwindow
modules-center = date
modules-right = pulseaudio network-wired bluetooth updates cpu memory filesystem temperature battery powermenu

; Включить поддержку IPC (для отправки команд в polybar)
enable-ipc = true

; Системный трей
tray-position = right
tray-padding = 2

wm-restack = bspwm

[bar/bar2]
; Выбор монитора. 'primary' - основной.
; Узнать: 'xrandr -q' (например, 'eDP-1')
#monitor = ${env:MONITOR:primary}
monitor = HDMI-2

; Геометрия
width = 95%
offset-x = 2.5%

height = 32
radius = 8.0

; [!] Эта настройка оцентрует бар,
; так как его ширина теперь меньше 100%
fixed-center = true

; Расположение (false = вверху)
bottom = false

; Отступы
padding-left = 1
padding-right = 1

; Отступы для модулей
module-margin = 1

; Цвета
background = ${colors.background}
foreground = ${colors.foreground}

; Шрифты
; [!] Мы используем 'Hack Nerd Font', как ты и просил.
; 'font-0' - основной шрифт
; 'font-1' - шрифт с иконками (Nerd Font)
font-0 = "Hack Nerd Font:style=Regular:size=12;2"
font-1 = "Hack Nerd Font:style=Bold:size=12;2"


; Для больших иконок
font-2 = "Hack Nerd Font:style=Regular:size=12;3"

; Для цифр с номерами workspace
font-3 = "Hack Nerd Font:style=Bold:size=18;3"

; Расположение модулей
separator = |
modules-left = arch-icon bspwm xwindow
modules-center = date
modules-right = pulseaudio network-wireless bluetooth updates cpu memory filesystem temperature battery powermenu

; Включить поддержку IPC (для отправки команд в polybar)
enable-ipc = true

; Системный трей
tray-position = none

wm-restack = bspwm
; -------------------------------------------------------------------
;   Модули: Левая часть
; -------------------------------------------------------------------

; [!] Иконка Arch (как ты и просил)
[module/arch-icon]
type = custom/text
; Иконка Arch из Nerd Font
content = "  "
content-foreground = ${colors.primary}
; Действие по клику ЛКМ: открыть меню приложений (rofi)
click-left = rofi -show drun -theme-str 'window {width: 30%;}'

[module/bspwm]
type = internal/bspwm
pin-workspaces = true
enable-click = true
enable-scroll = true
format = <label-state>

ws-icon-0 = 1;%{T4}%{F#F9DE8F}󰬺%{T-}
ws-icon-1 = 2;%{T4}%{F#ff9b93}󰬻%{T-}
ws-icon-2 = 3;%{T4}%{F#95e1d3}󰬼%{T-}
ws-icon-3 = 4;%{T4}%{F#81A1C1}󰬽%{T-}
ws-icon-4 = 5;%{T4}%{F#A3BE8C}󰬾%{T-}
ws-icon-5 = 6;%{T4}%{F#F9DE8F}󰬿%{T-}
ws-icon-6 = 7;%{T4}%{F#ff9b93}󰭀%{T-}
ws-icon-7 = 8;%{T4}%{F#F9DE8F}󰭁%{T-}
ws-icon-8 = 9;%{T4}%{F#ff9b93}󰭂%{T-}
ws-icon-9 = 10;%{T4}%{F#95e1d3}󰿩%{T-}


;label-focused = %icon%
label-focused = X
label-focused-foreground = ${colors.primary}
label-focused-underline = ${colors.primary}
label-focused-padding = 1

label-occupied = %icon%
label-occupied-foreground = ${colors.foreground-alt}
label-occupied-padding = 1
label-empty = %icon%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1

label-urgent = %icon%
label-urgent-foreground = ${colors.alert}
label-urgent-padding = 1

; [Модуль] Заголовок активного окна
[module/xwindow]
type = internal/xwindow
; Ограничиваем длину
label = %title:0:40:...%
label-foreground = ${colors.foreground-alt}

; -------------------------------------------------------------------
;   Модули: Центральная часть
; -------------------------------------------------------------------

[module/date]
type = internal/date
interval = 1.0

; Формат времени (ЧЧ:ММ)
time = %H:%M
; Альтернативный формат (появляется при наведении)
time-alt = %A, %d %B %Y

; Отображение
format = <label>

format-prefix = "  "
; Иконка календаря

format-prefix-foreground = ${colors.secondary}
label = %time%

; Действие по клику ЛКМ: показать календарь
click-left = yad --calendar --title="Календарь" --no-buttons --close-on-unfocus &

; -------------------------------------------------------------------
;   Модули: Правая часть
; -------------------------------------------------------------------

; [Модуль] Звук (Pulseaudio)
[module/pulseaudio]
type = internal/pulseaudio
use-ui-max = false ; Не позволять громкости > 100%

; Формат
format-volume = <ramp-volume> <label-volume>
label-volume = %percentage%%
format-muted = <label-muted>
label-muted =  Muted
label-muted-foreground = ${colors.disabled}

; Иконки громкости (0%, 33%, 66%, 100%)
ramp-volume-0 = 
ramp-volume-1 = 
ramp-volume-2 = 

; Действия
click-middle = pactl set-sink-mute @DEFAULT_SINK@ toggle
click-right = pavucontrol &
scroll-up = pulseaudio-ctl up 5
scroll-down = pulseaudio-ctl down 5

; [Модуль] Сеть (Wi-Fi)
; [!] Требует настройки
[module/network-wireless]
type = internal/network
; [!] Замени 'wlan0' на имя своего Wi-Fi интерфейса
; Узнать: 'ip link'
interface = wlan0:
interface-type = wireless
interval = 3.0

; Подключено
format-connected = <label-connected>
label-connected =  %essid%
label-connected-foreground = ${colors.green}

; Отключено
format-disconnected = <label-disconnected>
label-disconnected =  (нет сети)
label-disconnected-foreground = ${colors.disabled}

; [!] Управление сетью (как ты просил)
; ЛКМ: Открыть 'networkmanager_dmenu' для выбора сети
click-right = alacritty -e nmtui &
click-left = networkmanager_dmenu &

; [Модуль] Сеть (Wired)
[module/network-wired]
type = internal/network
; [!] Замени 'eth0' на имя своего Ethernet интерфейса
; Узнать: 'ip link'
interface = eno2
interface-type = wired
interval = 3.0

; Подключено
format-connected = <label-connected>
label-connected =  %local_ip%
label-connected-foreground = ${colors.green}

; Отключено
format-disconnected = <label-disconnected>
label-disconnected =  (нет сети)
label-disconnected-foreground = ${colors.disabled}

; [!] Управление сетью (как ты просил)
; ЛКМ: Открыть 'networkmanager_dmenu' для выбора сети
click-left = networkmanager_dmenu


; [Модуль] Bluetooth
; [!] Требует кастомных скриптов (см. ниже)
[module/bluetooth]
type = custom/script
; Скрипт статуса
exec = ~/.config/polybar/scripts/get_bluetooth_status.sh
interval = 5
tail = true

format = <label>
label = %output%

; [!] Управление Bluetooth (как ты просил)
; ЛКМ: Открыть GUI 'blueman-manager'
click-left = blueman-manager &
; ПКМ: Включить/Выключить Bluetooth
click-right = ~/.config/polybar/scripts/toggle_bluetooth.sh &

; [Модуль] Проверка обновлений (Arch)
; [!] Требует 'pacman-contrib' и кастомного скрипта
[module/updates]
type = custom/script
; Скрипт проверки
exec = ~/.config/polybar/scripts/check-updates.sh
interval = 600 ; Каждые 10 минут

format = <label>
label = %output%

; Действие
; ЛКМ: Запустить обновление системы в терминале
; [!] Замени 'alacritty' на свой терминал (kitty, st, etc.)
click-left = alacritty -e sudo pacman -Syu &

; [Модуль] CPU
[module/cpu]
type = internal/cpu
interval = 2
format = <label>

format-prefix = "  "
; Иконка CPU

format-prefix-foreground = ${colors.secondary}
label = %percentage:2%%

; [Модуль] RAM
[module/memory]
type = internal/memory
interval = 2
format = <label>

format-prefix = "  " 
; Иконка RAM

format-prefix-foreground = ${colors.secondary}
label = %percentage_used:2%%

; [Модуль] Файловая система ( / )
[module/filesystem]
type = internal/fs
interval = 30
mount-0 = /

format-mounted = <label-mounted>

format-mounted-prefix = "  "
; Иконка диска

format-mounted-prefix-foreground = ${colors.secondary}
label-mounted = %percentage_used%%

; [Модуль] Температура (CPU)
[module/temperature]
type = internal/temperature
interval = 3
; [!] Путь к датчику может отличаться!
; Проверь: /sys/class/thermal/thermal_zone*
thermal-zone = 0
units = true

format = <label>
format-warn = <label-warn>
format-prefix = "  "
; Иконка термометра

label = %temperature-c%
label-warn = %temperature-c%
label-warn-foreground = ${colors.alert}

; [Модуль] Батарея
; Если у тебя ПК, просто удали 'battery' из 'modules-right'
[module/battery]
type = internal/battery
; [!] Проверь имя: 'ls /sys/class/power_supply/' (часто BAT0)
battery = BAT1
adapter = AC0
full-at = 99
poll-interval = 5

; Зарядка
format-charging = <animation-charging> <label-charging>
label-charging = %percentage%%
label-charging-foreground = ${colors.green}

; Разрядка
format-discharging = <ramp-capacity> <label-discharging>
label-discharging = %percentage%%

; Полный заряд
format-full = <label-full>
label-full =  100%
label-full-foreground = ${colors.green}

; Иконки разрядки (0%, 25%, 50%, 75%, 100%)
ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 
ramp-capacity-0-foreground = ${colors.alert}

; Анимация зарядки
animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-3 = 
animation-charging-4 = 
animation-charging-framerate = 750

; [Модуль] Меню выключения (Powermenu)
; [!] Требует 'rofi' и кастомный скрипт
[module/powermenu]
type = custom/text
; Иконка выключения
content = 
content-foreground = ${colors.foreground}
content-padding = 1

; ЛКМ: запустить скрипт powermenu
click-left = ~/.config/polybar/scripts/powermenu.sh

; -------------------------------------------------------------------
;   Прочие настройки
; -------------------------------------------------------------------
[settings]
screenchange-reload = true

pseudo-transparency = false
; Нужен композитор (picom) для 'false'

; ===================================================================
;   Конец конфига
; ===================================================================
