From 45fd1a21da0ed93fa3ec4e7cec22c48e1ab754cb Mon Sep 17 00:00:00 2001
From: tactonbishop <tactonbishop@gmail.com>
Date: Sat, 14 May 2022 13:56:21 +0100
Subject: [PATCH] Set up  Polybar and launch with i3

---
 i3/config                      |  18 +--
 polybar/{config => config.ini} | 273 ++++++++++++++++++---------------
 polybar/launch.sh              |   9 ++
 3 files changed, 167 insertions(+), 133 deletions(-)
 rename polybar/{config => config.ini} (50%)
 create mode 100755 polybar/launch.sh

diff --git a/i3/config b/i3/config
index ecf1876..55710e7 100644
--- a/i3/config
+++ b/i3/config
@@ -180,18 +180,18 @@ mode "resize" {
 
 bindsym $mod+r mode "resize"
 
-# Start i3bar to display a workspace bar (plus the system information i3status
-# finds out, if available)
-bar {
-        status_command i3status
-}
+# --- Status bar --- #
 
-for_window [class="^.*"] border pixel 1
+# Launch Polybar on init instead of default i3bar: 
 
-gaps inner 10
-gaps outer 5
+exec_always --no-startup-id $HOME/.config/polybar/launch.sh
 
-# Theming 
+# --- Theming  ----- #
+
+gaps inner 5
+gaps outer 3
+
+for_window [class="^.*"] border pixel 2
 
 set $yellow		#717f24
 set $green		#2f7e25
diff --git a/polybar/config b/polybar/config.ini
similarity index 50%
rename from polybar/config
rename to polybar/config.ini
index bf63ee9..d7ab6b1 100644
--- a/polybar/config
+++ b/polybar/config.ini
@@ -15,32 +15,38 @@
 ;   The README contains a lot of information
 ;
 ;==========================================================
-
-[colors]
-;background = ${xrdb:color0:#222}
+[colors] 
 background = #112615
 background-alt = #444
-;foreground = ${xrdb:color7:#222}
 foreground = #637d75
-foreground-alt = #7f2b26
-primary = #ffb52a
-secondary = #e60053
-alert = #bd2c40
+foreground-alt = #717f24
+primary = #2f7e25
+secondary = #2f6a7f
+alert = #7f2b26
+disabled = #707880
+; [colors]
+; background = #282A2E
+; background-alt = #373B41
+; foreground = #C5C8C6
+; primary = #F0C674
+; secondary = #8ABEB7
+; alert = #A54242
+; disabled = #707880
 
 [bar/example]
-;monitor = ${env:MONITOR:HDMI-1}
+
 width = 100%
 height = 27
-;offset-x = 1%
-;offset-y = 1%
 radius = 0
-fixed-center = false
+
+; dpi = 96
+
+monitor = ${env:MONITOR:}
 
 background = ${colors.background}
 foreground = ${colors.foreground}
 
 line-size = 2
-line-color = #f00
 
 border-size = 0
 border-color = #00000000
@@ -49,139 +55,193 @@ padding-left = 2
 padding-right = 2
 
 module-margin-left = 1
-module-margin-right = 2
+module-margin-right =2
 
-font-0 = Roboto:pixelsize=11:style=Medium; 1
+;separator = |
+;separator-foreground = ${colors.disabled}
+
+font-0 = Roboto:pixelsize=11:style=Medium; 2
 font-1 = unicode:fontformat=truetype:size=8:antialias=false;0
 font-2 = siji:pixelsize=10;1
-
-modules-left = spotify 
-modules-center = 
-modules-right = filesystem  memory cpu  battery temperature date eth wlan
+font-3 = SymbolsNerdFont:size=14;5
+modules-left = my-text-label xworkspaces xwindow
+modules-right = filesystem  memory cpu battery temperature wlan date
+; modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth date
 
 tray-position = right
 tray-padding = 2
-;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
 
 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
+
+[module/xworkspaces]
+type = internal/xworkspaces
+
+label-active = %name%
+label-active-foreground = #0f1610
+label-active-background =  #2f7e25
+;label-active-underline= #18e000 
+label-active-padding = 3
+
+label-occupied = %name%
+label-occupied-padding = 3
+label-occupied-background =  #0f1610
+
+label-urgent = %name%
+label-urgent-background = ${colors.alert}
+label-urgent-padding = 3
+
+label-empty = %name%
+label-empty-foreground = ${colors.disabled}
+label-empty-padding = 3
+
+[module/xwindow]
+type = internal/xwindow
+label = %title:0:60:...%
+;format-foreground = #717f24
 [module/filesystem]
 type = internal/fs
 interval = 25
 
 mount-0 = /
 
-label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
+label-mounted = %{F#18e000}%mountpoint%%{F-} %percentage_used%%  (%used%/%free%)
+label-mounted-underline = #2f7e25
 label-unmounted = %mountpoint% not mounted
-label-unmounted-foreground = ${colors.foreground-alt}
+label-unmounted-foreground = ${colors.disabled}
 
+[module/pulseaudio]
+type = internal/pulseaudio
 
+format-volume-prefix = "VOL "
+format-volume-prefix-foreground = ${colors.primary}
+format-volume = <label-volume>
 
-[module/cpu]
-type = internal/cpu
-interval = 2
-format-prefix = " "
-format-prefix-foreground = ${colors.foreground-alt}
-format-underline = #df8008
-label = %percentage:2%%
+label-volume = %percentage%%
+
+label-muted = muted
+label-muted-foreground = ${colors.disabled}
+
+[module/xkeyboard]
+type = internal/xkeyboard
+blacklist-0 = num lock
+
+label-layout = %layout%
+label-layout-foreground = ${colors.primary}
+
+label-indicator-padding = 2
+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.foreground-alt}
+format-prefix = ""
 format-underline = #707f23
-label = %percentage_used%%
+format-prefix-foreground = ${colors.primary}
+;format-prefix-foreground = ${colors.primary}
+label = %percentage_used:2% (%gb_used%/%gb_free%)
+
+[module/cpu]
+type = internal/cpu
+interval = 2
+format-prefix = ""
+format-underline = #df8008
+format-prefix-foreground = ${colors.primary}
+label = %percentage:2%%
+
+[network-base]
+type = internal/network
+interval = 5
+format-connected = <label-connected>
+format-disconnected = <label-disconnected>
+label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
 
 [module/wlan]
-type = internal/network
-interface = wlp9s0
+inherit = network-base
+interface-type = wireless
+;label-connected = %{F#F0C674}%ifname%%{F-} %essid% 
+
 interval = 3.0
 
 format-connected = <ramp-signal> <label-connected>
 format-connected-underline = #47577e
 label-connected = %essid%
-
-format-disconnected =
-;format-disconnected = <label-disconnected>
-;format-disconnected-underline = ${self.format-connected-underline}
-;label-disconnected = %ifname% disconnected
-;label-disconnected-foreground = ${colors.foreground-alt}
-
 ramp-signal-0 = 
 ramp-signal-1 = 
 ramp-signal-2 = 
 ramp-signal-3 = 
 ramp-signal-4 = 
-ramp-signal-foreground = ${colors.foreground-alt}
+ramp-signal-foreground = ${colors.primary}
 
 [module/eth]
-type = internal/network
-interface = eno1
-interval = 3.0
-
-format-connected-underline = #55aa55
-format-connected-prefix = " "
-format-connected-prefix-foreground = ${colors.foreground-alt}
-label-connected = %local_ip%
-
-format-disconnected =
-;format-disconnected = <label-disconnected>
-;format-disconnected-underline = ${self.format-connected-underline}
-;label-disconnected = %ifname% disconnected
-;label-disconnected-foreground = ${colors.foreground-alt}
-
+inherit = network-base
+interface-type = wired
+label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
 
 [module/date]
 type = internal/date
-interval = 5
-
-date =
-date-alt = " %Y-%m-%d"
+interval = 1
 
+format-underline = #2f697f
+format-prefix-foreground = ${colors.primary}
+format-prefix = " "
+date = %a %d %b %Y
+date-alt = %Y-%m-%d %H:%M:%S
 time = %H:%M
 time-alt = %H:%M:%S
+label = %date% %{F#717f24}%time% 
+; label-foreground = ${colors.primary}
 
-format-prefix = 
-format-prefix-foreground = ${colors.foreground-alt}
-format-underline = #2f697f
+[module/temperature]
+type = internal/temperature
+thermal-zone = 0
+warn-temperature = 60
 
-label = %date% %time%
+format = <ramp> <label>
+format-underline = #327f77
+format-warn = <ramp> <label-warn>
+format-warn-underline = ${self.format-underline}
 
+label = %temperature-c%
+label-warn = %temperature-c%
+label-warn-foreground = ${colors.alert}
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-foreground = ${colors.primary}
 
 [module/battery]
 type = internal/battery
 battery = BAT0
 adapter = ADP1
 full-at = 98
-
+interval = 1
 format-charging = <animation-charging> <label-charging>
-format-charging-underline = #2f7e25
+format-charging-underline = #637d75
 
 format-discharging = <animation-discharging> <label-discharging>
 format-discharging-underline = ${self.format-charging-underline}
 
 format-full-prefix = " "
-format-full-prefix-foreground = ${colors.foreground-alt}
+format-full-prefix-foreground = ${colors.primary}
 format-full-underline = ${self.format-charging-underline}
 
 ramp-capacity-0 = 
-ramp-capacity-1 = 
+ramp-capacity-1 = c
 ramp-capacity-2 = 
-ramp-capacity-foreground = ${colors.foreground-alt}
+ramp-capacity-foreground = ${colors.primary}
 
 animation-charging-0 = 
 animation-charging-1 = 
@@ -192,50 +252,15 @@ animation-charging-framerate = 750
 animation-discharging-0 = 
 animation-discharging-1 = 
 animation-discharging-2 = 
-animation-discharging-foreground = ${colors.foreground-alt}
+animation-discharging-foreground = ${colors.alert}
 animation-discharging-framerate = 750
 
-[module/temperature]
-type = internal/temperature
-thermal-zone = 0
-warn-temperature = 60
-
-format = <ramp> <label>
-format-underline = #7f2b26
-format-warn = <ramp> <label-warn>
-format-warn-underline = ${self.format-underline}
-
-label = %temperature-c%
-label-warn = %temperature-c%
-label-warn-foreground = ${colors.secondary}
-
-ramp-0 = 
-ramp-1 = 
-ramp-2 = 
-ramp-foreground = ${colors.foreground-alt}
-
-[module/spotify]
-type = custom/script
-interval = 1
-format-prefix = " "
-format = <label>
-exec = ~/.config/polybar/scripts/spotify-status.py -f '{artist}: {song}'
-format-underline = #317f76
-;control players (optional)
-click-left = playerctl --player=spotify play-pause 
-click-right = playerctl --player=spotify next 
-click-middle = playerctl --player=spotify previous 
-
+[module/my-text-label]
+type = custom/text
+content = 
+;content-background = #2f7e25
+content-foreground = #2f6a7f
+content-padding = 3
 [settings]
 screenchange-reload = true
-;compositing-background = xor
-;compositing-background = screen
-;compositing-foreground = source
-;compositing-border = over
-;pseudo-transparency = false
-
-[global/wm]
-margin-top = 5
-margin-bottom = 0
-
-; vim:ft=dosini
+pseudo-transparency = true
diff --git a/polybar/launch.sh b/polybar/launch.sh
new file mode 100755
index 0000000..118291b
--- /dev/null
+++ b/polybar/launch.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+killall -q polybar
+
+# Launch Polybar on all connected monitors
+for m in $(polybar --list-monitors | cut -d":" -f1); do
+    MONITOR=$m polybar --reload example &
+done
+