;==========================================================
;
;
;   ██████╗  ██████╗ ██╗  ██╗   ██╗██████╗  █████╗ ██████╗
;   ██╔══██╗██╔═══██╗██║  ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
;   ██████╔╝██║   ██║██║   ╚████╔╝ ██████╔╝███████║██████╔╝
;   ██╔═══╝ ██║   ██║██║    ╚██╔╝  ██╔══██╗██╔══██║██╔══██╗
;   ██║     ╚██████╔╝███████╗██║   ██████╔╝██║  ██║██║  ██║
;   ╚═╝      ╚═════╝ ╚══════╝╚═╝   ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝
;
;
;   To learn more about how to configure Polybar
;   go to https://github.com/polybar/polybar
;
;   The README contains a lot of information
;
;==========================================================

[colors]
background = #ccfdf6e3
background-alt = #ccfdf6e3
foreground = #657b83
primary = #657b83
secondary = #657b83
alert = #A54242
disabled = #707880

[bar/top]
#bottom = false
#dock = false
width = 100%
height = 15pt
radius = 0

# dpi = 135

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

line-size = 3pt

border-size = 0pt
border-color = #00000000

padding-left = 1
padding-right = 1

module-margin = 1

separator = |
separator-foreground = ${colors.disabled}

font-0 = Fira Mono:style=Medium:pixelsize=8;1
font-1 = PowerlineSymbols:size=10;1
font-2 = SymbolsNerdFont:size=10;1


modules-left = xwindow
modules-center = date
modules-right = network memory cpu temperature backlight pulseaudio battery xkeyboard powermenu

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

enable-ipc = true

# tray-position = right

# wm-restack = generic
# wm-restack = bspwm
# wm-restack = i3

# override-redirect = true

[bar/bottom]
bottom = true
width = 100%
height = 15pt
radius = 0

# dpi = 135

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

line-size = 3pt

border-size = 0pt
border-color = #00000000

padding-left = 0
padding-right = 1

module-margin = 1

separator = |
separator-foreground = ${colors.disabled}

font-0 = Fira Mono:style=Medium:pixelsize=8;1
font-1 = PowerlineSymbols:size=10;1
# font-2 = SymbolsNerdFont:size=10;1
font-2 = Symbols Nerd Font:style=Regular:size=10;1


modules-left = i3
modules-right = mpd mpdvol weather updates uptime

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

enable-ipc = true

tray-position = right

[module/xworkspaces]
type = internal/xworkspaces

label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1

label-occupied = %name%
label-occupied-padding = 1

label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1

label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1

[module/i3]
type = internal/i3

pin-workspaces = true
enable-scroll = true
show-urgent = true
strip-wsnumbers = true

label-focused = %name%
label-focused-background = ${colors.background-alt}
label-focused-underline= ${colors.primary}
label-focused-padding = 1

label-unfocused = %name%
label-unfocused-padding = 1

label-visible = %name%
label-visible-padding = 1

label-urgent = %name%
label-urgent-foreground = #fdf6e3
label-urgent-background = #9a847c
label-urgent-underline = #9a847c
label-urgent-padding = 1


[module/mpd]
type = internal/mpd

; Host where mpd is running (either ip or domain name)
; Can also be the full path to a unix socket where mpd is running.
host = 192.168.0.186
port = 6600
; password = mysecretpassword

; Seconds to sleep between progressbar/song timer sync
; Default: 1
interval = 1
; Available tags:
;   <label-song> (default)
;   <label-time>
;   <bar-progress>
;   <toggle> - gets replaced with <icon-(pause|play)>
;   <toggle-stop> - gets replaced with <icon-(stop|play)>
;   <icon-random>
;   <icon-repeat>
;   <icon-repeatone> (deprecated)
;   <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone>
;   <icon-consume>
;   <icon-prev>
;   <icon-stop>
;   <icon-play>
;   <icon-pause>
;   <icon-next>
;   <icon-seekb>
;   <icon-seekf>
# format-online = <icon-prev> <icon-stop> <toggle> <icon-next> | <label-time> | Now playing: <label-song> 
format-online = 󰝚 Now playing: <label-song> | <label-time> | <icon-prev> <icon-stop> <toggle> <icon-next>
format-playing = ${self.format-online}
format-paused = ${self.format-online}
format-stopped = Press! -> <toggle> <-  

; Available tags:
;   <label-offline>
; Default: ""
format-offline = <label-offline>

; Available tokens:
;   %artist%
;   %album-artist%
;   %album%
;   %date%
;   %title%
; Default: %artist% - %title%
label-song = %artist% - %title:0:78%

label-time = %elapsed% / %total%
label-offline = mpd is offline

icon-play = 
icon-pause = 
icon-stop = 
icon-prev = 
icon-next = 

# [module/weather]
# type = custom/script
# exec = ~/.config/polybar/scripts/weather-plugin.sh 
# tail = false
# interval = 960

[module/weather]
type = custom/script
exec = ANSIWEATHERRC=~/.config/ansiweather/config_for_bar ansiweather | sed 's#.*Sa.*rg: ##' | tr ':' ' '
tail = false
interval = 960

[module/updates]
type = custom/script
exec = ~/.config/polybar/scripts/updates.sh
interval = 3600

[module/uptime]
type = custom/script
exec = echo 󰅔 $(uptime | sed 's/.*up //g;s/,.*user.*//g' ) 
interval = 600


[module/mpdvol]
type = custom/script
exec = echo 󰴸 $(mpc --host=192.168.0.186 status %volume%)   
interval = 5

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

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

mount-0 = /

label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%

label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}

[module/backlight]
type = internal/backlight

; Available tags:
;   <label> (default)
;   <ramp>
;   <bar>
format = <ramp> <label>

; Available tokens:
;   %percentage% (default)
label = %percentage%%

; Only applies if <ramp> is used
ramp-0 = 󰃚
ramp-1 = 󰃜
ramp-2 = 󰃝
ramp-3 = 󰃟
ramp-4 = 󰃠

; Use the following command to list available cards:
; $ ls -1 /sys/class/backlight/
card = intel_backlight

; Use the `/sys/class/backlight/.../actual-brightness` file
; rather than the regular `brightness` file.
; Defaults to true unless the specified card is an amdgpu backlight.
; New in version 3.6.0
use-actual-brightness = true

; Enable changing the backlight with the scroll wheel
; NOTE: This may require additional configuration on some systems. Polybar will
; write to `/sys/class/backlight/${self.card}/brightness` which requires polybar
; to have write access to that file.
; DO NOT RUN POLYBAR AS ROOT. 
; The recommended way is to add the user to the
; `video` group and give that group write-privileges for the `brightness` file.
; See the ArchWiki for more information:
; https://wiki.archlinux.org/index.php/Backlight#ACPI
; Default: false
enable-scroll = true

[module/pulseaudio]
type = internal/pulseaudio

; Available tags:
;   <label-volume> (default)
;   <ramp-volume>
;   <bar-volume>
format-volume = <ramp-volume> <label-volume>

label-volume = %percentage%%

label-muted = 󰖁
label-muted-foreground = ${colors.disabled}

; Only applies if <ramp-volume> is used
ramp-volume-0 = 󰕿
ramp-volume-1 = 󰖀
ramp-volume-2 = 󰕾

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

label-layout = 󰌌 %layout%
label-layout-foreground = ${colors.primary}

label-indicator-on-capslock = 󰌎
label-indicator-padding = 1
label-indicator-margin = 1
label-indicator-foreground = ${colors.background}
label-indicator-background = ${colors.secondary}

[module/memory]
type = internal/memory
interval = 2
# format-prefix = " "
format-prefix-foreground = ${colors.primary}
label = 󰍛 %gb_used% | 󰋊 %swap_used%

[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "󰻠 "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%

# [module/freq]
# type = custom/script
# format = <label> MHz
# exec = cat /proc/cpuinfo | grep MHz | sed 's/cpu MHz//' | sed 's/://' | awk '{print int($1+0.5)}'
# # tail = true
# click-left = kill -USR1 %pid%
# format-prefix = " "
# interval = 3

[module/fan]
type = custom/script
format = <label>
exec = sensors asus-isa-0000 | grep cpu_fan | sed 's/cpu_fan:     //'
# tail = true
; click-left = kill -USR1 %pid%
format-prefix = "󰈐 "
interval = 5



[module/temperature]
type = internal/temperature

; Seconds to sleep between updates
; Default: 1
interval = 1

format =  <label>
; Thermal zone to use
; To list all the zone types, run 
; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done
; Default: 0
thermal-zone = 0

; Full path of temperature sysfs path
; Use `sensors` to find preferred temperature source, then run
; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done
; to find path to desired file
; Default reverts to thermal zone setting
hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp2_input

; Base temperature for where to start the ramp (in degrees celsius)
; Default: 0
base-temperature = 40

; Threshold temperature to display warning label (in degrees celsius)
; Default: 80
warn-temperature = 80

[network-base]
type = internal/network
interval = 5
format-connected = <label-connected> <ramp-signal>
format-disconnected = <label-disconnected>
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected

[module/network]
type = internal/network
; Name of the network interface to display. You can get the names of the
; interfaces on your machine with `ip link`
; Wireless interfaces often start with `wl` and ethernet interface with `eno` or `eth`
interface = wlan0

; If no interface is specified, polybar can detect an interface of the given type.
; If multiple are found, it will prefer running interfaces and otherwise just
; use the first one found.
; Either 'wired' or 'wireless'
; New in version 3.6.0
interface-type = wireless

; Seconds to sleep between updates
; Default: 1
interval = 3.0

; Test connectivity every Nth update
; A value of 0 disables the feature
; NOTE: Experimental (needs more testing)
; Default: 0
# ping-interval = 3

; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%)
; Minimum output width of upload/download rate
; Default: 3
# udspeed-minwidth = 5

; Accumulate values from all interfaces
; when querying for up/downspeed rate
; Default: false
# accumulate-stats = true

; Consider an `UNKNOWN` interface state as up.
; Some devices like USB network adapters have 
; an unknown state, even when they're running
; Default: false
# unknown-as-up = true

; The unit used for displaying network speeds
; For example if set to the empty string, a speed of 5 KB/s is displayed as 5 K
; Default: B/s
; New in version 3.6.0
# speed-unit = 'Kb/s'


# inherit = network-base
# interface-type = wireless
label-connected = 󰖩 %signal%%
label-disconnected = 󰖪
; Available tags:
;   <label-connected> (default)
;   <ramp-signal>
format-connected = <label-connected>
; Available tags:
;   <label-disconnected> (default)
format-disconnected = <label-disconnected>

; Available tags:
;   <label-connected> (default)
;   <label-packetloss>
;   <animation-packetloss>
format-packetloss = <animation-packetloss> <label-connected>

; All labels support the following tokens:
;   %ifname%    [wireless+wired]
;   %local_ip%  [wireless+wired]
;   %local_ip6% [wireless+wired]
;   %essid%     [wireless]
;   %signal%    [wireless]
;   %upspeed%   [wireless+wired]
;   %downspeed% [wireless+wired]
;   %netspeed%  [wireless+wired] (%upspeed% + %downspeed%) (New in version 3.6.0)
;   %linkspeed% [wired]
;   %mac%       [wireless+wired] (New in version 3.6.0)

; Default: %ifname% %local_ip%
# label-connected = %essid% %downspeed:9%
# label-connected-foreground = #eefafafa

; Default: (none)
# label-disconnected = not connected
# label-disconnected-foreground = #66ffffff

; Default: (none)
# label-packetloss = %essid%
# label-packetloss-foreground = #eefafafa

; Only applies if <ramp-signal> is used
# ramp-signal-0 = 😱
# ramp-signal-1 = 😠
# ramp-signal-2 = 😒
# ramp-signal-3 = 😊
# ramp-signal-4 = 😃
# ramp-signal-5 = 😈

; Only applies if <animation-packetloss> is used
animation-packetloss-0 = ⚠
animation-packetloss-0-foreground = #ffa64c
animation-packetloss-1 = 📶
animation-packetloss-1-foreground = #000000
; Framerate in milliseconds
animation-packetloss-framerate = 500

[module/eth]
inherit = network-base
interface-type = wired
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%

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

date = %a %d/%m %H:%M
date-alt = %H:%M:%S

label = 󰥔 %date%
label-foreground = ${colors.primary}

[module/battery]
type = internal/battery

; This is useful in case the battery never reports 100% charge
; Default: 100
full-at = 100

; format-low once this charge percentage is reached
; Default: 10
; New in version 3.6.0
low-at = 25

; Use the following command to list batteries and adapters:
; $ ls -1 /sys/class/power_supply/
battery = BAT0
adapter = ADP1

; If an inotify event haven't been reported in this many
; seconds, manually poll for new values.
;
; Needed as a fallback for systems that don't report events
; on sysfs/procfs.
;
; Disable polling by setting the interval to 0.
;
; Default: 5
poll-interval = 5

; see "man date" for details on how to format the time string
; NOTE: if you want to use syntax tags here you need to use %%{...}
; Default: %H:%M:%S
time-format = %H:%M

; Available tags:
;   <label-charging> (default)
;   <bar-capacity>
;   <ramp-capacity>
;   <animation-charging>
format-charging = <animation-charging>  <label-charging>

; Available tags:
;   <label-discharging> (default)
;   <bar-capacity>
;   <ramp-capacity>
;   <animation-discharging>
format-discharging = <ramp-capacity>  <label-discharging>

; Available tags:
;   <label-full> (default)
;   <bar-capacity>
;   <ramp-capacity>
# format-full = <ramp-capacity> <label-full>

; Format used when battery level drops to low-at
; If not defined, format-discharging is used instead.
; Available tags:
;   <label-low>
;   <animation-low>
;   <bar-capacity>
;   <ramp-capacity>
; New in version 3.6.0
# format-low = <label-low> <animation-low>

; Available tokens:
;   %percentage% (default) - is set to 100 if full-at is reached
;   %percentage_raw%
;   %time%
;   %consumption% (shows current charge rate in watts)
label-charging = %percentage%%

; Available tokens:
;   %percentage% (default) - is set to 100 if full-at is reached
;   %percentage_raw%
;   %time%
;   %consumption% (shows current discharge rate in watts)
label-discharging = %percentage%%

; Available tokens:
;   %percentage% (default) - is set to 100 if full-at is reached
;   %percentage_raw%
label-full = 

; Available tokens:
;   %percentage% (default) - is set to 100 if full-at is reached
;   %percentage_raw%
;   %time%
;   %consumption% (shows current discharge rate in watts)
; New in version 3.6.0
label-low = BATTERY LOW

; Only applies if <ramp-capacity> is used
ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 

; Only applies if <bar-capacity> is used
bar-capacity-width = 10

; Only applies if <animation-charging> is used
animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-3 = 
animation-charging-4 = 
; Framerate in milliseconds
animation-charging-framerate = 750

; Only applies if <animation-discharging> is used
animation-discharging-0 = 
animation-discharging-1 = 
animation-discharging-2 = 
animation-discharging-3 = 
animation-discharging-4 = 
; Framerate in milliseconds
animation-discharging-framerate = 500

; Only applies if <animation-low> is used
; New in version 3.6.0
animation-low-0 = !
animation-low-1 = 
animation-low-framerate = 200

[module/powermenu]
type = custom/menu
menu-0-0 = Poweroff
menu-0-0-exec = poweroff
menu-0-1 = Suspend
menu-0-1-exec = systemctl suspend
label-open = 

[settings]
screenchange-reload = true
pseudo-transparency = true

; vim:ft=dosini