;=====================================================
;
;   To learn more about how to configure Polybar
;   go to https://github.com/jaagr/polybar
;
;   The README contains a lot of information
;
;=====================================================

[colors]
background          = #ef111111
background-alt      = #222
background-selected = #444
background-alert    = #bd2c40

foreground          = #dfdfdf
foreground-alt      = #777
foreground-caution  = #bd2c40
foreground-alert    = #ff4e4e

[bardefaults]
;enable-ipc = true
; I don't use this at the moment
enable-ipc = false

height = 21
fixed-center = true

background = ${colors.background}
foreground = ${colors.foreground}

padding-left = 0
padding-right = 6

module-margin-left = 6
module-margin-right = 6

; Default text
font-0  = "Fira Sans:size=10;1"
; Sliders
font-1 = fixed:pixelsize=10;1
; Default icons
font-2  = "Material Icons:pixelsize=14;3"
; Clock text
font-3  = "Fira Sans:size=12;2"
; MPD song name
font-4  = "Fira Code:light:size=7;-1"
; Specialised icons
font-5  = "Weather Icons:size=10;1"
font-6  = "Bar Material Supplements:pixelsize=14;1"
font-7  = "Bar Material Supplements:pixelsize=20;3"
; MPD song position
font-8 = "Fira Mono:size=7;9"

cursor-click = pointer
cursor-scroll = ns-resize

[bar/midbard]
inherit = bardefaults

;monitor = ${env:MONITOR:eDP-1}
width = 100%

modules-left   = i3 volume mpd-local
modules-center = date
modules-right  = memory cpu temperature eth wlan battery

tray-position = right
tray-padding  = 2

[bar/secondary]
inherit = bardefaults

height=18

modules-left  = i3
modules-right = xwindow
monitor = ${env:MONITOR:eDP-1}



[module/xwindow]
type = internal/xwindow
label = "%title:0:100:…%"
label-foreground = ${colors.foreground-alt}

[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock

format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}

label-layout = %layout%

label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-background = ${colors.secondary}

[module/filesystem]
type = internal/fs
interval = 24

mount-0 = /

label-mounted = %{F#0a81f5}%mountpoint%%{F}: %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.foreground-alt}

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

enable-scroll = false
enable-click = false

; Only show workspaces on the same output as the bar
pin-workspaces = true

label-mode-padding = 2
label-mode-foreground = #000
label-mode-background = #ffb52a

; focused = Active workspace on focused monitor
label-focused = "   %name%   "
label-focused-background = ${colors.background-selected}
label-focused-padding = 2

; unfocused = Inactive workspace on any monitor
label-unfocused = %name%
label-unfocused-padding = 2

; visible = Active workspace on unfocused monitor
label-visible = ${self.label-focused}
label-visible-background = ${colors.background-alt}
label-visible-padding = ${self.label-focused-padding}

; urgent = Workspace with urgency hint set
label-urgent = %name%
label-urgent-background = ${colors.background-alert}
label-urgent-padding = 2

[mpd-shared]
type = internal/mpd

;format-online       = <toggle>  <icon-prev> %{T9}<bar-progress>%{T-}%{O-125}%{T5}<label-song>%{T-} <icon-next>
;small-format-online = <toggle>  <icon-prev> %{T9}<bar-progress>%{T-}%{O-50}%{T5}<label-song>%{T-} <icon-next>
format-online       = <toggle>  %{A1:mpdclient &:}%{T9}<bar-progress>%{T-}%{O-180}%{T5}<label-song>%{T-}%{A}
small-format-online = <toggle>  %{A1:mpdclient &:}%{T9}<bar-progress>%{T-}%{O-50}%{T5}<label-song>%{T-}%{A}
ro-format-online = %{T9}<bar-progress>%{T-}%{O-125}%{T5}<label-song>%{T-}

format-stopped            = %{A1:mpdclient &:}%{A}
format-stopped-foreground = ${colors.foreground-alt}

icon-prev             = 
icon-prev-foreground  = ${colors.foreground-alt}
icon-stop             = 
icon-stop-foreground  = ${colors.foreground-alt}
icon-play             = 
icon-play-foreground  = ${colors.foreground-alt}
icon-pause            = 
icon-pause-foreground = ${colors.foreground-alt}
icon-next             = 
icon-next-foreground  = ${colors.foreground-alt}

label-song              = "%title% · %artist%                    "
label-song-maxlen       = 25
small-label-song-maxlen = 7
label-song-ellipsis     = false
label-song-foreground   = ${colors.foreground}

bar-progress-width                = 30
small-bar-progress-width          = 10
bar-progress-indicator            = ╴
bar-progress-indicator-foreground = #eee
bar-progress-fill                 = ─
bar-progress-fill-foreground      = #999
bar-progress-empty                = ─
bar-progress-empty-foreground     = #333

[module/mpd-local]
inherit = mpd-shared

host = localhost
port = 6600

[module/mpd-online-1]
inherit = mpd-shared

host     = ${env:MPD_ONLINE_1_HOST}
port     = ${env:MPD_ONLINE_1_PORT}
password = ${env:MPD_ONLINE_1_PASS}

[module/mpd-online-2]
inherit = mpd-shared

host     = ${env:MPD_ONLINE_2_HOST}
port     = ${env:MPD_ONLINE_2_PORT}
password = ${env:MPD_ONLINE_2_PASS}

format-online = ${mpd-shared.small-format-online}

label-song-maxlen     = ${mpd-shared.small-label-song-maxlen}
label-song-foreground = ${colors.foreground-alt}

bar-progress-width = ${mpd-shared.small-bar-progress-width}

[module/xbacklight]
type = internal/xbacklight

format = <label> <bar>
label = BL

bar-width = 10
bar-indicator = |
bar-indicator-foreground = #ff
bar-indicator-font = 1
bar-fill = ─
bar-fill-font = 1
bar-fill-foreground = #9f78e1
bar-empty = ─
bar-empty-font = 1
bar-empty-foreground = ${colors.foreground-alt}

[module/backlight-acpi]
inherit = module/xbacklight
type = internal/backlight
card = intel_backlight

[module/cpu]
type = internal/cpu
interval = 3
;format-prefix = " "
format = "%{O-22}%{A1:alacritty -e htop &:}<ramp-coreload>%{A}"
format-foreground = ${colors.foreground-alt}
format-prefix-foreground = ${colors.foreground-alt}

; Available tokens:
;   %percentage% (default) - total cpu load
;   %percentage-cores% - load percentage for each core
;   %percentage-core[1-9]% - load percentage for specific core
label = %percentage%

;ramp-coreload-0 = ▁
ramp-coreload-0 =
ramp-coreload-0-foreground = #444
;ramp-coreload-1 = ▂
ramp-coreload-1 =
ramp-coreload-1-foreground = #444
;ramp-coreload-2 = ▃
ramp-coreload-2 =
ramp-coreload-2-foreground = #444
;ramp-coreload-3 = ▄
ramp-coreload-3 =
ramp-coreload-3-foreground = #444
ramp-coreload-4 = ▅
ramp-coreload-4-foreground = #666
ramp-coreload-5 = ▆
ramp-coreload-5-foreground = #888
ramp-coreload-6 = ▇
ramp-coreload-6-foreground = ${colors.foreground-caution}
ramp-coreload-7 = █
ramp-coreload-7-foreground = ${colors.foreground-alert}

[module/memory]
type = internal/memory
interval = 3
format = "%{A1:alacritty -e htop &:}<ramp-used>%{A}"
format-foreground = ${colors.foreground-alt}

ramp-used-0 =
ramp-used-1 =
ramp-used-2 =
ramp-used-3 =
ramp-used-4 =
ramp-used-5 =
ramp-used-6 =
ramp-used-7 =
ramp-used-8 =
ramp-used-9 =
ramp-used-10 = 50%
ramp-used-10-foreground = ${self.format-foreground}
ramp-used-11 = 55%
ramp-used-11-foreground = ${self.format-foreground}
ramp-used-12 = 60%
ramp-used-12-foreground = ${self.format-foreground}
ramp-used-13 = 65%
ramp-used-13-foreground = ${self.format-foreground}
ramp-used-14 = 70%
ramp-used-14-foreground = ${self.format-foreground}
ramp-used-15 = 75%
ramp-used-15-foreground = ${self.format-foreground}
ramp-used-16 = 80%
ramp-used-16-foreground = ${self.format-foreground}
ramp-used-17 = 85%
ramp-used-17-foreground = ${self.format-foreground}
ramp-used-18 = %{T3}%{T-} RAM NEARLY FULL
ramp-used-18-foreground = ${colors.foreground-caution}
ramp-used-19 = %{T3}%{T-} RAM FULL
ramp-used-19-foreground = ${colors.foreground-alert}
ramp-used-20 = %{T3}%{T-} RAM FULL
ramp-used-20-foreground = ${colors.foreground-alert}


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

interval = 3
units = false

format =
format-foreground = ${colors.foreground-alt}
format-warn = "%{O-22}%{A1:alacritty -e watch sensors &:}%{T3}%{T-} <label-warn>%{A}"
format-warn-foreground = ${colors.foreground-alert}

label = %temperature-c%℃
label-warn = %temperature-c%℃

[module/wlan]
type = internal/network
interface = wlp58s0
interval = 3

; %{T7}           select font 7
; %{F#333}        use a dark foreground colour
;                "combining icon full signal strength" in my font Bar Material Supplements
; %{F}%{T-}       reset foreground colour and font
; <ramp-signal>   show a combining signal strength icon
;                advance one icon's width
; This overlays the actual signal strength icon over the dark "full signal" icon
format-connected = %{A:alacritty -e wlan &:}%{T7}%{F#333}%{F}%{T-}<ramp-signal>%{A}
format-connected-foreground = ${colors.foreground-alt}
label-connected = %essid%

format-disconnected = %{A1:alacritty -e wlan &:}<label-disconnected>%{A}
label-disconnected = 
label-disconnected-foreground = ${colors.foreground-alt}

;ramp-signal-0 = ""
ramp-signal-0 = 
ramp-signal-1 = 
ramp-signal-2 = 
ramp-signal-3 = 
ramp-signal-font = 7
ramp-signal-foreground = ${colors.foreground}

[module/eth]
type = internal/network
interface = enp57s0f1
interval = 3

label-connected = "%{O-32}"

;[module/date]
;type = internal/date
;interval = 5

;date =
;date-alt =

;time = %A       %{T4}%H:%M%{T-}     %e %b
;time-alt = %a  %Y-%m-%d    %H:%M:%S

;label = %time%

[module/date]
type = custom/script
tail = true

exec = ~/.config/polybar/clock.py
;America/Detroit Asia/Seoul

[module/volume]
;type = internal/pulseaudio
type = internal/alsa

master-soundcard = default
speaker-soundcard = default
headphone-soundcard = default

format-muted = 
format-muted-foreground = ${colors.foreground-alt}

format-volume = <ramp-volume>
format-volume-foreground = ${colors.foreground}

ramp-volume-0 = %{O-3}%{O3}
ramp-volume-1 = %{O-1}%{O1}
ramp-volume-2 = 

[module/battery]
type = internal/battery
battery = BAT0
adapter = AC
full-at = 90
interval = 5

format-charging = %{A:alacritty -e bat --hold &:}%{T7}%{F#555}%{F#DDA}<ramp-capacity>%{F#000}%{F}%{T-}%{O19}<label-charging>%{A}
label-charging  = %percentage%

format-discharging = %{A:alacritty -e bat --hold &:}%{F#555}%{F}<ramp-capacity>%{O2}<label-discharging>%{A}
label-discharging  = %percentage%

format-full = "%{A:alacritty -e bat --hold &:}%{F#dda}%{F#eea} unplug%{F}%{A}"

; <5
ramp-capacity-0  = %{F#f55}
; 5
ramp-capacity-1  = %{F#f55}
; 10
ramp-capacity-2  = %{F#f55}
ramp-capacity-3  = %{F#f55}
; 20
ramp-capacity-4  = 
ramp-capacity-5  = 
; 30
ramp-capacity-6  = 
ramp-capacity-7  = 
; 40
ramp-capacity-8  = 
ramp-capacity-9  = 
; 50
ramp-capacity-10 = 
ramp-capacity-11 = 
; 60
ramp-capacity-12 = 
ramp-capacity-13 = 
; 70
ramp-capacity-14 = 
ramp-capacity-15 = 
; 80
ramp-capacity-16 = 
ramp-capacity-17 = 
; 90
ramp-capacity-18 = 
; >=95
ramp-capacity-19 = 

animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-3 = 
animation-charging-framerate = 750

[module/powermenu]
type = custom/menu

expand-right = true

format-spacing = 1

; 
label-open = ""
label-open-foreground = ${colors.secondary}
label-close =  cancel
label-close-foreground = ${colors.secondary}
label-separator = |
label-separator-foreground = ${colors.foreground-alt}

menu-0-0 = reboot
menu-0-0-exec = menu-open-1
menu-0-1 = power off
menu-0-1-exec = menu-open-2

menu-1-0 = cancel
menu-1-0-exec = menu-open-0
menu-1-1 = reboot
menu-1-1-exec = sudo reboot

menu-2-0 = power off
menu-2-0-exec = sudo poweroff
menu-2-1 = cancel
menu-2-1-exec = menu-open-0

[module/info-hackspeed]
type = custom/script
exec = LAYOUT=azerty ICON= METRIC=wpm ~/.config/polybar/info-hackspeed.sh
tail = true

[module/weather-full]
type = custom/script
exec = ~/.config/polybar/openweathermap-fullfeatured.sh
interval = 600
label-font = 6

[settings]
; The throttle settings lets the eventloop swallow up til X events
; if they happen within Y millisecond after first event was received.
; This is done to prevent flood of update event.
;
; For example if 5 modules emit an update event at the same time, we really
; just care about the last one. But if we wait too long for events to swallow
; the bar would appear sluggish so we continue if timeout
; expires or limit is reached.
throttle-output = 5
throttle-output-for = 10

; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events
screenchange-reload = false

; Compositing operators
; they say: see https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t
; but I have no idea what this is supposed to do
;compositing-background = xor
;compositing-background = screen
;compositing-foreground = source
;compositing-border = over

[global/wm]
margin-top = 5
margin-bottom = 5

; vim: set ft=dosini foldmethod=marker foldlevel=0 :
