aboutsummaryrefslogtreecommitdiff
path: root/src/config/files/polybar
diff options
context:
space:
mode:
authorAaditya Dhruv <[email protected]>2023-09-09 23:09:21 -0500
committerAaditya Dhruv <[email protected]>2023-09-09 23:09:21 -0500
commit39044cddeeba5ad91402f8abfb2a286e48a4f50d (patch)
tree5187a5cba1e6f437e59310f17956f16e3638d291 /src/config/files/polybar
parent1811600f4f2547a6116e1cc1c91f8cf89adcac6b (diff)
Move files for config role
This movement is needed to maintain the role structure
Diffstat (limited to 'src/config/files/polybar')
-rw-r--r--src/config/files/polybar/bars.ini551
-rw-r--r--src/config/files/polybar/colors.ini36
-rw-r--r--src/config/files/polybar/config.ini296
-rwxr-xr-xsrc/config/files/polybar/launch.sh14
-rw-r--r--src/config/files/polybar/modules.ini1132
-rw-r--r--src/config/files/polybar/preview.ini310
-rwxr-xr-xsrc/config/files/polybar/preview.sh14
-rwxr-xr-xsrc/config/files/polybar/scripts/checkupdates117
-rwxr-xr-xsrc/config/files/polybar/scripts/launcher.sh13
-rwxr-xr-xsrc/config/files/polybar/scripts/powermenu.sh91
-rw-r--r--src/config/files/polybar/scripts/rofi/colors.rasi13
-rw-r--r--src/config/files/polybar/scripts/rofi/confirm.rasi24
-rw-r--r--src/config/files/polybar/scripts/rofi/launcher.rasi118
-rw-r--r--src/config/files/polybar/scripts/rofi/message.rasi24
-rw-r--r--src/config/files/polybar/scripts/rofi/networkmenu.rasi123
-rw-r--r--src/config/files/polybar/scripts/rofi/powermenu.rasi124
-rw-r--r--src/config/files/polybar/scripts/rofi/styles.rasi123
-rwxr-xr-xsrc/config/files/polybar/scripts/style-switch.sh15
-rwxr-xr-xsrc/config/files/polybar/scripts/styles.sh76
-rwxr-xr-xsrc/config/files/polybar/scripts/updates.sh45
-rw-r--r--src/config/files/polybar/user_modules.ini256
21 files changed, 3515 insertions, 0 deletions
diff --git a/src/config/files/polybar/bars.ini b/src/config/files/polybar/bars.ini
new file mode 100644
index 0000000..06b6eda
--- /dev/null
+++ b/src/config/files/polybar/bars.ini
@@ -0,0 +1,551 @@
+;; ┌────────────────────────────────────────────────────┐
+;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▄░█▀█░█▀▄░█▀▀│
+;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█▀▄░█▀█░█▀▄░▀▀█│
+;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀░░▀░▀░▀░▀░▀▀▀│
+;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░│
+;; └────────────────────────────────────────────────────┘
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[bar]
+fill = ⏽
+empty = ⏽
+indicator =
+; Nerd font :   ,  ⏽,  樂 籠 錄 , 雷 絛
+
+[module/volume]
+type = internal/alsa
+
+; Soundcard to be used
+; Usually in the format hw:# where # is the card number
+; You can find the different card numbers in `/proc/asound/cards`
+master-soundcard = default
+speaker-soundcard = default
+headphone-soundcard = default
+
+; Name of the master, speaker and headphone mixers
+; Use the following command to list available mixer controls:
+; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p"
+; If master, speaker or headphone-soundcard isn't the default,
+; use `amixer -c # scontrols` instead where # is the number
+; of the master, speaker or headphone soundcard respectively
+;
+; Default: Master
+master-mixer = Master
+
+; Optionally define speaker and headphone mixers
+; Default: none
+;;speaker-mixer = Speaker
+; Default: none
+;;headphone-mixer = Headphone
+
+; NOTE: This is required if headphone_mixer is defined
+; Use the following command to list available device controls
+; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort
+; You may also need to use `amixer -c # controls` as above for the mixer names
+; Default: none
+;;headphone-id = 9
+
+; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear
+; Default: false
+;;mapped = true
+
+; Interval for volume increase/decrease (in percent points)
+; Default: 5
+interval = 5
+
+; Available tags:
+; <label-volume> (default)
+; <ramp-volume>
+; <bar-volume>
+format-volume = <ramp-volume> <bar-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+format-muted-prefix = 
+format-muted-prefix-foreground = ${color.red}
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+label-muted = " Muted"
+label-muted-foreground = ${color.sep}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 
+ramp-volume-1 = 
+ramp-volume-2 = 
+ramp-volume-foreground = ${color.blue}
+
+; Only applies if <bar-volume> is used
+bar-volume-format = "%fill%%indicator%%empty%"
+bar-volume-width = 11
+bar-volume-gradient = false
+
+bar-volume-indicator = ${bar.indicator}
+bar-volume-indicator-foreground = ${color.foreground}
+bar-volume-indicator-font = 2
+
+bar-volume-fill = ${bar.fill}
+bar-volume-fill-font = 2
+bar-volume-foreground-0 = ${color.green}
+bar-volume-foreground-1 = ${color.green}
+bar-volume-foreground-2 = ${color.yellow}
+bar-volume-foreground-3 = ${color.yellow}
+bar-volume-foreground-4 = ${color.red}
+
+bar-volume-empty = ${bar.empty}
+bar-volume-empty-font = 2
+bar-volume-empty-foreground = ${color.sep}
+
+; If defined, it will replace <ramp-volume> when
+; headphones are plugged in to `headphone_control_numid`
+; If undefined, <ramp-volume> will be used for both
+; Only applies if <ramp-volume> is used
+ramp-headphones-0 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+;type = internal/xbacklight
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+;card = intel_backlight
+card = amdgpu_bl0
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <ramp> <bar>
+
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-foreground = ${color.lime}
+
+; Only applies if <bar> is used
+bar-format = "%fill%%indicator%%empty%"
+bar-width = 11
+bar-gradient = false
+
+bar-indicator = ${bar.indicator}
+bar-indicator-foreground = ${color.foreground}
+bar-indicator-font = 2
+
+bar-fill = ${bar.fill}
+bar-fill-font = 2
+bar-foreground-0 = ${color.green}
+bar-foreground-1 = ${color.green}
+bar-foreground-2 = ${color.yellow}
+bar-foreground-3 = ${color.yellow}
+bar-foreground-4 = ${color.red}
+
+bar-empty = ${bar.empty}
+bar-empty-font = 2
+bar-empty-foreground = ${color.sep}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery_bar]
+type = internal/battery
+
+; This is useful in case the battery never reports 100% charge
+full-at = 99
+
+; Use the following command to list batteries and adapters:
+; $ ls -1 /sys/class/power_supply/
+battery = BAT1
+adapter = ACAD
+
+; 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 = 2
+
+; 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 = <bar-capacity>
+format-charging-prefix = ""
+format-charging-prefix-foreground = ${color.green}
+
+; Available tags:
+; <label-discharging> (default)
+; <bar-capacity>
+; <ramp-capacity>
+; <animation-discharging>
+format-discharging = <bar-capacity>
+format-discharging-prefix = ""
+format-discharging-prefix-foreground = ${color.pink}
+
+; Available tags:
+; <label-full> (default)
+; <bar-capacity>
+; <ramp-capacity>
+format-full = <label-full>
+format-full-prefix = ""
+format-full-prefix-foreground = ${color.red}
+
+; Available tokens:
+; %percentage% (default)
+; %time%
+; %consumption% (shows current charge rate in watts)
+
+label-charging = %percentage%%
+
+; Available tokens:
+; %percentage% (default)
+; %time%
+; %consumption% (shows current discharge rate in watts)
+label-discharging = %percentage%%
+
+; Available tokens:
+; %percentage% (default)
+label-full = Full
+
+; Only applies if <bar-capacity> is used
+bar-capacity-format = " %fill%%indicator%%empty%"
+bar-capacity-width = 11
+bar-capacity-gradient = false
+
+bar-capacity-indicator = ${bar.indicator}
+bar-capacity-indicator-font = 2
+bar-capacity-indicator-foreground = ${color.foreground}
+
+bar-capacity-fill = ${bar.fill}
+bar-capacity-fill-font = 2
+bar-capacity-foreground-0 = ${color.green}
+bar-capacity-foreground-1 = ${color.green}
+bar-capacity-foreground-2 = ${color.yellow}
+bar-capacity-foreground-3 = ${color.yellow}
+bar-capacity-foreground-4 = ${color.red}
+
+bar-capacity-empty = ${bar.empty}
+bar-capacity-empty-font = 2
+bar-capacity-empty-foreground = ${color.sep}
+bar-fill-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/cpu_bar]
+type = internal/cpu
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 0.5
+
+; Available tags:
+; <label> (default)
+; <bar-load>
+; <ramp-load>
+; <ramp-coreload>
+;;format = <label> <ramp-coreload>
+format = <bar-load><label>
+format-prefix = 
+format-prefix-foreground = ${color.teal}
+
+; Available tokens:
+; %percentage% (default) - total cpu load averaged over all cores
+; %percentage-sum% - Cumulative load on all cores
+; %percentage-cores% - load percentage for each core
+; %percentage-core[1-9]% - load percentage for specific core
+label = " %percentage%%"
+
+; Only applies if <bar-load> is used
+bar-load-format = " %fill%%indicator%%empty%"
+bar-load-width = 11
+bar-load-gradient = false
+
+bar-load-indicator = ${bar.indicator}
+bar-load-indicator-font = 2
+bar-load-indicator-foreground = ${color.foreground}
+
+bar-load-fill = ${bar.fill}
+bar-load-fill-font = 2
+bar-load-foreground-0 = ${color.green}
+bar-load-foreground-1 = ${color.green}
+bar-load-foreground-2 = ${color.yellow}
+bar-load-foreground-3 = ${color.yellow}
+bar-load-foreground-4 = ${color.red}
+
+bar-load-empty = ${bar.empty}
+bar-load-empty-font = 2
+bar-load-empty-foreground = ${color.sep}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/filesystem_bar]
+type = internal/fs
+
+; Mountpoints to display
+mount-0 = /
+;;mount-1 = /home
+;;mount-2 = /var
+
+; Seconds to sleep between updates
+; Default: 30
+interval = 30
+
+; Display fixed precision values
+; Default: false
+fixed-values = false
+
+; Spacing between entries
+; Default: 2
+;;spacing = 4
+
+; Available tags:
+; <label-mounted> (default)
+; <bar-free>
+; <bar-used>
+; <ramp-capacity>
+format-mounted = <bar-used><label-mounted>
+format-mounted-prefix = 
+format-mounted-prefix-foreground = ${color.purple}
+
+; Available tags:
+; <label-unmounted> (default)
+format-unmounted = <label-unmounted>
+format-unmounted-prefix = 
+format-unmounted-prefix-foreground = ${color.red}
+
+; Available tokens:
+; %mountpoint%
+; %type%
+; %fsname%
+; %percentage_free%
+; %percentage_used%
+; %total%
+; %free%
+; %used%
+; Default: %mountpoint% %percentage_free%%
+label-mounted = " %used%/%total%"
+
+; Available tokens:
+; %mountpoint%
+; Default: %mountpoint% is not mounted
+label-unmounted = " %mountpoint%: not mounted"
+
+; Only applies if <bar-used> is used
+bar-used-format = " %fill%%indicator%%empty%"
+bar-used-width = 11
+bar-used-gradient = false
+
+bar-used-indicator = ${bar.indicator}
+bar-used-indicator-font = 2
+bar-used-indicator-foreground = ${color.foreground}
+
+bar-used-fill = ${bar.fill}
+bar-used-fill-font = 2
+bar-used-foreground-0 = ${color.green}
+bar-used-foreground-1 = ${color.green}
+bar-used-foreground-2 = ${color.yellow}
+bar-used-foreground-3 = ${color.yellow}
+bar-used-foreground-4 = ${color.red}
+
+bar-used-empty = ${bar.empty}
+bar-used-empty-font = 2
+bar-used-empty-foreground = ${color.sep}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/memory_bar]
+type = internal/memory
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 2
+
+; Available tags:
+; <label> (default)
+; <bar-used>
+; <bar-free>
+; <ramp-used>
+; <ramp-free>
+; <bar-swap-used>
+; <bar-swap-free>
+; <ramp-swap-used>
+; <ramp-swap-free>
+format = <bar-used><label>
+format-prefix = 
+format-prefix-foreground = ${color.indigo}
+
+; Available tokens:
+; %percentage_used% (default)
+; %percentage_free%
+; %gb_used%
+; %gb_free%
+; %gb_total%
+; %mb_used%
+; %mb_free%
+; %mb_total%
+; %percentage_swap_used%
+; %percentage_swap_free%
+; %mb_swap_total%
+; %mb_swap_free%
+; %mb_swap_used%
+; %gb_swap_total%
+; %gb_swap_free%
+; %gb_swap_used%
+
+label = " %mb_used%"
+
+; Only applies if <bar-used> is used
+bar-used-format = " %fill%%indicator%%empty%"
+bar-used-width = 11
+bar-used-gradient = false
+
+bar-used-indicator = ${bar.indicator}
+bar-used-indicator-font = 2
+bar-used-indicator-foreground = ${color.foreground}
+
+bar-used-fill = ${bar.fill}
+bar-used-fill-font = 2
+bar-used-foreground-0 = ${color.green}
+bar-used-foreground-1 = ${color.green}
+bar-used-foreground-2 = ${color.yellow}
+bar-used-foreground-3 = ${color.yellow}
+bar-used-foreground-4 = ${color.red}
+
+bar-used-empty = ${bar.empty}
+bar-used-empty-font = 2
+bar-used-empty-foreground = ${color.sep}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mpd_bar]
+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 = 127.0.0.1
+;;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 = <label-song><bar-progress><label-time>
+format-online-prefix = 
+format-online-prefix-foreground = ${color.green}
+
+;format-playing = ${self.format-online}
+;format-paused = ${self.format-online}
+;format-stopped = ${self.format-online}
+
+; Available tags:
+; <label-offline>
+format-offline = <label-offline>
+format-offline-prefix = 
+format-offline-prefix-foreground = ${color.red}
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = " %artist% - %title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+label-time = " %elapsed% / %total%"
+
+; Available tokens:
+; None
+label-offline = " Offline"
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-pause = 
+icon-stop = 
+icon-next = 
+icon-prev = 
+icon-seekf =
+icon-seekb =
+icon-random =
+icon-repeat =
+icon-repeatone =
+icon-single =
+icon-consume =
+
+; Used to display the state of random/repeat/repeatone/single
+; Only applies if <icon-[random|repeat|repeatone|single]> is used
+toggle-on-foreground = ${color.primary}
+toggle-off-foreground = ${color.secondary}
+
+; Only applies if <bar-progress> is used
+bar-progress-format = " %fill%%indicator%%empty%"
+bar-progress-width = 11
+bar-progress-gradient = false
+
+bar-progress-indicator = ${bar.indicator}
+bar-progress-indicator-font = 2
+bar-progress-indicator-foreground = ${color.foreground}
+
+bar-progress-fill = ${bar.fill}
+bar-progress-fill-font = 2
+bar-progress-foreground-0 = ${color.green}
+bar-progress-foreground-1 = ${color.green}
+bar-progress-foreground-2 = ${color.yellow}
+bar-progress-foreground-3 = ${color.yellow}
+bar-progress-foreground-4 = ${color.red}
+
+bar-progress-empty = ${bar.empty}
+bar-progress-empty-font = 2
+bar-progress-empty-foreground = ${color.sep}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/src/config/files/polybar/colors.ini b/src/config/files/polybar/colors.ini
new file mode 100644
index 0000000..ee5ea30
--- /dev/null
+++ b/src/config/files/polybar/colors.ini
@@ -0,0 +1,36 @@
+;; ┌────────────────────────────────────────────────────────────┐
+;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▀░█▀█░█░░░█▀█░█▀▄░█▀▀│
+;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░░░█░█░█░░░█░█░█▀▄░▀▀█│
+;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀│
+;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░│
+;; └────────────────────────────────────────────────────────────┘
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[color]
+
+;; Use pywal.sh in scripts directory to use colors from an image/wallpaper.
+
+;; main colors
+background = #1d2021
+foreground = #EBDBB2
+sep = #505050
+
+white = #FFFFFF
+black = #000000
+red = #cc241d
+pink = #EC407A
+purple = #d3869b
+blue = #458588
+cyan = #458588
+teal = #689d6a
+green = #98971a
+lime = #b8bb26
+yellow = #fabd2f
+amber = #d79921
+orange = #fe8019
+brown = #32302f
+indigo = #d3869b
+gray = #928374
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/src/config/files/polybar/config.ini b/src/config/files/polybar/config.ini
new file mode 100644
index 0000000..36383de
--- /dev/null
+++ b/src/config/files/polybar/config.ini
@@ -0,0 +1,296 @@
+;; ┌────────────────────────────────────────────────────────────┐
+;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀│
+;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░░░█░█░█░█░█▀▀░░█░░█░█│
+;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀│
+;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░│
+;; └────────────────────────────────────────────────────────────┘
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; Global WM Settings
+
+[global/wm]
+; Adjust the _NET_WM_STRUT_PARTIAL top value
+; Used for top aligned bars
+margin-bottom = 0
+
+; Adjust the _NET_WM_STRUT_PARTIAL bottom value
+; Used for bottom aligned bars
+margin-top = 0
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; File Inclusion
+; include an external file, like module file, etc.
+
+include-file = ~/.config/polybar/bars.ini
+include-file = ~/.config/polybar/colors.ini
+include-file = ~/.config/polybar/modules.ini
+include-file = ~/.config/polybar/user_modules.ini
+#include-file = ~/Repos/ampp/ampp.ini
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; Bar Settings
+
+[bar/main]
+; Use either of the following command to list available outputs:
+; If unspecified, the application will pick the first one it finds.
+; $ polybar -m | cut -d ':' -f 1
+; $ xrandr -q | grep " connected" | cut -d ' ' -f1
+monitor =
+
+; Use the specified monitor as a fallback if the main one is not found.
+monitor-fallback =
+
+; Require the monitor to be in connected state
+; XRandR sometimes reports my monitor as being disconnected (when in use)
+monitor-strict = false
+
+; Tell the Window Manager not to configure the window.
+; Use this to detach the bar if your WM is locking its size/position.
+override-redirect = false
+
+; Put the bar at the bottom of the screen
+bottom = false
+
+; Prefer fixed center position for the `modules-center` block
+; When false, the center position will be based on the size of the other blocks.
+fixed-center = true
+
+; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%),
+; the percentage can optionally be extended with a pixel offset like so:
+; 50%:-10, this will result in a width or height of 50% minus 10 pixels
+width = 100%
+height = 30
+
+; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
+; the percentage can optionally be extended with a pixel offset like so:
+; 50%:-10, this will result in an offset in the x or y direction
+; of 50% minus 10 pixels
+offset-x = 0%
+offset-y = 0%
+
+; Background ARGB color (e.g. #f00, #ff992a, #ddff1023)
+background = ${color.background}
+
+; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
+foreground = ${color.foreground}
+
+; Background gradient (vertical steps)
+; background-[0-9]+ = #aarrggbb
+;;background-0 =
+
+; Value used for drawing rounded corners
+; Note: This shouldn't be used together with border-size because the border
+; doesn't get rounded
+; Individual top/bottom values can be defined using:
+; radius-{top,bottom}
+radius-top = 0.0
+radius-bottom = 0.0
+
+; Under-/overline pixel size and argb color
+; Individual values can be defined using:
+; {overline,underline}-size
+; {overline,underline}-color
+line-size = 0
+line-color = ${color.background}
+
+; Values applied to all borders
+; Individual side values can be defined using:
+; border-{left,top,right,bottom}-size
+; border-{left,top,right,bottom}-color
+; The top and bottom borders are added to the bar height, so the effective
+; window height is:
+; height + border-top-size + border-bottom-size
+; Meanwhile the effective window width is defined entirely by the width key and
+; the border is placed withing this area. So you effectively only have the
+; following horizontal space on the bar:
+; width - border-right-size - border-left-size
+border-bottom-size = 0
+border-bottom-color = ${color.foreground}
+
+; Number of spaces to add at the beginning/end of the bar
+; Individual side values can be defined using:
+; padding-{left,right}
+padding = 2
+
+; Number of spaces to add before/after each module
+; Individual side values can be defined using:
+; module-margin-{left,right}
+module-margin-left = 1
+module-margin-right = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; Fonts are defined using <font-name>;<vertical-offset>
+; Font names are specified using a fontconfig pattern.
+; font-0 = NotoSans-Regular:size=8;2
+; font-1 = MaterialIcons:size=10
+; font-2 = Termsynu:size=8;-1
+; font-3 = FontAwesome:size=10
+; See the Fonts wiki page for more details
+
+font-0 = "MesloLGS NF:size=10;3"
+font-1 = "Iosevka Nerd Font:size=10;3"
+font-2 = "feather:size=10;3"
+font-3 = "Nerd Font:size=10;3"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbacklight
+; modules-right = ipc clock
+
+modules-left = workspaces
+modules-center = title
+modules-right = memory pulseaudio date
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; The separator will be inserted between the output of each module
+separator =
+
+; Opacity value between 0.0 and 1.0 used on fade in/out
+dim-value = 1.0
+
+; Value to be used to set the WM_NAME atom
+; If the value is empty or undefined, the atom value
+; will be created from the following template: polybar-[BAR]_[MONITOR]
+; NOTE: The placeholders are not available for custom values
+wm-name =
+
+; Locale used to localize various module data (e.g. date)
+; Expects a valid libc locale, for example: sv_SE.UTF-8
+locale =
+
+; Position of the system tray window
+; If empty or undefined, tray support will be disabled
+; NOTE: A center aligned tray will cover center aligned modules
+;
+; Available positions:
+; left
+; center
+; right
+; none
+tray-position = none
+
+; If true, the bar will not shift its
+; contents when the tray changes
+tray-detached = false
+
+; Tray icon max size
+tray-maxsize = 16
+
+; Background color for the tray container
+; ARGB color (e.g. #f00, #ff992a, #ddff1023)
+; By default the tray container will use the bar
+; background color.
+tray-background = ${color.background}
+
+; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
+tray-offset-x = 0
+tray-offset-y = 0
+
+; Pad the sides of each tray icon
+tray-padding = 0
+
+; Scale factor for tray clients
+tray-scale = 1.0
+
+; Restack the bar window and put it above the
+; selected window manager's root
+;
+; Fixes the issue where the bar is being drawn
+; on top of fullscreen window's
+;
+; Currently supported WM's:
+; bspwm
+; i3 (requires: `override-redirect = true`)
+;;wm-restack =
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+dpi = 96
+
+; Enable support for inter-process messaging
+; See the Messaging wiki page for more details.
+enable-ipc = true
+
+; Fallback click handlers that will be called if
+; there's no matching module handler found.
+click-left =
+click-middle =
+click-right =
+scroll-up =
+scroll-down =
+double-click-left =
+double-click-middle =
+double-click-right =
+
+; Requires polybar to be built with xcursor support (xcb-util-cursor)
+; Possible values are:
+; - default : The default pointer as before, can also be an empty string (default)
+; - pointer : Typically in the form of a hand
+; - ns-resize : Up and down arrows, can be used to indicate scrolling
+cursor-click =
+cursor-scroll =
+
+;; WM Workspace Specific
+
+; bspwm
+;;scroll-up = bspwm-desknext
+;;scroll-down = bspwm-deskprev
+;;scroll-up = bspc desktop -f prev.local
+;;scroll-down = bspc desktop -f next.local
+
+;i3
+;;scroll-up = i3wm-wsnext
+;;scroll-down = i3wm-wsprev
+;;scroll-up = i3-msg workspace next_on_output
+;;scroll-down = i3-msg workspace prev_on_output
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; Application Settings
+
+[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
+
+; Time in milliseconds that the input handler will wait between processing events
+;throttle-input-for = 30
+
+; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events
+screenchange-reload = false
+
+; Compositing operators
+; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t
+compositing-background = source
+compositing-foreground = over
+compositing-overline = over
+compositing-underline = over
+compositing-border = over
+
+; Define fallback values used by all module formats
+;format-foreground =
+;format-background =
+;format-underline =
+;format-overline =
+;format-spacing =
+;format-padding =
+;format-margin =
+;format-offset =
+
+; Enables pseudo-transparency for the bar
+; If set to true the bar can be transparent without a compositor.
+pseudo-transparency = false
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/src/config/files/polybar/launch.sh b/src/config/files/polybar/launch.sh
new file mode 100755
index 0000000..68ca15b
--- /dev/null
+++ b/src/config/files/polybar/launch.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+
+# Add this script to your wm startup file.
+
+DIR="$HOME/.config/polybar"
+
+# Terminate already running bar instances
+killall -q polybar
+
+# Wait until the processes have been shut down
+while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
+
+# Launch the bar
+polybar -q main -c "$DIR"/config.ini &
diff --git a/src/config/files/polybar/modules.ini b/src/config/files/polybar/modules.ini
new file mode 100644
index 0000000..81c27d6
--- /dev/null
+++ b/src/config/files/polybar/modules.ini
@@ -0,0 +1,1132 @@
+;; ┌────────────────────────────────────────────────────────────────┐
+;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀│
+;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█│
+;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀