;==================================================
;
;  INFO: https://github.com/jaagr/polybar
;
;===================================================

;========================================
; RESOURCES
;========================================
[res/colors]
alert-dark = ${xrdb:color3:#d79921}
alert = ${xrdb:color11:#fabd2f}
alert-hard-dark = ${xrdb:color9:#fb4934}
alert-hard = ${xrdb:color1:#cc241d}

primary-dark = ${xrdb:color6:#689d6a}
primary = ${xrdb:color14:#8ec07c}

resource-bad-dark = ${xrdb:color1:#cc241d}
resource-bad = ${xrdb:color9:#fb4934}
resource-good-dark = ${xrdb:color2:#98971a}
resource-good = ${xrdb:color10:#b8bb26}

background = ${xrdb:background:#1d2021}
background-med = ${xrdb:bg3:#282828}
background-soft = ${xrdb:bg4:#504945}
foreground = ${xrdb:color15:#ebdbb2}
foreground-alt = ${xrdb:color8:#928374}
foreground-soft = 

[res/fonts]
#font-0 = "DejaVu Sans:size=10;1"
font-0 = "xos4 Terminus:size=9;1"
font-1 = "FontAwesome:size=10;1"
font-2 =
font-3 =
font-4 =

;========================================
; BARS
;========================================

; TEMPLATE
;====================

[template/bar]
; Rendering of the bar
width = 100%
height = 24

; Module padding and spacing
padding = 2
module-margin = 1

; Module colors
background = ${res/colors.background}
foreground = ${res/colors.foreground}

; Module fonts
font-0 = ${res/fonts.font-0}
font-1 = ${res/fonts.font-1}
font-2 = ${res/fonts.font-2}
font-3 = ${res/fonts.font-3}
font-4 = ${res/fonts.font-4}

; BARS
;====================
[bar/alpha]
inherit = template/bar
tray-position = right
tray-padding = 0

border-bottom-size = 0
border-bottom-color = ${res/colors.primary}

modules-left = i3 bspwm || wlan || mpd 
modules-center = xwindow
modules-right = temperature-ramp || cpu-label memory-label || xbacklight-label volume-ramp battery-ramp || date

;========================================
; MODULES
;========================================

; COSMETIC
;====================
[module/|]
type = custom/text
content = " "
content-foreground = ${res/colors.foreground}

[module/||]
type = custom/text
content = |
content-foreground = ${res/colors.foreground}

; CUSTOM
;====================

; TEMPLATE
;====================
[template/module/bar]
format = <label> <bar>

label = "<TEMPLATE>"
label-padding = 0
label-foreground = ${res/colors.background}
label-background = ${res/colors.primary}

bar-width = 30
bar-fill = |
bar-fill-foreground = ${res/colors.primary}
bar-fill-foreground-progress = ${res/colors.resource-good}
bar-fill-foreground-resource-low = ${res/colors.resource-bad}
bar-fill-foreground-resource-high = ${res/colors.resource-good}
bar-fill-foreground-setting = ${res/colors.primary}
bar-fill-background = ${res/colors.background}
bar-indicator = |
bar-indicator-foreground = ${res/colors.foreground}
bar-indicator-background = ${res/colors.background}
bar-empty = |
bar-empty-foreground = ${res/colors.background-soft}
bar-empty-background = ${res/colors.background}

[template/module/battery]
type = internal/battery
battery = BAT0
adapter = AC
full-at = 95
interval = 15

[template/module/cpu]
type = internal/cpu
interval = 1

[template/module/network]
type = internal/network
interface = wlp1s0
format-connected = <label-connected>
format-connected-foreground = ${res/colors.background}
format-connected-background = ${res/colors.primary}
format-disconnected = <label-disconnected>
format-disconnected-foreground = ${res/colors.resource-bad}
format-disconnected-background = ${res/colors.background}

label-connected = %upspeed% %downspeed% - %signal%%
label-connected-padding = 0
label-disconnected = 
label-disconnected-padding = 0

interval = 1

[template/module/temperature]
type = internal/temperature
thermal-zone = 0
warn-temperature = 60

; STOCK
;====================
[module/i3]
type = internal/i3
format = <label-state> <label-mode>
index-sort = true

label-mode-padding = 2
label-mode-foreground = ${res/colors.background}
label-mode-background = ${res/colors.primary}

; Active workspace on focused monitor
label-focused = %name%
label-focused-padding = ${self.label-mode-padding}
label-focused-foreground = ${res/colors.background}
label-focused-background = ${res/colors.primary}

; Active workspace on unfocused monitor
label-visible = ${self.label-focused}
label-visible-padding = ${self.label-focused-padding}
label-visible-foreground = ${self.label-focused-foreground}
label-visible-background = ${res/colors.primary-dark}

; Inactive workspace
label-unfocused = ${self.label-focused}
label-unfocused-padding = ${self.label-focused-padding}
label-unfocused-foreground = ${res/colors.foreground}
label-unfocused-background = ${res/colors.background} 

; Urgent workspace
label-urgent = ${self.label-focused}
label-urgent-padding = ${self.label-focused-padding}
label-urgent-foreground = ${res/colors.background}
label-urgent-background = ${res/colors.alert}

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

; Firefox logo
ws-icon-0 = I;
; Beamed eigth notes
ws-icon-1 = II;
; Terminal
ws-icon-2 = III;
; Folder
ws-icon-3 = IV;
; Envelope
ws-icon-8 = IX;
; Erlenmeyer flask
ws-icon-9 = X;
; Monitor
ws-icon-default = 

; Active workspace on focused monitor
label-focused = %icon%
label-focused-padding = 2
label-focused-foreground = ${res/colors.background}
label-focused-background = ${res/colors.primary}

; Inactive filled workspace on focused monitor
label-occupied = ${self.label-focused}
label-occupied-padding = ${self.label-focused-padding}
label-occupied-foreground = ${res/colors.background}
label-occupied-background = ${res/colors.background-soft}

; Inactive empty workspace on focused monitor
label-empty = ${self.label-focused}
label-empty-padding = ${self.label-focused-padding}
label-empty-foreground = ${res/colors.background-soft}
label-empty-background = ${res/colors.background}

; Filled workspace on unfocused monitor
label-dimmed-padding = ${self.label-focused-padding}
label-dimmed-foreground = ${res/colors.primary-dark}
label-dimmed-background = ${res/colors.background-soft}

; Urgent workspace on any monitor
label-urgent = ${self.label-focused}
label-urgent-padding = ${self.label-focused-padding}
label-urgent-foreground = ${res/colors.background}
label-urgent-background = ${res/colors.alert}

[module/battery-bar]
inherit = template/module/battery
format-charging = <label-charging> <bar-capacity>
format-discharging = <label-discharging> <bar-capacity>
format-full = <label-full> <bar-capacity>

label-charging = "+"
label-charging-padding = ${template/module/bar.label-padding}
label-charging-foreground = ${template/module/bar.label-foreground}
label-charging-background = ${res/colors.resource-good-dark}
label-discharging = "-"
label-discharging-padding = ${self.label-charging-padding}
label-discharging-foreground = ${template/module/bar.label-foreground}
label-discharging-background = ${res/colors.resource-good-dark}
label-full = "$"
label-full-padding = ${self.label-charging-padding}
label-full-foreground = ${template/module/bar.label-foreground}
label-full-background = ${res/colors.resource-good}

bar-capacity-width = ${template/module/bar.bar-width}
bar-capacity-fill = ${template/module/bar.bar-fill}
bar-capacity-fill-foreground = ${template/module/bar.bar-fill-foreground-resource-high}
bar-capacity-fill-background = ${template/module/bar.bar-fill-background}
bar-capacity-indicator = ${template/module/bar.bar-indicator}
bar-capacity-indicator-foreground = ${template/module/bar.bar-indicator-foreground}
bar-capacity-indicator-background = ${template/module/bar.bar-indicator-background}
bar-capacity-empty = ${template/module/bar.bar-empty}
bar-capacity-empty-foreground = ${template/module/bar.bar-empty-foreground}
bar-capacity-empty-background = ${template/module/bar.bar-empty-background}

[module/battery-ramp]
inherit = template/module/battery
format-charging = <animation-charging> <label-charging>
format-discharging = <ramp-capacity> <label-discharging>
format-full = <label-full>
time-format = %H:%M

label-charging = %percentage%%
label-charging-padding = 0
label-charging-foreground = ${res/colors.primary}
label-charging-background = ${res/colors.background}
label-discharging = %percentage%% (%time%)
label-discharging-padding = 0
label-discharging-foreground = ${res/colors.foreground}
label-discharging-background = ${res/colors.background}
label-full =  %percentage%%
label-full-padding = 0
label-full-foreground = ${res/colors.primary-dark}
label-full-background = ${res/colors.background}

ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 
animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-3 = 
animation-charging-4 = 
animation-charging-framerate = 750
animation-charging-foreground = ${res/colors.primary}

[module/cpu-bar]
inherit = template/module/cpu
format = <label> <bar-load>

label = "C"
label-padding = ${template/module/bar.label-padding}
label-foreground = ${template/module/bar.label-foreground}
label-background = ${res/colors.resource-bad-dark}

bar-load-width = ${template/module/bar.bar-width}
bar-load-fill = ${template/module/bar.bar-fill}
bar-load-fill-foreground = ${template/module/bar.bar-fill-foreground-resource-low}
bar-load-fill-background = ${template/module/bar.bar-fill-background}
bar-load-indicator = ${template/module/bar.bar-indicator}
bar-load-indicator-foreground = ${template/module/bar.bar-indicator-foreground}
bar-load-indicator-background = ${template/module/bar.bar-indicator-background}
bar-load-empty = ${template/module/bar.bar-empty}
bar-load-empty-foreground = ${template/module/bar.bar-empty-foreground}
bar-load-empty-background = ${template/module/bar.bar-empty-background}

interval = 1

[module/cpu-ramp]
inherit = template/module/cpu
format = <label> <ramp-coreload>

label = 
label-padding = 0
label-foreground = ${res/colors.foreground}
label-background = ${res/colors.background}

ramp-coreload-0 = ▁
ramp-coreload-1 = ▂
ramp-coreload-2 = ▃
ramp-coreload-3 = ▄
ramp-coreload-4 = ▅
ramp-coreload-4-foreground = ${res/colors.alert}
ramp-coreload-5 = ▆
ramp-coreload-5-foreground = ${res/colors.alert}
ramp-coreload-6 = ▇
ramp-coreload-6-foreground = ${res/colors.alert-hard}
ramp-coreload-7 = █
ramp-coreload-7-foreground = ${res/colors.alert-hard}
ramp-coreload-foreground = ${res/colors.foreground}

[module/cpu-label]
inherit = template/module/cpu
format = <label>
label =  %percentage%%
label-padding = 0
label-foreground = ${res/colors.foreground}
label-background = ${res/colors.background}

[module/date]
type = internal/date

date = %a
time = %I:%M %p
date-alt = %A, %B %d
time-alt = %I:%M %p

label = %date% %time%
label-padding = 0
label-foreground = ${res/colors.foreground}
label-background = ${res/colors.background}

interval = 30

[module/filesystem]
type = internal/fs

mount-0 = /
mount-1 = /home
mount-2 = /boot

format-mounted = <label-mounted> <bar-used>
format-unmounted = <label-unmounted>

label-mounted = %mountpoint%
label-mounted-padding = ${template/module/bar.label-padding}
label-mounted-foreground = ${res/colors.background}
label-mounted-background = ${res/colors.primary}

label-unmounted = %mountpoint%
label-unmounted-padding = ${template/module/bar.label-padding}
label-unmounted-foreground = ${res/colors.background}
label-unmounted-background = ${res/colors.background-soft}

bar-used-width = ${template/module/bar.bar-width}
bar-used-fill = ${template/module/bar.bar-fill}
bar-used-fill-foreground = ${res/colors.primary}
bar-used-fill-background = ${template/module/bar.bar-fill-background}
bar-used-indicator = ${template/module/bar.bar-indicator}
bar-used-indicator-foreground = ${template/module/bar.bar-indicator-foreground}
bar-used-indicator-background = ${template/module/bar.bar-indicator-background}
bar-used-empty = ${template/module/bar.bar-empty}
bar-used-empty-foreground = ${template/module/bar.bar-empty-foreground}
bar-used-empty-background = ${template/module/bar.bar-empty-background}

[module/memory]
type = internal/memory
format = <label> <bar-used>

label = "M"
label-padding = ${template/module/bar.label-padding}
label-foreground = ${template/module/bar.label-foreground}
label-background = ${res/colors.resource-bad-dark}

bar-used-width = ${template/module/bar.bar-width}
bar-used-fill = ${template/module/bar.bar-fill}
bar-used-fill-foreground = ${template/module/bar.bar-fill-foreground-resource-low}
bar-used-fill-background = ${template/module/bar.bar-fill-background}
bar-used-indicator = ${template/module/bar.bar-indicator}
bar-used-indicator-foreground = ${template/module/bar.bar-indicator-foreground}
bar-used-indicator-background = ${template/module/bar.bar-indicator-background}
bar-used-empty = ${template/module/bar.bar-empty}
bar-used-empty-foreground = ${template/module/bar.bar-empty-foreground}
bar-used-empty-background = ${template/module/bar.bar-empty-background}

interval = 1

[module/memory-label]
type = internal/memory
format = <label>

label =  %percentage_used%% (%gb_used%)
label-padding = 0
label-foreground = ${res/colors.foreground}
label-background = ${res/colors.background}

[module/mpd]
type = internal/mpd
format-online = <label-song> <label-time>
format-offline = <label-offline>

icon-next = 
icon-pause = 
icon-play = 
icon-prev = 
icon-random = 
icon-repeat = 
icon-stop = 

toggle-on-foreground = ${res/colors.foreground}
toggle-off-foreground = ${res/colors.background-soft}

label-song = %title%
label-song-foreground = ${res/colors.foreground}
label-song-background = ${res/colors.background}
label-song-maxlen = 25
label-song-ellipsis = true

label-offline = "Disconnected from MPD"
label-offline-foreground = ${res/colors.background-soft}
label-offline-background = ${res/colors.background}

label-time = %elapsed%/%total%
label-time-foreground = ${res/colors.foreground}
label-time-background = ${res/colors.background}

bar-progress-width = 100
bar-progress-fill = ${template/module/bar.bar-fill}
bar-progress-fill-foreground = ${template/module/bar.bar-fill-foreground-progress}
bar-progress-fill-background = ${template/module/bar.bar-fill-background}
bar-progress-indicator = ${template/module/bar.bar-indicator}
bar-progress-indicator-foreground = ${template/module/bar.bar-indicator-foreground}
bar-progress-indicator-background = ${template/module/bar.bar-indicator-background}
bar-progress-empty = ${template/module/bar.bar-empty}
bar-progress-empty-foreground = ${template/module/bar.bar-empty-foreground}
bar-progress-empty-background = ${template/module/bar.bar-empty-background}

interval = 1

[module/mpd-control]
inherit = module/mpd
format-online = <icon-prev> <toggle> <icon-stop> <icon-next>
label-offline = ""

[module/mpd-control-ext]
inherit = module/mpd
format-online = <icon-random> <icon-repeat>
label-offline = ""

[module/temperature]
inherit = template/module/temperature
format = <label>
format-warn = <label-warn>

label = %temperature%
label-padding = 0
label-foreground = ${res/colors.background}
label-background = ${res/colors.primary-dark}
label-warn = %temperature%
label-warn-padding = ${self.label-padding}
label-warn-foreground = ${res/colors.background}
label-warn-background = ${res/colors.alert}

[module/temperature-ramp]
inherit = module/temperature

format = <ramp> <label>
format-warning = <ramp> <label>

label = %temperature%
label-padding = 0
label-foreground = ${res/colors.foreground}
label-background = ${res/colors.background}
label-warn =  %temperature%
label-warn-padding = ${self.label-padding}
label-warn-foreground = ${res/colors.alert}
label-warn-background = ${res/colors.background}

ramp-0 = 
ramp-1 = 
ramp-2 = 
ramp-3 = 
ramp-4 = 
#ramp-0 = 

[module/volume-bar]
type = internal/volume
format-volume = <label-volume> <bar-volume>
format-muted = <label-muted> <bar-volume>

label-volume = "V"
label-volume-padding = ${template/module/bar.label-padding}
label-volume-foreground = ${template/module/bar.label-foreground}
label-volume-background = ${template/module/bar.label-background}
label-muted = "V"
label-muted-padding = ${self.label-volume-padding}
label-muted-foreground = ${res/colors.background}
label-muted-background = ${res/colors.background-soft}

bar-volume-width = ${template/module/bar.bar-width}
bar-volume-fill = ${template/module/bar.bar-fill}
bar-volume-fill-foreground = ${template/module/bar.bar-fill-foreground-setting}
bar-volume-fill-background = ${template/module/bar.bar-fill-background}
bar-volume-indicator = ${template/module/bar.bar-indicator}
bar-volume-indicator-foreground = ${template/module/bar.bar-indicator-foreground}
bar-volume-indicator-background = ${template/module/bar.bar-indicator-background}
bar-volume-empty = ${template/module/bar.bar-empty}
bar-volume-empty-foreground = ${template/module/bar.bar-empty-foreground}
bar-volume-empty-background = ${template/module/bar.bar-empty-background}

interval = 1

[module/volume-ramp]
type = internal/volume
format-volume = <ramp-volume> <label-volume>
format-muted = <label-muted>

label-volume = %percentage%%
label-volume-padding = 0
label-volume-foreground = ${res/colors.foreground}
label-volume-background = ${res/colors.background}
label-muted =  %percentage%%
label-muted-padding = ${self.label-volume-padding}
label-muted-foreground = ${res/colors.background-soft}
label-muted-background = ${res/colors.background}

ramp-volume-0 = 
ramp-volume-1 = 
ramp-volume-2 = 

[module/wlan]
inherit = template/module/network
label-connected =  %upspeed%  %downspeed%
label-connected-foreground = ${res/colors.primary}
label-connected-background = ${res/colors.background}
label-disconnected = %ifname% Disconnected
label-disconnected-foreground = ${res/colors.background}
label-disconnected-background = ${res/colors.alert}

[module/backlight]
type = internal/backlight
inherit = template/module/bar
card = acpi_video0

label = B
bar-fill-foreground = ${template/module/bar.bar-fill-foreground-setting}

[module/xbacklight-label]
type = internal/xbacklight
format = <label>

label =  %percentage%%
label-foreground = ${res/colors.foreground}
label-background = ${res/colors.background}

[module/xkeyboard]
type = internal/xkeyboard
format = <label-indicator><label-layout>

label-layout = %name%
label-layout-padding = 0
label-layout-background = ${res/colors.primary-dark}
label-layout-foreground = ${res/colors.background}

label-indicator = %name%
label-indicator-padding = 0
label-indicator-background = ${res/colors.primary}
label-indicator-foreground = ${self.label-layout-foreground}

[module/xwindow]
type = internal/xwindow
label = %title%
label-maxlen = 75
label-ellipsis = true

