summaryrefslogtreecommitdiff
path: root/dot-config/bspwm
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2024-06-03 19:56:39 +0800
committerlittleblack111 <littleblack11111@gmail.com>2024-06-03 19:56:39 +0800
commitca968c4e5040f1ff4b5b5e12d9312360d807dcc1 (patch)
tree9900920e8f566794560c1519678e344351d2803b /dot-config/bspwm
parent5f3deaff0bf006a1a353e57b82ad48c0e8f143bc (diff)
added submodules, change . -> dot (see man stow --dotfiles)
Diffstat (limited to 'dot-config/bspwm')
-rw-r--r--dot-config/bspwm/alacritty/alacritty.yml51
-rw-r--r--dot-config/bspwm/alacritty/colors.yml28
-rw-r--r--dot-config/bspwm/alacritty/fonts.yml37
-rwxr-xr-xdot-config/bspwm/bspwmrc308
-rwxr-xr-xdot-config/bspwm/bspwmrc.bak190
-rw-r--r--dot-config/bspwm/dunstrc69
-rw-r--r--dot-config/bspwm/layout0
-rw-r--r--dot-config/bspwm/picom.conf417
-rw-r--r--dot-config/bspwm/scripts/.zshenv8
-rwxr-xr-xdot-config/bspwm/scripts/bspasfloat15
-rwxr-xr-xdot-config/bspwm/scripts/bspasroot10
-rwxr-xr-xdot-config/bspwm/scripts/bspbar11
-rwxr-xr-xdot-config/bspwm/scripts/bspbrightness71
-rwxr-xr-xdot-config/bspwm/scripts/bspcolorpicker20
-rwxr-xr-xdot-config/bspwm/scripts/bspcomp13
-rwxr-xr-xdot-config/bspwm/scripts/bspdunst11
-rwxr-xr-xdot-config/bspwm/scripts/bspfloat10
-rwxr-xr-xdot-config/bspwm/scripts/bspmusic13
-rwxr-xr-xdot-config/bspwm/scripts/bspscreenshot93
-rwxr-xr-xdot-config/bspwm/scripts/bspswallow53
-rwxr-xr-xdot-config/bspwm/scripts/bspterm23
-rwxr-xr-xdot-config/bspwm/scripts/bspvolume81
-rwxr-xr-xdot-config/bspwm/scripts/bspwinmask9
-rwxr-xr-xdot-config/bspwm/scripts/drag-to-float52
-rwxr-xr-xdot-config/bspwm/scripts/keep_state2
-rwxr-xr-xdot-config/bspwm/scripts/noswallow1
-rwxr-xr-xdot-config/bspwm/scripts/noswallow_dmenu17
-rwxr-xr-xdot-config/bspwm/scripts/noswallow_open7
-rwxr-xr-xdot-config/bspwm/scripts/terminals3
-rw-r--r--dot-config/bspwm/sxhkdrc268
-rw-r--r--dot-config/bspwm/themes/.current1
-rw-r--r--dot-config/bspwm/themes/.system0
-rwxr-xr-xdot-config/bspwm/themes/adaptive/apply.sh286
-rw-r--r--dot-config/bspwm/themes/adaptive/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/adaptive/polybar/colors.ini31
-rw-r--r--dot-config/bspwm/themes/adaptive/polybar/config.ini307
-rw-r--r--dot-config/bspwm/themes/adaptive/polybar/decor.ini92
-rwxr-xr-xdot-config/bspwm/themes/adaptive/polybar/launch.sh42
-rw-r--r--dot-config/bspwm/themes/adaptive/polybar/modules.ini1007
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/askpass.rasi75
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/asroot.rasi147
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/confirm.rasi147
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/launcher.rasi303
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/music.rasi147
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/networkmenu.rasi156
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/powermenu.rasi147
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/runner.rasi303
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/screenshot.rasi147
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/shared/fonts.rasi7
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/themes.rasi147
-rw-r--r--dot-config/bspwm/themes/adaptive/rofi/windows.rasi303
-rw-r--r--dot-config/bspwm/themes/adaptive/theme.bash82
l---------dot-config/bspwm/themes/adaptive/wallpaper1
-rwxr-xr-xdot-config/bspwm/themes/beach/apply.sh278
-rw-r--r--dot-config/bspwm/themes/beach/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/beach/polybar/colors.ini24
-rw-r--r--dot-config/bspwm/themes/beach/polybar/config.ini317
-rwxr-xr-xdot-config/bspwm/themes/beach/polybar/launch.sh42
-rw-r--r--dot-config/bspwm/themes/beach/polybar/modules.ini1161
-rw-r--r--dot-config/bspwm/themes/beach/rofi/askpass.rasi75
-rw-r--r--dot-config/bspwm/themes/beach/rofi/asroot.rasi306
-rw-r--r--dot-config/bspwm/themes/beach/rofi/confirm.rasi306
-rw-r--r--dot-config/bspwm/themes/beach/rofi/launcher.rasi302
-rw-r--r--dot-config/bspwm/themes/beach/rofi/music.rasi306
-rw-r--r--dot-config/bspwm/themes/beach/rofi/networkmenu.rasi303
-rw-r--r--dot-config/bspwm/themes/beach/rofi/powermenu.rasi306
-rw-r--r--dot-config/bspwm/themes/beach/rofi/runner.rasi302
-rw-r--r--dot-config/bspwm/themes/beach/rofi/screenshot.rasi306
-rw-r--r--dot-config/bspwm/themes/beach/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/beach/rofi/shared/fonts.rasi7
-rw-r--r--dot-config/bspwm/themes/beach/rofi/themes.rasi306
-rw-r--r--dot-config/bspwm/themes/beach/rofi/windows.rasi302
-rw-r--r--dot-config/bspwm/themes/beach/theme.bash82
l---------dot-config/bspwm/themes/beach/wallpaper1
-rwxr-xr-xdot-config/bspwm/themes/default/apply.sh276
-rw-r--r--dot-config/bspwm/themes/default/archive.zipbin0 -> 5083683 bytes
-rw-r--r--dot-config/bspwm/themes/default/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/default/polybar/colors.ini24
-rw-r--r--dot-config/bspwm/themes/default/polybar/config.ini110
-rw-r--r--dot-config/bspwm/themes/default/polybar/decor.ini43
-rwxr-xr-xdot-config/bspwm/themes/default/polybar/launch.sh42
-rw-r--r--dot-config/bspwm/themes/default/polybar/modules.ini747
-rw-r--r--dot-config/bspwm/themes/default/rofi/askpass.rasi77
-rw-r--r--dot-config/bspwm/themes/default/rofi/asroot.rasi151
-rw-r--r--dot-config/bspwm/themes/default/rofi/clipboard.rasi300
-rw-r--r--dot-config/bspwm/themes/default/rofi/configs.rasi286
-rw-r--r--dot-config/bspwm/themes/default/rofi/confirm.rasi148
-rw-r--r--dot-config/bspwm/themes/default/rofi/custom_command.rasi77
-rw-r--r--dot-config/bspwm/themes/default/rofi/emoji.rasi300
-rw-r--r--dot-config/bspwm/themes/default/rofi/filebrowser.rasi268
-rw-r--r--dot-config/bspwm/themes/default/rofi/launcher.rasi298
-rw-r--r--dot-config/bspwm/themes/default/rofi/music.rasi151
-rw-r--r--dot-config/bspwm/themes/default/rofi/networkmenu.rasi302
-rw-r--r--dot-config/bspwm/themes/default/rofi/powermenu.rasi151
-rw-r--r--dot-config/bspwm/themes/default/rofi/runner.rasi302
-rw-r--r--dot-config/bspwm/themes/default/rofi/screenshot.rasi151
-rw-r--r--dot-config/bspwm/themes/default/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/default/rofi/shared/fonts.rasi5
-rw-r--r--dot-config/bspwm/themes/default/rofi/themes.rasi305
-rw-r--r--dot-config/bspwm/themes/default/rofi/wallpaper.rasi302
-rw-r--r--dot-config/bspwm/themes/default/rofi/windows.rasi302
-rw-r--r--dot-config/bspwm/themes/default/theme.bash80
l---------dot-config/bspwm/themes/default/wallpaper1
-rwxr-xr-xdot-config/bspwm/themes/forest/apply.sh278
-rw-r--r--dot-config/bspwm/themes/forest/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/forest/polybar/bars.ini645
-rw-r--r--dot-config/bspwm/themes/forest/polybar/colors.ini24
-rw-r--r--dot-config/bspwm/themes/forest/polybar/config.ini319
-rwxr-xr-xdot-config/bspwm/themes/forest/polybar/launch.sh42
-rw-r--r--dot-config/bspwm/themes/forest/polybar/modules.ini1095
-rw-r--r--dot-config/bspwm/themes/forest/rofi/askpass.rasi75
-rw-r--r--dot-config/bspwm/themes/forest/rofi/asroot.rasi147
-rw-r--r--dot-config/bspwm/themes/forest/rofi/confirm.rasi147
-rw-r--r--dot-config/bspwm/themes/forest/rofi/launcher.rasi166
-rw-r--r--dot-config/bspwm/themes/forest/rofi/music.rasi147
-rw-r--r--dot-config/bspwm/themes/forest/rofi/networkmenu.rasi167
-rw-r--r--dot-config/bspwm/themes/forest/rofi/powermenu.rasi147
-rw-r--r--dot-config/bspwm/themes/forest/rofi/runner.rasi166
-rw-r--r--dot-config/bspwm/themes/forest/rofi/screenshot.rasi147
-rw-r--r--dot-config/bspwm/themes/forest/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/forest/rofi/shared/fonts.rasi7
-rw-r--r--dot-config/bspwm/themes/forest/rofi/themes.rasi147
-rw-r--r--dot-config/bspwm/themes/forest/rofi/windows.rasi180
-rw-r--r--dot-config/bspwm/themes/forest/theme.bash82
l---------dot-config/bspwm/themes/forest/wallpaper1
-rwxr-xr-xdot-config/bspwm/themes/hack/apply.sh282
-rw-r--r--dot-config/bspwm/themes/hack/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/hack/polybar/bars.ini553
-rw-r--r--dot-config/bspwm/themes/hack/polybar/colors.ini28
-rw-r--r--dot-config/bspwm/themes/hack/polybar/config.ini309
-rwxr-xr-xdot-config/bspwm/themes/hack/polybar/launch.sh43
-rw-r--r--dot-config/bspwm/themes/hack/polybar/modules.ini1258
-rwxr-xr-xdot-config/bspwm/themes/hack/polybar/scripts/check-network21
-rwxr-xr-xdot-config/bspwm/themes/hack/polybar/scripts/checkupdates117
-rwxr-xr-xdot-config/bspwm/themes/hack/polybar/scripts/updates.sh47
-rw-r--r--dot-config/bspwm/themes/hack/rofi/askpass.rasi77
-rw-r--r--dot-config/bspwm/themes/hack/rofi/asroot.rasi147
-rw-r--r--dot-config/bspwm/themes/hack/rofi/confirm.rasi147
-rw-r--r--dot-config/bspwm/themes/hack/rofi/launcher.rasi308
-rw-r--r--dot-config/bspwm/themes/hack/rofi/music.rasi147
-rw-r--r--dot-config/bspwm/themes/hack/rofi/networkmenu.rasi280
-rw-r--r--dot-config/bspwm/themes/hack/rofi/powermenu.rasi147
-rw-r--r--dot-config/bspwm/themes/hack/rofi/runner.rasi279
-rw-r--r--dot-config/bspwm/themes/hack/rofi/screenshot.rasi147
-rw-r--r--dot-config/bspwm/themes/hack/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/hack/rofi/shared/fonts.rasi7
-rw-r--r--dot-config/bspwm/themes/hack/rofi/themes.rasi147
-rw-r--r--dot-config/bspwm/themes/hack/rofi/windows.rasi279
-rw-r--r--dot-config/bspwm/themes/hack/theme.bash86
l---------dot-config/bspwm/themes/hack/wallpaper1
-rwxr-xr-xdot-config/bspwm/themes/manhattan/apply.sh278
-rw-r--r--dot-config/bspwm/themes/manhattan/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/manhattan/polybar/colors.ini24
-rw-r--r--dot-config/bspwm/themes/manhattan/polybar/config.ini320
-rwxr-xr-xdot-config/bspwm/themes/manhattan/polybar/launch.sh42
-rw-r--r--dot-config/bspwm/themes/manhattan/polybar/modules.ini734
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/askpass.rasi75
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/asroot.rasi148
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/confirm.rasi148
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/launcher.rasi274
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/music.rasi148
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/networkmenu.rasi278
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/powermenu.rasi148
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/runner.rasi274
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/screenshot.rasi148
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/shared/fonts.rasi7
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/themes.rasi275
-rw-r--r--dot-config/bspwm/themes/manhattan/rofi/windows.rasi274
-rw-r--r--dot-config/bspwm/themes/manhattan/theme.bash85
l---------dot-config/bspwm/themes/manhattan/wallpaper1
-rwxr-xr-xdot-config/bspwm/themes/onedark/apply.sh278
-rw-r--r--dot-config/bspwm/themes/onedark/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/onedark/polybar/colors.ini24
-rw-r--r--dot-config/bspwm/themes/onedark/polybar/config.ini318
-rw-r--r--dot-config/bspwm/themes/onedark/polybar/decor.ini43
-rwxr-xr-xdot-config/bspwm/themes/onedark/polybar/launch.sh42
-rw-r--r--dot-config/bspwm/themes/onedark/polybar/modules.ini1061
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/askpass.rasi75
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/asroot.rasi148
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/confirm.rasi148
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/launcher.rasi302
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/music.rasi148
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/networkmenu.rasi300
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/powermenu.rasi148
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/runner.rasi302
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/screenshot.rasi148
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/shared/fonts.rasi7
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/themes.rasi299
-rw-r--r--dot-config/bspwm/themes/onedark/rofi/windows.rasi302
-rw-r--r--dot-config/bspwm/themes/onedark/theme.bash82
l---------dot-config/bspwm/themes/onedark/wallpaper1
-rwxr-xr-xdot-config/bspwm/themes/polybar.sh44
-rwxr-xr-xdot-config/bspwm/themes/slime/apply.sh278
-rw-r--r--dot-config/bspwm/themes/slime/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/slime/polybar/bars.ini645
-rw-r--r--dot-config/bspwm/themes/slime/polybar/colors.ini24
-rw-r--r--dot-config/bspwm/themes/slime/polybar/config.ini319
-rwxr-xr-xdot-config/bspwm/themes/slime/polybar/launch.sh42
-rw-r--r--dot-config/bspwm/themes/slime/polybar/modules.ini1095
-rw-r--r--dot-config/bspwm/themes/slime/rofi/askpass.rasi77
-rw-r--r--dot-config/bspwm/themes/slime/rofi/asroot.rasi145
-rw-r--r--dot-config/bspwm/themes/slime/rofi/confirm.rasi147
-rw-r--r--dot-config/bspwm/themes/slime/rofi/launcher.rasi269
-rw-r--r--dot-config/bspwm/themes/slime/rofi/music.rasi145
-rw-r--r--dot-config/bspwm/themes/slime/rofi/networkmenu.rasi270
-rw-r--r--dot-config/bspwm/themes/slime/rofi/powermenu.rasi145
-rw-r--r--dot-config/bspwm/themes/slime/rofi/runner.rasi269
-rw-r--r--dot-config/bspwm/themes/slime/rofi/screenshot.rasi145
-rw-r--r--dot-config/bspwm/themes/slime/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/slime/rofi/shared/fonts.rasi7
-rw-r--r--dot-config/bspwm/themes/slime/rofi/themes.rasi145
-rw-r--r--dot-config/bspwm/themes/slime/rofi/windows.rasi269
-rw-r--r--dot-config/bspwm/themes/slime/theme.bash82
l---------dot-config/bspwm/themes/slime/wallpaper1
-rwxr-xr-xdot-config/bspwm/themes/spark/apply.sh278
-rw-r--r--dot-config/bspwm/themes/spark/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/spark/polybar/colors.ini24
-rw-r--r--dot-config/bspwm/themes/spark/polybar/config.ini320
-rwxr-xr-xdot-config/bspwm/themes/spark/polybar/launch.sh42
-rw-r--r--dot-config/bspwm/themes/spark/polybar/modules.ini698
-rw-r--r--dot-config/bspwm/themes/spark/rofi/askpass.rasi75
-rw-r--r--dot-config/bspwm/themes/spark/rofi/asroot.rasi147
-rw-r--r--dot-config/bspwm/themes/spark/rofi/confirm.rasi147
-rw-r--r--dot-config/bspwm/themes/spark/rofi/launcher.rasi301
-rw-r--r--dot-config/bspwm/themes/spark/rofi/music.rasi147
-rw-r--r--dot-config/bspwm/themes/spark/rofi/networkmenu.rasi302
-rw-r--r--dot-config/bspwm/themes/spark/rofi/powermenu.rasi147
-rw-r--r--dot-config/bspwm/themes/spark/rofi/runner.rasi301
-rw-r--r--dot-config/bspwm/themes/spark/rofi/screenshot.rasi147
-rw-r--r--dot-config/bspwm/themes/spark/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/spark/rofi/shared/fonts.rasi7
-rw-r--r--dot-config/bspwm/themes/spark/rofi/themes.rasi147
-rw-r--r--dot-config/bspwm/themes/spark/rofi/windows.rasi301
-rw-r--r--dot-config/bspwm/themes/spark/theme.bash85
l---------dot-config/bspwm/themes/spark/wallpaper1
-rw-r--r--dot-config/bspwm/themes/system.ini25
-rwxr-xr-xdot-config/bspwm/themes/wave/apply.sh286
-rw-r--r--dot-config/bspwm/themes/wave/polybar/.module0
-rw-r--r--dot-config/bspwm/themes/wave/polybar/colors.ini31
-rw-r--r--dot-config/bspwm/themes/wave/polybar/config.ini320
-rwxr-xr-xdot-config/bspwm/themes/wave/polybar/launch.sh42
-rw-r--r--dot-config/bspwm/themes/wave/polybar/modules.ini734
-rw-r--r--dot-config/bspwm/themes/wave/rofi/askpass.rasi75
-rw-r--r--dot-config/bspwm/themes/wave/rofi/asroot.rasi145
-rw-r--r--dot-config/bspwm/themes/wave/rofi/confirm.rasi145
-rw-r--r--dot-config/bspwm/themes/wave/rofi/launcher.rasi303
-rw-r--r--dot-config/bspwm/themes/wave/rofi/music.rasi145
-rw-r--r--dot-config/bspwm/themes/wave/rofi/networkmenu.rasi305
-rw-r--r--dot-config/bspwm/themes/wave/rofi/powermenu.rasi145
-rw-r--r--dot-config/bspwm/themes/wave/rofi/runner.rasi303
-rw-r--r--dot-config/bspwm/themes/wave/rofi/screenshot.rasi145
-rw-r--r--dot-config/bspwm/themes/wave/rofi/shared/colors.rasi8
-rw-r--r--dot-config/bspwm/themes/wave/rofi/shared/fonts.rasi7
-rw-r--r--dot-config/bspwm/themes/wave/rofi/themes.rasi145
-rw-r--r--dot-config/bspwm/themes/wave/rofi/windows.rasi303
-rw-r--r--dot-config/bspwm/themes/wave/theme.bash85
l---------dot-config/bspwm/themes/wave/wallpaper1
260 files changed, 44793 insertions, 0 deletions
diff --git a/dot-config/bspwm/alacritty/alacritty.yml b/dot-config/bspwm/alacritty/alacritty.yml
new file mode 100644
index 00000000..a19b5f66
--- /dev/null
+++ b/dot-config/bspwm/alacritty/alacritty.yml
@@ -0,0 +1,51 @@
+## Configuration for Alacritty, the GPU enhanced terminal emulator.
+## It's a very basic and simple config file, for full configuration...
+## See, /usr/share/doc/alacritty/example/alacritty.yml
+
+## Import files (Colors, Fonts, Etc)
+import:
+ - ~/.config/bspwm/alacritty/colors.yml
+ - ~/.config/bspwm/alacritty/fonts.yml
+
+## Set environment variables
+env:
+ TERM: alacritty
+ WINIT_X11_SCALE_FACTOR: '1.0'
+
+## Terminal window settings
+window:
+ dimensions:
+ columns: 82
+ lines: 23
+
+ padding:
+ x: 10
+ y: 10
+
+ decorations: full
+ startup_mode: Windowed
+ dynamic_title: true
+
+## scrolling
+ history: 10000
+ multiplier: 3
+
+## Background opacity
+ opacity: 0.85
+
+## Cursor
+cursor:
+ style:
+ shape: Block
+ blinking: On
+
+ unfocused_hollow: false
+
+## Live config reload
+live_config_reload: true
+
+## Shell
+#shell:
+# program: /bin/zsh
+# args:
+# - --login
diff --git a/dot-config/bspwm/alacritty/colors.yml b/dot-config/bspwm/alacritty/colors.yml
new file mode 100644
index 00000000..38228eef
--- /dev/null
+++ b/dot-config/bspwm/alacritty/colors.yml
@@ -0,0 +1,28 @@
+## Colors configuration
+colors:
+ # Default colors
+ primary:
+ background: '#2E3440'
+ foreground: '#D8DEE9'
+
+ # Normal colors
+ normal:
+ black: '#3B4252'
+ red: '#BF616A'
+ green: '#A3BE8C'
+ yellow: '#EBCB8B'
+ blue: '#81A1C1'
+ magenta: '#B48EAD'
+ cyan: '#88C0D0'
+ white: '#E5E9F0'
+
+ # Bright colors
+ bright:
+ black: '#4C566A'
+ red: '#BF616A'
+ green: '#A3BE8C'
+ yellow: '#EBCB8B'
+ blue: '#81A1C1'
+ magenta: '#B48EAD'
+ cyan: '#8FBCBB'
+ white: '#ECEFF4'
diff --git a/dot-config/bspwm/alacritty/fonts.yml b/dot-config/bspwm/alacritty/fonts.yml
new file mode 100644
index 00000000..5eb638b5
--- /dev/null
+++ b/dot-config/bspwm/alacritty/fonts.yml
@@ -0,0 +1,37 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Font configuration
+
+font:
+ # Normal (roman) font face
+ normal:
+ family: "JetBrainsMono Nerd Font"
+ #style: Regular
+
+ # Bold font face
+ bold:
+ family: "JetBrainsMono Nerd Font"
+ #style: Bold
+
+ # Italic font face
+ italic:
+ family: "JetBrainsMono Nerd Font"
+ #style: Italic
+
+ # Bold italic font face
+ bold_italic:
+ family: "JetBrainsMono Nerd Font"
+ #style: Bold Italic
+
+ # Point size
+ size: 10
+
+ # Offset
+ #offset:
+ # x: 0
+ # y: 0
+
+ # Glyph offset
+ #glyph_offset:
+ # x: 0
+ # y: 0
diff --git a/dot-config/bspwm/bspwmrc b/dot-config/bspwm/bspwmrc
new file mode 100755
index 00000000..169daa27
--- /dev/null
+++ b/dot-config/bspwm/bspwmrc
@@ -0,0 +1,308 @@
+#!/usr/bin/env bash
+
+## BSPWM config file for Arch
+
+## General ---------------------------------------------------#
+
+## Bspwm config directory
+BSPDIR="$HOME/.config/bspwm"
+ROFIDIR="$HOME/.config/rofi"
+POLYBARDIR="$HOME/.config/polybar"
+SCRIPTSDIR="$HOME/scripts"
+
+## Export bspwm/bin dir to PATH
+export PATH="${PATH}:$BSPDIR/scripts:$ROFIDIR/scripts:$POLYBARDIR/scripts:$SCRIPTSDIR"
+
+## Run java applications without issues
+export _JAVA_AWT_WM_NONREPARENTING=1
+#wmname LG3D
+## Current theme ---------------------------------------------#
+
+## Bspwm colors
+BSPWM_FBC='#81A1C1'
+BSPWM_NBC='#2E3440'
+BSPWM_ABC='#B48EAD'
+BSPWM_PFC='#A3BE8C'
+
+## Bspwm appearance
+BSPWM_BORDER='1'
+BSPWM_GAP='10'
+BSPWM_SRATIO='0.50'
+
+## Configurations --------------------------------------------#
+
+## Manager Workspaces
+workspaces() {
+ name=1
+ for monitor in `bspc query -M`; do
+ #bspc monitor ${monitor} -n "$name" -d '1' '2' '3' '4' '5' '6' '7' '8' '9' '10'
+ #bspc monitor ${monitor} -n "$name" -d 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J'
+ #bspc monitor ${monitor} -n "$name" -d 'I' 'II' 'III' 'IV' 'V' 'VI' 'VII' 'VIII' 'IIX' 'X'
+ bspc monitor ${monitor} -n "$name" -d '' '' '' '' '' '' '' '' '' ' '
+ let name++
+ done
+}
+workspaces
+
+## Apply bspwm configurations
+bspc config border_width "$BSPWM_BORDER"
+bspc config window_gap "$BSPWM_GAP"
+bspc config split_ratio "$BSPWM_SRATIO"
+
+bspc config focused_border_color "$BSPWM_FBC"
+bspc config normal_border_color "$BSPWM_NBC"
+bspc config active_border_color "$BSPWM_ABC"
+bspc config presel_feedback_color "$BSPWM_PFC"
+
+bspc config borderless_monocle true
+bspc config gapless_monocle true
+bspc config paddingless_monocle true
+bspc config single_monocle false
+bspc config focus_follows_pointer true
+bspc config presel_feedback true
+
+## Manage all the unmanaged windows remaining from a previous session.
+bspc wm --adopt-orphans
+
+## Window rules ----------------------------------------------#
+
+# remove all rules first
+bspc rule -r *:*
+
+# already have a top_padding(does the same) to avoid polybar overlap window
+#bspc rule -a polybar private
+
+## 1 > terminal (always open terminal on workspace-1)
+bspc rule -a Alacritty desktop='^1' follow=on focus=on
+bspc rule -a Xfce4-terminal desktop='^1' follow=on focus=on
+
+## 2 > web (always open web browser on workspace-2)
+bspc rule -a firefox desktop='^2' follow=on focus=on
+bspc rule -a chromium desktop='^2' follow=on focus=on
+bspc rule -a Brave-browser desktop='^2' follow=on focus=on
+bspc rule -a Thorium-browser desktop='^2' follow=on focus=on
+
+## 3 > files (always open file manager on workspace-3)
+declare -a files=(Pcmanfm Thunar qBittorrent Caja)
+for i in ${files[@]}; do
+ bspc rule -a $i desktop='^3' follow=on focus=on; done
+
+## 4 > code (always open editors on workspace-4)
+declare -a code=(Geany code-oss 'code - oss' 'Code - OSS' code Code install4j-burp-StartBurp burp-StartBurp unityhub Unity jetbrains-pycharm-ce)
+for i in ${code[@]}; do
+ bspc rule -a $i desktop='^4' follow=on focus=on; done
+
+## 5 > office and docs (always open office/doc apps on workspace-5)
+declare -a office=(Gucharmap Atril Evince libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-startcenter libreoffice Soffice *:libreofficedev *:soffice craft-nativefier-e0958b powerphrasingtool-nativefier-c8a789 Typora obsidian figma-linux anytype)
+for i in ${office[@]}; do
+ bspc rule -a $i desktop='^5' follow=on focus=on; done
+
+## 6 > communication (always open communication apps on workspace-6)
+declare -a comm=(Thunderbird TelegramDesktop Hexchat discord vesktop beeper Beeper VencordDesktop Chat-gpt Blender blender Whatsapp-for-linux Chatbox)
+for i in ${comm[@]}; do
+ bspc rule -a $i desktop='^6' follow=on focus=on; done
+
+## 7 > media/video (always open media/video apps on workspace-7)
+declare -a media=(Audacity Music MPlayer Lxmusic Inkscape gimp-2.10 Gimp-2.10 Gimp obs zoom Zoom Pitivi kdenlive openshot vlc Spotify "Spotify Premium" cider Cider shotwell Shotwell)
+for i in ${media[@]}; do
+ bspc rule -a $i desktop='^7' state=tiled follow=on focus=on; done # floating
+
+## 8 > games (always open games on workspace-8)
+declare -a game=(Minecraft Minecraft:* badlion Badlion Launcher launcher War war "War Thunder (Vulkan, 64bit)" Minecraft* 1.19.3 Steam steam_proton csgo_linux64 "minecraft-launcher" "Minecraft Launcher" 'Minecraft* 1.19.3' Blueman-manager "Minecraft Launcher" lunarclient "Lunar Client":* retroarch "Minecraft Launcher")
+for i in ${game[@]}; do
+ bspc rule -a $i desktop='^8' state=floating follow=off focus=off; done
+
+## 9 > system (always open system apps on workspace-9)
+bspc rule -a 'Virt-manager' desktop='^9' follow=on focus=on
+bspc rule -a 'blueman-adapters' desktop='^9' follow=on focus=on
+bspc rule -a GParted desktop='^9' follow=on focus=on
+bspc rule -a 'Xdm-app'='^9' follow=on focus=on
+bspc rule -a timeshift-gtk='^9' follow=on focus=on
+bspc rule -a Timeshift-gtk='^9' follow=on focus=on
+bspc rule -a nextcloud='^9' follow=on focus=on
+bspc rule -a Nextcloud='^9' follow=on focus=on
+bspc rule -a gearlever='^9' follow=on focus=on
+bspc rule -a com.github.tchx84.Flatseal='^9' follow=on focus=on
+declare -a settings=(Lxappearance Lxtask Lxrandr Arandr System-config-printer.py Pavucontrol Exo-helper-1 Protonvpn Xfce4-power-manager-settings Mysql-workbench-bin Grub-customizer Nitrogen archlinux-tweak-tool.py Archlinux-tweak-tool.py pamac-manager helvum Vmware "Btrfs Assistant" Bitwarden)
+for i in ${settings[@]}; do
+ bspc rule -a $i desktop='^9' state=floating follow=on focus=on; done
+
+## misc/ghost/random/placeholder (always open those apps/placeholders on workspace-10)
+declare -a misc=(maxautoclicker Maxautoclicker os_server Os_server)
+for i in ${misc[@]}; do
+ bspc rule -a $i desktop='^10' state=floating follow=off focus=false; done
+
+## Always Floating Apps
+declare -a floating=(alacritty-float Pcmanfm Onboard Yad zoom Xdm-app exe wechat WeChat sxiv Sxiv 'Firefox:Places' Viewnior feh Nm-connection-editor install4j-burp-StartBurp)
+for i in ${floating[@]}; do
+ bspc rule -a $i state=floating follow=on focus=on; done
+
+bspc rule -a Conky state=floating manage=off
+bspc rule -a stalonetray state=floating manage=off
+#bspc config pointer_action1 none
+
+## Autostart -------------------------------------------------#
+
+# Kill if already running
+killall -9 xsettingsd sxhkd dunst ksuperkey xfce4-power-manager bspc runtransani.sh cleanfullscreen #rrunbgblur.sh # launching with conditions .feh backgroundblur chat-server mpd-mpris xbindkeys landdrop
+killall -15 idle.sh # reflector.sh
+#eww kill
+
+# Start bspwm scripts
+$HOME/scripts/polybar-temp-autofix.sh &
+bspbar &
+#bspcomp &
+# for better animation(make higher pri(nice))
+# need /etc/sudoers to `Defaults env_keep += "HOME"` be setted
+sudo nice -n -20 sudo -u $USER bspcomp & # nah, i don t think it affects it lmao
+bspcomp &
+bspdunst &
+bspfloat &
+
+# Lauch xsettingsd daemon
+xsettingsd --config=$HOME/.config/xsettingsd &
+# xbindkeys & # no longer used, using sxhkdrc
+
+# auth daemon(gnome)
+/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
+
+# kdeconnect
+/usr/lib/kdeconnectd &
+
+# Launcher xdm daemon
+#xdman -d &
+
+# polkit agent
+#if [[ ! `pidof xfce-polkit` ]]; then
+ #/usr/lib/xfce-polkit/xfce-polkit &
+#fi
+
+# Lauch keybindings daemon
+sxhkd -c "$BSPDIR"/sxhkdrc &
+
+# Enable Super Keys For Menu
+ksuperkey -e 'Super_L=Alt_L|F1' &
+ksuperkey -e 'Super_R=Alt_L|F1' &
+
+xrdb -merge ~/.Xresources
+
+# Enable power management
+xfce4-power-manager &
+
+# Fix cursor
+# xsetroot -cursor_name left_ptr
+
+# Restore wallpaper
+#exec $HOME/.feh &
+# ========= #
+# if i don't use .feh first, there will be a few second it's blanked out so I have to do a feh background first and then the wallblur one.
+# ========= #
+# better wallpaper manager wallblur
+exec $HOME/scripts/runtransani.sh & # https://github.com/nemanjan00/i3wm/raw/master/wallpaper.sh can replace after picom support blur(transition animation(blur))
+
+# Start mpd
+# exec mpd &
+# exec mpd-mpris &
+
+# start fcitx
+exec fcitx -d &
+
+# enable numlock
+numlockx &
+#sudo numlock
+#for tty in /dev/tty{1..6}; do
+# /usr/bin/setleds -D +num < "$tty";
+#done
+# configured in as a service unit
+
+# start clipboard daemon
+exec clipmenud &
+
+# youtube-dl extention daemon
+#exec youtube-dl-server --number-processes 1 & # dont really use it now so ya
+
+# autostart script
+exec $HOME/scripts/autostart &
+
+# swallow
+#pgrep bspswallow || bspswallow & # tODO: FIX THE THING
+
+# clean full screen
+cleanfullscreen &
+
+# autolock
+#xautolock -time 30 -locker "betterlockscreen -l" & # don't really need/want that
+
+# so animation is not cached(idk why restarting picom make it not laggy)
+#xautolock -time 1 -locker "exec $HOME/scripts/resbspcomp.sh" &
+
+# kill not needed
+#killall java
+
+# idle stuff
+$HOME/scripts/idle.sh -d &
+# 1. autoupdate
+#exec $HOME/scripts/auto-update.sh & # replaced with systemd units # moved into idle.sh
+
+#update &
+yay -Sl > /tmp/yaySl &
+yay -Ss > /tmp/yaySs &
+
+
+# startup sound
+#$HOME/scripts/startupsound.sh & # exist in user systemd unit
+
+
+# vencord
+/usr/bin/ps ax | grep -v grep | grep vencord > /dev/null || discord --start-minimized &
+
+# beeper
+/usr/bin/ps ax | grep -v grep | grep beeper > /dev/null || $HOME/AppImages/gearlever_beeper_60246c.appimage &
+
+# nextcloud
+nextcloud --background &
+
+# wifi share
+# script -c "sudo -E openwifipass -s Jhome-Guest -k 12345677Jj" $HOME/scripts/logs/openwifipass.log &
+# exec $HOME/scripts/runsharewifi.sh &
+
+
+# autoclicker
+# now in $HOME/scripts/bin/autoclicker
+#/usr/bin/ps ax | grep -v grep | grep maxautoclicker > /dev/null || kdocker maxautoclicker &
+
+# polybar no overlap
+bspc config top_padding 46
+
+# secret chat-server
+#$HOME/scripts/bin/chat-server &
+
+# just incase auto start application move to other desktops
+# prevent restarting bspwm from doing that
+#bspc desktop -f ^1
+
+
+# remove startup lock
+if [ -f /var/lock/startup.lock ]; then
+ # startup sound
+ $HOME/scripts/startupsound.sh &
+ # auto startup apps
+ $HOME/scripts/startapp &
+ spid=$!
+ # go back first desktop(last)
+ wait $spid
+ bspc desktop -f "^1"
+ # clean-up (last)
+ sudo /sbin/rm -f /var/lock/startup.lock
+fi
+
+# sys tray wait(timeout)
+# sleep 10
+# connection with other computers(universal control)
+while ! systemctl is-active network.target; do
+ sleep 1
+done
+/usr/bin/ps ax | grep -v grep | grep barrier || barrier &
+# /usr/bin/ps ax | grep -v grep | grep blueman-applet || blueman-applet &
+# /usr/bin/ps ax | grep -v grep | grep nm-applet || nm-applet &
+/usr/bin/ps ax | grep -v grep | grep memento-bg || memento-bg <<< 1 &
diff --git a/dot-config/bspwm/bspwmrc.bak b/dot-config/bspwm/bspwmrc.bak
new file mode 100755
index 00000000..add75b6e
--- /dev/null
+++ b/dot-config/bspwm/bspwmrc.bak
@@ -0,0 +1,190 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## BSPWM config file for Archcraft
+
+## General ---------------------------------------------------#
+
+## Bspwm config directory
+BSPDIR="$HOME/.config/bspwm"
+
+## Export bspwm/bin dir to PATH
+export PATH="${PATH}:$BSPDIR/scripts"
+
+## Run java applications without issues
+export _JAVA_AWT_WM_NONREPARENTING=1
+#wmname LG3D
+
+## Current theme ---------------------------------------------#
+
+## Bspwm colors
+BSPWM_FBC='#81A1C1'
+BSPWM_NBC='#2E3440'
+BSPWM_ABC='#B48EAD'
+BSPWM_PFC='#A3BE8C'
+
+## Bspwm appearance
+BSPWM_BORDER='1'
+BSPWM_GAP='10'
+BSPWM_SRATIO='0.50'
+
+## Configurations --------------------------------------------#
+
+## Manager Workspaces
+workspaces() {
+ name=1
+ for monitor in `bspc query -M`; do
+ #bspc monitor ${monitor} -n "$name" -d '1' '2' '3' '4' '5' '6' '7' '8'
+ #bspc monitor ${monitor} -n "$name" -d 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H'
+ #bspc monitor ${monitor} -n "$name" -d 'I' 'II' 'III' 'IV' 'V' 'VI' 'VII' 'VIII'
+ bspc monitor ${monitor} -n "$name" -d '' '' '' '' '' '' '' ''
+ let name++
+ done
+}
+workspaces
+
+## Apply bspwm configurations
+bspc config border_width "$BSPWM_BORDER"
+bspc config window_gap "$BSPWM_GAP"
+bspc config split_ratio "$BSPWM_SRATIO"
+
+bspc config focused_border_color "$BSPWM_FBC"
+bspc config normal_border_color "$BSPWM_NBC"
+bspc config active_border_color "$BSPWM_ABC"
+bspc config presel_feedback_color "$BSPWM_PFC"
+
+bspc config borderless_monocle true
+bspc config gapless_monocle true
+bspc config paddingless_monocle true
+bspc config single_monocle false
+bspc config focus_follows_pointer true
+bspc config presel_feedback true
+
+## Manage all the unmanaged windows remaining from a previous session.
+bspc wm --adopt-orphans
+
+## Window rules ----------------------------------------------#
+
+# remove all rules first
+bspc rule -r *:*
+
+## 1 > terminal (always open terminal on workspace-1)
+bspc rule -a Alacritty desktop='^1' follow=on focus=on
+bspc rule -a Xfce4-terminal desktop='^1' follow=on focus=on
+
+## 2 > web (always open web browser on workspace-2)
+bspc rule -a firefox desktop='^2' follow=on focus=on
+bspc rule -a chromium desktop='^2' follow=on focus=on
+bspc rule -a Brave-browser desktop='^2' follow=on focus=on
+
+## 3 > files (always open file manager on workspace-3)
+declare -a files=(Pcmanfm Thunar qBittorrent Caja)
+for i in ${files[@]}; do
+ bspc rule -a $i desktop='^3' follow=on focus=on; done
+
+## 4 > code (always open editors on workspace-4)
+declare -a code=(Geany code-oss code Code install4j-burp-StartBurp)
+for i in ${code[@]}; do
+ bspc rule -a $i desktop='^4' follow=on focus=on; done
+
+## 5 > office and docs (always open office/doc apps on workspace-5)
+declare -a office=(Gucharmap Atril Evince \
+libreoffice-writer libreoffice-calc libreoffice-impress \
+libreoffice-startcenter libreoffice Soffice *:libreofficedev *:soffice)
+for i in ${office[@]}; do
+ bspc rule -a $i desktop='^5' follow=on focus=on; done
+
+## 6 > communication (always open communication apps on workspace-6)
+declare -a comm=(Thunderbird TelegramDesktop Hexchat discord zoom Chat-gpt Blender blender)
+for i in ${comm[@]}; do
+ bspc rule -a $i desktop='^6' follow=on focus=on; done
+
+## 7 > media (always open media apps on workspace-7)
+declare -a media=(Audacity Music MPlayer Lxmusic Inkscape Gimp-2.10 obs Minecraft Minecraft* badlion Badlion Launcher launcher War war)
+for i in ${media[@]}; do
+ bspc rule -a $i desktop='^7' state=floating follow=on focus=on; done
+
+## 8 > system (always open system apps on workspace-8)
+bspc rule -a 'VirtualBox Manager' desktop='^8' follow=on focus=on
+bspc rule -a GParted desktop='^8' follow=on focus=on
+bspc rule -a 'Timeshift-gtk'='^8' follow=on focus=on
+bspc rule -a 'Xdm-app'='^8' follow=on focus=on
+declare -a settings=(Lxappearance Lxtask Lxrandr Arandr \
+System-config-printer.py Pavucontrol Exo-helper-1 \
+Xfce4-power-manager-settings Mysql-workbench-bin)
+for i in ${settings[@]}; do
+ bspc rule -a $i desktop='^8' state=floating follow=on focus=on; done
+
+## Always Floating Apps
+declare -a floating=(alacritty-float Pcmanfm Thunar Onboard Yad zoom Xdm-app exe wechat WeChat 'Firefox:Places' \
+Viewnior feh Nm-connection-editor install4j-burp-StartBurp)
+for i in ${floating[@]}; do
+ bspc rule -a $i state=floating follow=on focus=on; done
+
+bspc rule -a Conky state=floating manage=off
+bspc rule -a stalonetray state=floating manage=off
+
+## Autostart -------------------------------------------------#
+
+# Kill if already running
+killall -9 xsettingsd sxhkd dunst ksuperkey xfce4-power-manager bspc
+eww kill
+
+# Lauch xsettingsd daemon
+xsettingsd --config="$BSPDIR"/xsettingsd &
+
+# better auth daemon(kde)
+exec /usr/lib/polkit-kde-authentication-agent-1 &
+
+# Launcher xdm daemon
+#xdman -d &
+
+# polkit agent
+if [[ ! `pidof xfce-polkit` ]]; then
+ /usr/lib/xfce-polkit/xfce-polkit &
+fi
+
+# Lauch keybindings daemon
+sxhkd -c "$BSPDIR"/sxhkdrc &
+
+# Enable Super Keys For Menu
+ksuperkey -e 'Super_L=Alt_L|F1' &
+ksuperkey -e 'Super_R=Alt_L|F1' &
+
+# Enable power management
+xfce4-power-manager &
+
+# Fix cursor
+xsetroot -cursor_name left_ptr
+
+# Restore wallpaper
+bash ~/.fehbg
+
+# Start mpd
+exec mpd &
+
+# start fcitx
+exec fcitx -d &
+
+# enable numlock
+numlockx
+sudo numlock
+
+# start clipboard daemon
+exec clipmenud &
+
+# youtube-dl extention daemon
+exec youtube-dl-server --number-processes 1 &
+
+# clean full screen
+cleanfullscreen &
+
+# Start bspwm scripts
+bspbar
+bspcomp
+bspdunst
+bspfloat &
+
+# kill not needed
+#killall java
diff --git a/dot-config/bspwm/dunstrc b/dot-config/bspwm/dunstrc
new file mode 100644
index 00000000..a548ca02
--- /dev/null
+++ b/dot-config/bspwm/dunstrc
@@ -0,0 +1,69 @@
+[global]
+monitor = 0
+follow = mouse
+width = 300
+height = 80
+origin = top-right
+offset = 10x42
+corner_radius = 0
+scale = 0
+notification_limit = 0
+progress_bar = true
+progress_bar_height = 80
+progress_bar_frame_width = 1
+progress_bar_min_width = 300
+progress_bar_max_width = 300
+indicate_hidden = yes
+transparency = 0
+separator_height = 1
+padding = 15
+horizontal_padding = 15
+text_icon_padding = 0
+frame_width = 1
+gap_size = 0
+separator_color = frame
+sort = yes
+idle_threshold = 120
+font = Iosevka Custom 9
+line_height = 1
+markup = full
+format = %s\n%b
+alignment = left
+vertical_alignment = center
+show_age_threshold = 60
+ellipsize = middle
+ignore_newline = no
+stack_duplicates = true
+hide_duplicate_count = false
+show_indicators = yes
+enable_recursive_icon_lookup = true
+icon_position = left
+min_icon_size = 24
+max_icon_size = 48
+sticky_history = yes
+history_length = 20
+browser = /usr/bin/xdg-open
+always_run_script = true
+mouse_left_click = close_current
+mouse_middle_click = do_action, close_current
+mouse_right_click = close_all
+title = Dunst
+class = Dunst
+
+[urgency_low]
+timeout = 2
+background = "#2E3440"
+foreground = "#D8DEE9"
+frame_color = "#81A1C1"
+
+[urgency_normal]
+timeout = 5
+background = "#2E3440"
+foreground = "#D8DEE9"
+frame_color = "#81A1C1"
+
+[urgency_critical]
+timeout = 0
+background = "#2E3440"
+foreground = "#BF616A"
+frame_color = "#BF616A"
diff --git a/dot-config/bspwm/layout b/dot-config/bspwm/layout
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/layout
diff --git a/dot-config/bspwm/picom.conf b/dot-config/bspwm/picom.conf
new file mode 100644
index 00000000..dd44dc29
--- /dev/null
+++ b/dot-config/bspwm/picom.conf
@@ -0,0 +1,417 @@
+#========================= Corners =========================#
+
+corner-radius = 0;
+rounded-corners-exclude = [
+ "window_type = 'normal'",
+ "class_g ?= 'rofi'",
+ "class_g ?= 'polybar'",
+ "class_g ?= 'tint2'"
+];
+
+round-borders = 0;
+round-borders-exclude = [
+ "class_g = 'TelegramDesktop'"
+];
+
+# Specify a list of border width rules, in the format `PIXELS:PATTERN`,
+# Note we don't make any guarantee about possible conflicts with the
+# border_width set by the window manager.
+#
+# example:
+# round-borders-rule = [ "2:class_g = 'URxvt'" ];
+#
+round-borders-rule = [
+ "2:class_g ?= 'URxvt'",
+ "2:class_g ?= 'Alacritty'",
+ "0:class_g ?= 'firefox'"
+];
+
+#========================= Shadows =========================#
+
+# Enabled client-side shadows on windows. Note desktop windows
+# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
+# unless explicitly requested using the wintypes option.
+#
+shadow = true;
+
+# The blur radius for shadows, in pixels. (defaults to 12)
+shadow-radius = 14;
+
+# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
+shadow-opacity = 0.30;
+
+# The left offset for shadows, in pixels. (defaults to -15)
+shadow-offset-x = -12;
+
+# The top offset for shadows, in pixels. (defaults to -15)
+shadow-offset-y = -12;
+
+# Red color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-red = 0
+
+# Green color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-green = 0
+
+# Blue color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-blue = 0
+
+# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
+# shadow-color = "#000000"
+
+# Specify a list of conditions of windows that should have no shadow.
+#
+# examples:
+# shadow-exclude = "n:e:Notification";
+#
+# shadow-exclude = []
+shadow-exclude = [
+ "class_g = 'Cairo-clock'",
+ "class_g = 'CoverGloobus'",
+ "class_g = 'Tilda'",
+ "name ?= 'gnome-pie'",
+# "class_g = 'Dmenu'",
+# "class_g ?= 'rofi'",
+# "class_g ?= 'polybar'",
+ "class_g ?= 'Plank'",
+ "name *= 'recordmydesktop'",
+ "name = 'Notification'",
+ "name = 'Docky'",
+ "name = 'Kupfer'",
+ "name = 'xfce4-notifyd'",
+ "name *= 'VLC'",
+ "name *= 'Chromium'",
+ "name *= 'Chrome'",
+ "class_g = 'Conky'",
+ "class_g = 'Kupfer'",
+ "class_g = 'Synapse'",
+ "class_g ?= 'Notify-osd'",
+ "class_g ?= 'Cairo-dock'",
+ "class_g ?= 'Xfce4-notifyd'",
+ "class_g ?= 'Xfce4-power-manager'",
+ "_GTK_FRAME_EXTENTS@:c",
+ "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
+];
+
+# Specify a X geometry that describes the region in which shadow should not
+# be painted in, such as a dock window region. Use
+# shadow-exclude-reg = "x10+0+0"
+# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
+#
+# shadow-exclude-reg = ""
+
+# Crop shadow of a window fully on a particular Xinerama screen to the screen.
+# xinerama-shadow-crop = false
+
+#========================= Fading =========================#
+
+# Fade windows in/out when opening/closing and when opacity changes,
+# unless no-fading-openclose is used.
+fading = true;
+
+# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
+fade-in-step = 0.03;
+
+# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
+fade-out-step = 0.03;
+
+# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
+fade-delta = 5;
+
+# Specify a list of conditions of windows that should not be faded.
+# don't need this, we disable fading for all normal windows with wintypes: {}
+fade-exclude = [
+ "class_g = 'slop'" # maim
+]
+
+# Do not fade on window open/close.
+no-fading-openclose = false
+
+# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
+no-fading-destroyed-argb = true
+
+#========================= Opacity =========================#
+
+# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
+# inactive-opacity = 1
+inactive-opacity = 1;
+
+# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
+# frame-opacity = 1.0
+frame-opacity = 1.0;
+
+# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
+# inactive-opacity-override = true
+inactive-opacity-override = false;
+
+# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
+active-opacity = 1.0;
+
+# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
+#inactive-dim = 0.5
+
+# Specify a list of conditions of windows that should always be considered focused.
+# focus-exclude = []
+focus-exclude = [
+ "class_g = 'Cairo-clock'",
+ "class_g = 'Bar'", # lemonbar
+ "class_g = 'slop'" # maim
+];
+
+# Use fixed inactive dim value, instead of adjusting according to window opacity.
+# inactive-dim-fixed = 1.0
+
+# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
+# like `50:name *= "Firefox"`. picom-trans is recommended over this.
+# Note we don't make any guarantee about possible conflicts with other
+# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
+# example:
+# opacity-rule = [ "80:class_g = 'URxvt'" ];
+#
+# opacity-rule = []
+opacity-rule = [
+ "100:class_g = 'Bar'", # lemonbar
+ "100:class_g = 'slop'", # maim
+ "100:class_g = 'XTerm'",
+ "100:class_g = 'URxvt'",
+ "100:class_g = 'kitty'",
+ "100:class_g = 'Alacritty'",
+ "100:class_g = 'Polybar'",
+ "100:class_g = 'code-oss'",
+ "100:class_g = 'Meld'",
+ "100:class_g = 'TelegramDesktop'",
+ "100:class_g = 'Joplin'",
+ "100:class_g = 'firefox'",
+ "100:class_g = 'Thunderbird'"
+];
+
+#========================= Blurring =========================#
+
+blur: {
+ method = "none";
+ strength = 0;
+ background = false;
+ background-frame = false;
+ background-fixed = false;
+ kern = "3x3box";
+}
+
+# Exclude conditions for background blur.
+blur-background-exclude = [
+ "window_type = 'dock'",
+ "window_type = 'desktop'",
+ "class_g = 'Plank'",
+ "class_g = 'slop'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+#========================= General Settings =========================#
+
+# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
+# daemon = false
+
+# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
+# `xrender` is the default one.
+#
+#experimental-backends = true;
+backend = "glx";
+
+# Enable/disable VSync.
+# vsync = false
+vsync = true;
+
+# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
+# dbus = false
+
+# Try to detect WM windows (a non-override-redirect window with no
+# child that has 'WM_STATE') and mark them as active.
+#
+# mark-wmwin-focused = false
+mark-wmwin-focused = true;
+
+# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
+# mark-ovredir-focused = false
+mark-ovredir-focused = true;
+
+# Try to detect windows with rounded corners and don't consider them
+# shaped windows. The accuracy is not very high, unfortunately.
+#
+# detect-rounded-corners = false
+detect-rounded-corners = true;
+
+# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
+# not passing '_NET_WM_OPACITY' of client windows to frame windows.
+#
+# detect-client-opacity = false
+detect-client-opacity = true;
+
+# Specify refresh rate of the screen. If not specified or 0, picom will
+# try detecting this with X RandR extension.
+#
+# refresh-rate = 60
+refresh-rate = 0;
+
+# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
+# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
+# provided that the WM supports it.
+#
+# use-ewmh-active-win = false
+
+# Unredirect all windows if a full-screen opaque window is detected,
+# to maximize performance for full-screen windows. Known to cause flickering
+# when redirecting/unredirecting windows.
+#
+# unredir-if-possible = false
+
+# Delay before unredirecting the window, in milliseconds. Defaults to 0.
+# unredir-if-possible-delay = 0
+
+# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
+# unredir-if-possible-exclude = []
+
+# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
+# in the same group focused at the same time.
+#
+# detect-transient = false
+detect-transient = true;
+
+# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
+# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
+# detect-transient is enabled, too.
+#
+# detect-client-leader = false
+detect-client-leader = true;
+
+# Resize damaged region by a specific number of pixels.
+# A positive value enlarges it while a negative one shrinks it.
+# If the value is positive, those additional pixels will not be actually painted
+# to screen, only used in blur calculation, and such. (Due to technical limitations,
+# with use-damage, those pixels will still be incorrectly painted to screen.)
+# Primarily used to fix the line corruption issues of blur,
+# in which case you should use the blur radius value here
+# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
+# with a 5x5 one you use `--resize-damage 2`, and so on).
+# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
+#
+# resize-damage = 1
+
+# Specify a list of conditions of windows that should be painted with inverted color.
+# Resource-hogging, and is not well tested.
+#
+# invert-color-include = []
+
+# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
+# Might cause incorrect opacity when rendering transparent content (but never
+# practically happened) and may not work with blur-background.
+# My tests show a 15% performance boost. Recommended.
+#
+glx-no-stencil = true;
+
+# GLX backend: Avoid rebinding pixmap on window damage.
+# Probably could improve performance on rapid window content changes,
+# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
+# Recommended if it works.
+#
+# glx-no-rebind-pixmap = false
+
+# Disable the use of damage information.
+# This cause the whole screen to be redrawn everytime, instead of the part of the screen
+# has actually changed. Potentially degrades the performance, but might fix some artifacts.
+# The opposing option is use-damage
+#
+# no-use-damage = false
+use-damage = true;
+
+# Use X Sync fence to sync clients' draw calls, to make sure all draw
+# calls are finished before picom starts drawing. Needed on nvidia-drivers
+# with GLX backend for some users.
+#
+# xrender-sync-fence = false
+
+# GLX backend: Use specified GLSL fragment shader for rendering window contents.
+# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
+# in the source tree for examples.
+#
+# glx-fshader-win = ""
+
+# Force all windows to be painted with blending. Useful if you
+# have a glx-fshader-win that could turn opaque pixels transparent.
+#
+# force-win-blend = false
+
+# Do not use EWMH to detect fullscreen windows.
+# Reverts to checking if a window is fullscreen based only on its size and coordinates.
+#
+# no-ewmh-fullscreen = false
+
+# Dimming bright windows so their brightness doesn't exceed this set value.
+# Brightness of a window is estimated by averaging all pixels in the window,
+# so this could comes with a performance hit.
+# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
+#
+# max-brightness = 1.0
+
+# Make transparent windows clip other windows like non-transparent windows do,
+# instead of blending on top of them.
+#
+# transparent-clipping = false
+
+# Set the log level. Possible values are:
+# "trace", "debug", "info", "warn", "error"
+# in increasing level of importance. Case doesn't matter.
+# If using the "TRACE" log level, it's better to log into a file
+# using *--log-file*, since it can generate a huge stream of logs.
+#
+# log-level = "debug"
+log-level = "info";
+
+# Set the log file.
+# If *--log-file* is never specified, logs will be written to stderr.
+# Otherwise, logs will to written to the given file, though some of the early
+# logs might still be written to the stderr.
+# When setting this option from the config file, it is recommended to use an absolute path.
+#
+# log-file = "/path/to/your/log/file"
+
+# Show all X errors (for debugging)
+# show-all-xerrors = false
+
+# Write process ID to a file.
+# write-pid-path = "/path/to/your/log/file"
+
+# Window type settings
+#
+# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
+# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
+# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
+# "tooltip", "notification", "combo", and "dnd".
+#
+# Following per window-type options are available: ::
+#
+# fade, shadow:::
+# Controls window-type-specific shadow and fade settings.
+#
+# opacity:::
+# Controls default opacity of the window type.
+#
+# focus:::
+# Controls whether the window of this type is to be always considered focused.
+# (By default, all window types except "normal" and "dialog" has this on.)
+#
+# full-shadow:::
+# Controls whether shadow is drawn under the parts of the window that you
+# normally won't be able to see. Useful when the window has parts of it
+# transparent, and you want shadows in those areas.
+#
+# redir-ignore:::
+# Controls whether this type of windows should cause screen to become
+# redirected again after been unredirected. If you have unredir-if-possible
+# set, and doesn't want certain window to cause unnecessary screen redirection,
+# you can set this to `true`.
+#
+wintypes:
+{
+ tooltip = { fade=true; shadow=true; opacity=0.95; focus=true; full-shadow=false; };
+ popup_menu = { opacity=1.0; }
+ dropdown_menu = { opacity=1.0; }
+ utility = { shadow=false; opacity=1.0; }
+};
diff --git a/dot-config/bspwm/scripts/.zshenv b/dot-config/bspwm/scripts/.zshenv
new file mode 100644
index 00000000..ab178e65
--- /dev/null
+++ b/dot-config/bspwm/scripts/.zshenv
@@ -0,0 +1,8 @@
+typeset -U PATH path
+export GTK_IM_MODULE='fcitx'
+export QT_IM_MODULE='fcitx'
+export SDL_IM_MODULE='fcitx'
+export XMODIFIERS='@im=fcitx'
+export PATH=/home/system/.local/bin:/usr/share/archcraft/scripts:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/system/.config/bspwm/bin:/home/system/scripts
+alias vim='lvim'
+export EDITOR='lvim'
diff --git a/dot-config/bspwm/scripts/bspasfloat b/dot-config/bspwm/scripts/bspasfloat
new file mode 100755
index 00000000..b38bae3e
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspasfloat
@@ -0,0 +1,15 @@
+bspc config initial_polarity second_child
+
+# Run the command specified as the first argument
+$1 & disown
+
+# Wait for the window to be created
+sleep 1
+
+# Get the ID of the most recently created window
+window_id=$(bspc query --windows --node focused | tail -n 1 | awk '{print $1}')
+
+# Set the state of the window to floating
+bspc window $window_id -t floating
+
+bspc config initial_polarity first_child
diff --git a/dot-config/bspwm/scripts/bspasroot b/dot-config/bspwm/scripts/bspasroot
new file mode 100755
index 00000000..5d00ca53
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspasroot
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+# bspwm directory
+DIR="$HOME/.config/bspwm"
+
+# rofi sudo askpass helper
+export SUDO_ASKPASS="$DIR"/scripts/rofi_askpass
+
+# execute the application
+sudo -A $1
diff --git a/dot-config/bspwm/scripts/bspbar b/dot-config/bspwm/scripts/bspbar
new file mode 100755
index 00000000..62a804ef
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspbar
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+# bspwm directory
+DIR="$HOME/.config"
+
+# fix padding
+#bspc config bottom_padding 0
+bspc config top_padding 46
+
+# launch polybar
+bash "$DIR"/polybar/polybar.sh
diff --git a/dot-config/bspwm/scripts/bspbrightness b/dot-config/bspwm/scripts/bspbrightness
new file mode 100755
index 00000000..cdf67047
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspbrightness
@@ -0,0 +1,71 @@
+#!/usr/bin/env bash
+
+## Script to manage brightness on Archcraft.
+
+# Icons
+iDIR='/usr/share/archcraft/icons/dunst'
+
+# Graphics card
+CARD=`ls /sys/class/backlight | head -n 1`
+
+# Get brightness
+get_backlight() {
+ if [[ "$CARD" == *"intel_"* ]]; then
+ BNESS=`xbacklight -get`
+ LIGHT=${BNESS%.*}
+ else
+ LIGHT=$(printf "%.0f\n" `light -G`)
+ fi
+ echo "${LIGHT}%"
+}
+
+# Get icons
+get_icon() {
+ backlight="$(get_backlight)"
+ current="${backlight%%%}"
+ if [[ ("$current" -ge "0") && ("$current" -le "20") ]]; then
+ icon="$iDIR"/brightness-20.png
+ elif [[ ("$current" -ge "20") && ("$current" -le "40") ]]; then
+ icon="$iDIR"/brightness-40.png
+ elif [[ ("$current" -ge "40") && ("$current" -le "60") ]]; then
+ icon="$iDIR"/brightness-60.png
+ elif [[ ("$current" -ge "60") && ("$current" -le "80") ]]; then
+ icon="$iDIR"/brightness-80.png
+ elif [[ ("$current" -ge "80") && ("$current" -le "100") ]]; then
+ icon="$iDIR"/brightness-100.png
+ fi
+}
+
+# Notify
+notify_bl() {
+ get_icon && dunstify -u low -h string:x-dunst-stack-tag:obbacklight -i "$icon" "Brightness : $(get_backlight)"
+}
+
+# Increase brightness
+inc_backlight() {
+ if [[ "$CARD" == *"intel_"* ]]; then
+ xbacklight -inc 10 && notify_bl
+ else
+ light -A 5 && notify_bl
+ fi
+}
+
+# Decrease brightness
+dec_backlight() {
+ if [[ "$CARD" == *"intel_"* ]]; then
+ xbacklight -dec 10 && notify_bl
+ else
+ light -U 5 && notify_bl
+ fi
+}
+
+# Execute accordingly
+if [[ "$1" == "--get" ]]; then
+ get_backlight
+elif [[ "$1" == "--inc" ]]; then
+ inc_backlight
+elif [[ "$1" == "--dec" ]]; then
+ dec_backlight
+else
+ get_backlight
+fi
diff --git a/dot-config/bspwm/scripts/bspcolorpicker b/dot-config/bspwm/scripts/bspcolorpicker
new file mode 100755
index 00000000..ff857986
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspcolorpicker
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+## Simple script to pick color quickly.
+
+color=$(xcolor --format hex --preview-size 255 --scale 10)
+image=/tmp/${color}.png
+
+main() {
+ if [[ "$color" ]]; then
+ # copy color code to clipboard
+ echo $color | tr -d "\n" | xclip -selection clipboard
+ # generate preview
+ convert -size 48x48 xc:"$color" ${image}
+ # notify about it
+ dunstify -u low -h string:x-dunst-stack-tag:obcolorpicker -i ${image} "$color, copied to clipboard."
+ fi
+}
+
+# run the script
+main
diff --git a/dot-config/bspwm/scripts/bspcomp b/dot-config/bspwm/scripts/bspcomp
new file mode 100755
index 00000000..5f27c57b
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspcomp
@@ -0,0 +1,13 @@
+#!/usr/bin/bash
+
+# bspwm directory
+DIR="$HOME/.config"
+
+# Terminate if picom is already running
+killall -q picom
+
+# Wait until the processes have been shut down
+while pgrep -u $UID -x picom >/dev/null; do sleep 1; done
+
+# Launch picom
+picom --config "$DIR"/picom.conf -b --show-all-xerrors & # --use-damage --animation-clamping --vsync -blur-background-fixed --blur-background --blur-background-frame
diff --git a/dot-config/bspwm/scripts/bspdunst b/dot-config/bspwm/scripts/bspdunst
new file mode 100755
index 00000000..d0fabb7c
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspdunst
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+# bspwm directory
+DIR="$HOME/.config/dunst"
+
+# Launch dunst daemon
+if [[ `pidof dunst` ]]; then
+ pkill dunst
+fi
+
+dunst -config "$DIR"/dunstrc &
diff --git a/dot-config/bspwm/scripts/bspfloat b/dot-config/bspwm/scripts/bspfloat
new file mode 100755
index 00000000..b63192dd
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspfloat
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+## All windows are floating on desktop 8
+FLOATING_DESKTOP_ID=$(bspc query -D -d '^9')
+
+bspc subscribe node_add | while read -a msg ; do
+ desk_id=${msg[2]}
+ wid=${msg[4]}
+ [ "$FLOATING_DESKTOP_ID" = "$desk_id" ] && bspc node "$wid" -t floating
+done
diff --git a/dot-config/bspwm/scripts/bspmusic b/dot-config/bspwm/scripts/bspmusic
new file mode 100755
index 00000000..6a95c8f5
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspmusic
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+
+## Run ncmpcpp with alternate config
+
+# bspwm directory
+DIR="$HOME/.config/bspwm"
+
+CONFIG="$DIR/alacritty/alacritty.yml"
+
+alacritty --class 'Music,Music' --config-file "$CONFIG" \
+ -o window.dimensions.columns=109 window.dimensions.lines=22 \
+ -e ~/.ncmpcpp/scripts/ncmpcpp-art
+
diff --git a/dot-config/bspwm/scripts/bspscreenshot b/dot-config/bspwm/scripts/bspscreenshot
new file mode 100755
index 00000000..9403a870
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspscreenshot
@@ -0,0 +1,93 @@
+#!/usr/bin/env bash
+
+## Script to take screenshots on Archcraft.
+
+# file
+time=`date +%Y-%m-%d-%H-%M-%S`
+geometry=`xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'`
+dir="`xdg-user-dir PICTURES`/Screenshots"
+file="Screenshot_${time}_${geometry}.png"
+
+# directory
+if [[ ! -d "$dir" ]]; then
+ mkdir -p "$dir"
+fi
+
+# notify and view screenshot
+notify_view () {
+ notify_cmd_shot='dunstify -u low -h string:x-dunst-stack-tag:obscreenshot -i /usr/share/archcraft/icons/dunst/picture.png'
+ pngcheck ${dir}/"$file" > /dev/null
+ if [[ $? -eq 0 ]]; then
+ #${notify_cmd_shot} "Copied to clipboard."
+ paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null &
+ viewnior ${dir}/"$file"
+ else
+ # the notifcation too annoying
+ #${notify_cmd_shot} "Screenshot Canceled."
+ rm "${dir}/$file"
+ exit 0
+ fi
+ if [[ -e "$dir/$file" ]]; then
+ ${notify_cmd_shot} "Screenshot Saved."
+ else
+ ${notify_cmd_shot} "Screenshot Deleted."
+ fi
+}
+
+# copy screenshot to clipboard
+copy_shot () {
+ tee "$file" | xclip -selection clipboard -t image/png
+}
+
+# countdown
+countdown () {
+ for sec in `seq $1 -1 1`; do
+ dunstify -t 1000 -h string:x-dunst-stack-tag:screenshottimer -i /usr/share/archcraft/icons/dunst/timer.png "Taking shot in : $sec"
+ sleep 1
+ done
+}
+
+# take shots
+shotnow () {
+ cd ${dir} && maim -u -f png | copy_shot
+ notify_view
+}
+
+shot5 () {
+ countdown '5'
+ sleep 1 && cd ${dir} && maim -u -f png | copy_shot
+ notify_view
+}
+
+shot10 () {
+ countdown '10'
+ sleep 1 && cd ${dir} && maim -u -f png | copy_shot
+ notify_view
+}
+
+shotwin () {
+ cd ${dir} && maim -u -f png -i `xdotool getactivewindow` | copy_shot
+ notify_view
+}
+
+shotarea () {
+ cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | copy_shot
+ notify_view
+}
+
+# execute
+if [[ "$1" == "--now" ]]; then
+ shotnow
+elif [[ "$1" == "--in5" ]]; then
+ shot5
+elif [[ "$1" == "--in10" ]]; then
+ shot10
+elif [[ "$1" == "--win" ]]; then
+ shotwin
+elif [[ "$1" == "--area" ]]; then
+ shotarea
+else
+ echo -e "Available Options : --now --in5 --in10 --win --area"
+fi
+
+exit 0
diff --git a/dot-config/bspwm/scripts/bspswallow b/dot-config/bspwm/scripts/bspswallow
new file mode 100755
index 00000000..93714c74
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspswallow
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# Get class of a wid
+get_class() {
+ id=$1
+ if [ -z "$id" ]; then
+ echo ""
+ else
+ xprop -id "$id" | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p'
+ fi
+}
+
+swallow() {
+ addedtodesktop=$2
+ lasttermdesktop=$(bspc query -D -n last)
+
+ swallowerid=$1
+ swallowingid=$(bspc query -N -n last)
+
+ if [ "$addedtodesktop" = "$lasttermdesktop" ]; then
+ grep "^$(get_class "$swallowerid")$" ~/.config/bspwm/scripts/swallow || return
+ grep "^$(get_class "$swallowingid")$" ~/.config/bspwm/scripts/terminals || return
+ echo "$swallowerid $swallowingid" >> /tmp/swallowids
+ bspc node "$swallowingid" --flag hidden=on
+ fi
+}
+
+spit() {
+ spitterid=$1
+ spitterdesktop=$2
+ grep "^$spitterid" /tmp/swallowids || return
+ spittingid=$(grep "^$spitterid" /tmp/swallowids | head -n1 | awk '{print $2}')
+
+ bspc node "$spittingid" --flag hidden=off
+
+ termdesktop=$(bspc query -D -n "$spittingid")
+ [ "$termdesktop" = "$spitterdesktop" ] || bspc node "$spittingid" -d "$spitterdesktop"
+
+ bspc node "$spittingid" -f
+ sed -i "/^$spitterid/d" /tmp/swallowids
+}
+
+bspc subscribe node_add node_remove | while read -r event
+do
+ case $(echo "$event" | awk '{ print $1 }') in
+ node_add)
+ swallow $(echo "$event" | awk '{print $5 " " $3}')
+ ;;
+ node_remove)
+ spit $(echo "$event" | awk '{print $4 " " $3}')
+ ;;
+ esac
+done
diff --git a/dot-config/bspwm/scripts/bspterm b/dot-config/bspwm/scripts/bspterm
new file mode 100755
index 00000000..75e3892c
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspterm
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+## launch alacritty with bspwm config
+
+# bspwm directory
+DIR="$HOME/.config/bspwm"
+CONFIG="$DIR/alacritty/alacritty.yml"
+
+if [ "$1" == "--float" ]; then
+ #alacritty --class 'alacritty-float,alacritty-float' --config-file "$CONFIG"
+ alacritty --class 'alacritty-float,alacritty-float'
+elif [ "$1" == "--full" ]; then
+ #alacritty --class 'Fullscreen,Fullscreen' --config-file "$CONFIG" \
+ alacritty --class 'Fullscreen,Fullscreen' \
+ -o window.startup_mode=fullscreen \
+ window.padding.x=30 window.padding.y=30 \
+ window.opacity=0.95 font.size=14
+elif [ "$1" == "--pseudo" ]; then
+ alacritty --class 'pseudo_tiled'
+else
+# alacritty --config-file "$CONFIG"
+ alacritty
+fi
diff --git a/dot-config/bspwm/scripts/bspvolume b/dot-config/bspwm/scripts/bspvolume
new file mode 100755
index 00000000..716c65b2
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspvolume
@@ -0,0 +1,81 @@
+#!/usr/bin/env bash
+
+## Script to manage speaker volume on Archcraft.
+
+# Icons
+iDIR='/usr/share/archcraft/icons/dunst'
+notify_cmd='dunstify -u low -h string:x-dunst-stack-tag:obvolume'
+
+# Get Volume
+get_volume() {
+ echo "`pulsemixer --get-volume | cut -d' ' -f1`"
+}
+
+# Get icons
+get_icon() {
+ current="$(get_volume)"
+ if [[ "$current" -eq "0" ]]; then
+ icon="$iDIR/volume-mute.png"
+ elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then
+ icon="$iDIR/volume-low.png"
+ elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then
+ icon="$iDIR/volume-mid.png"
+ elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then
+ icon="$iDIR/volume-high.png"
+ fi
+}
+
+# Notify
+notify_user() {
+ ${notify_cmd} -i "$icon" "Volume : $(get_volume)%"
+}
+
+# Increase Volume
+inc_volume() {
+ [[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute
+ pulsemixer --max-volume 100 --change-volume +5 & get_icon && notify_user
+}
+
+# Decrease Volume
+dec_volume() {
+ [[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute
+ pulsemixer --max-volume 100 --change-volume -5 & get_icon && notify_user
+}
+
+# Toggle Mute
+toggle_mute() {
+ if [[ `pulsemixer --get-mute` == 0 ]]; then
+ pulsemixer --toggle-mute & ${notify_cmd} -i "$iDIR/volume-mute.png" "Mute"
+ else
+ pulsemixer --toggle-mute & get_icon && ${notify_cmd} -i "$icon" "Unmute"
+ fi
+}
+
+# Toggle Mic
+toggle_mic() {
+ ID="`pulsemixer --list-sources | grep 'Default' | cut -d',' -f1 | cut -d' ' -f3`"
+ if [[ `pulsemixer --id $ID --get-mute` == 0 ]]; then
+ pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone-mute.png" "Microphone Switched OFF"
+ else
+ pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone.png" "Microphone Switched ON"
+ fi
+}
+
+# Execute accordingly
+if [[ -x `which pulsemixer` ]]; then
+ if [[ "$1" == "--get" ]]; then
+ get_volume
+ elif [[ "$1" == "--inc" ]]; then
+ inc_volume
+ elif [[ "$1" == "--dec" ]]; then
+ dec_volume
+ elif [[ "$1" == "--toggle" ]]; then
+ toggle_mute
+ elif [[ "$1" == "--toggle-mic" ]]; then
+ toggle_mic
+ else
+ echo $(get_volume)%
+ fi
+else
+ ${notify_cmd} "'pulsemixer' is not installed."
+fi
diff --git a/dot-config/bspwm/scripts/bspwinmask b/dot-config/bspwm/scripts/bspwinmask
new file mode 100755
index 00000000..a6211530
--- /dev/null
+++ b/dot-config/bspwm/scripts/bspwinmask
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+masked=$(bspc query -N -n .hidden -d focused)
+
+if [ -z "$masked" ]; then
+ bspc node focused -g hidden=on
+else
+ bspc node "$masked" -g hidden=off
+fi
diff --git a/dot-config/bspwm/scripts/drag-to-float b/dot-config/bspwm/scripts/drag-to-float
new file mode 100755
index 00000000..be99943a
--- /dev/null
+++ b/dot-config/bspwm/scripts/drag-to-float
@@ -0,0 +1,52 @@
+#!/bin/env bash
+
+: "${BUTTON:=1}" "${RADIUS:=200}"
+
+eval "$(xdotool getmouselocation --shell)"
+#!/bin/env bash
+
+: "${BSPWM_DIR:="${XDG_CONFIG_HOME:-$HOME/.config}/bspwm"}"
+
+#status_file="$BSPWM_DIR/tmp/drag_to_float"
+status_file="/tmp/drag-to-float"
+
+[[ "$1" = stop ]] && {
+ [[ -e "$status_file" ]] \
+ && rm -r -- "$status_file"
+ exit
+}
+
+[[ -e "$status_file" ]] \
+ && exit
+
+< <(bspc query -T -n pointed.window | jq -r '"\(.id) \(.client.state)"') read -r node node_state
+
+[[ -z "$node" ]] \
+ && exit
+
+case "$node_state" in
+ floating)
+ ;;
+ tiled|pseudo_tiled)
+ node_tiled_rect=($(bspc query -T -n "$node" | jq -r '.client.tiledRectangle[]'))
+ bspc node "$node" -t floating
+ xdo move -x "${node_tiled_rect[0]}" -y "${node_tiled_rect[1]}" "$node"
+ xdo resize -w "${node_tiled_rect[2]}" -h "${node_tiled_rect[3]}" "$node" ;;
+ *) # fullscreen
+ exit ;;
+esac
+
+eval "$(xdotool getmouselocation --shell)"
+x="$X" y="$Y"
+touch -- "$status_file"
+while [[ -e "$status_file" ]]; do
+ eval "$(xdotool getmouselocation --shell)"
+ (( X != x || Y != y )) && {
+ bspc node "$node" -v "$((X - x))" "$((Y - y))"
+ x="$X" y="$Y"
+ }
+ #sleep .01
+done
+
+[[ -e "$status_file" ]] \
+ && rm -r -- "$status_file"
diff --git a/dot-config/bspwm/scripts/keep_state b/dot-config/bspwm/scripts/keep_state
new file mode 100755
index 00000000..2fb73782
--- /dev/null
+++ b/dot-config/bspwm/scripts/keep_state
@@ -0,0 +1,2 @@
+#!/bin/bash
+bspc wm -d > ~/.config/bspwm/state
diff --git a/dot-config/bspwm/scripts/noswallow b/dot-config/bspwm/scripts/noswallow
new file mode 100755
index 00000000..9f23d84e
--- /dev/null
+++ b/dot-config/bspwm/scripts/noswallow
@@ -0,0 +1 @@
+xev
diff --git a/dot-config/bspwm/scripts/noswallow_dmenu b/dot-config/bspwm/scripts/noswallow_dmenu
new file mode 100755
index 00000000..3afd83a2
--- /dev/null
+++ b/dot-config/bspwm/scripts/noswallow_dmenu
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Allows for dmenu_run to be used without swallowing the terminal
+
+killall bspswallow
+dmenu_run
+
+# Hang until dmenu is closed
+while pidof dmenu; do continue
+done
+
+#If you frequently use dmenu_run without spawing a window commentout this while loop and uncomment the commented out part below
+bspc subscribe node_add | while read -r event; do
+bspswallow & exit
+done
+
+# sleep 2
+# bspswallow & exit
diff --git a/dot-config/bspwm/scripts/noswallow_open b/dot-config/bspwm/scripts/noswallow_open
new file mode 100755
index 00000000..81a2a0b0
--- /dev/null
+++ b/dot-config/bspwm/scripts/noswallow_open
@@ -0,0 +1,7 @@
+#!/bin/sh
+# Prefix to a command to make it so that any windows spawned from it don't swallow the terminal
+# for launching things from sxhd etc
+killall bspswallow
+eval $@ >/dev/null
+sleep 2
+bspswallow &
diff --git a/dot-config/bspwm/scripts/terminals b/dot-config/bspwm/scripts/terminals
new file mode 100755
index 00000000..6835a37c
--- /dev/null
+++ b/dot-config/bspwm/scripts/terminals
@@ -0,0 +1,3 @@
+St
+Alacritty
+Urxvt
diff --git a/dot-config/bspwm/sxhkdrc b/dot-config/bspwm/sxhkdrc
new file mode 100644
index 00000000..eeea7583
--- /dev/null
+++ b/dot-config/bspwm/sxhkdrc
@@ -0,0 +1,268 @@
+## Keybindings config for ArchLinux's BSPWM
+
+##---------- Keybindings for bspwm ----------##
+
+# Terminal (alacritty)
+super + Return
+ bspterm
+
+# Terminal (floating)
+super + shift + Return
+ bspterm --float
+
+# Terminal (fullscreen)
+super + alt + Return
+ bspterm --full
+
+super + t
+ bspterm --full
+
+super + space + Return
+ bspterm --pseudo
+
+super + alt + Delete
+ ~/.config/rofi/scripts/rofi_powermenu
+
+##---------- Rofi Launcher & Menus ----------##
+
+# Rofi App Launcher
+alt + F1
+ rofi_launcher
+
+# Rofi Run
+alt + F2
+ rofi_runner
+
+# Rofi Menus/Applets
+#super + {c,m,n,r,s,t,v,w,x}
+# {rofi_configs,rofi_music,nmd,rofi_asroot,rofi_screenshot,rofi_themes,rofi_clip,rofi_windows,rofi_powermenu}
+
+# Rofi Menus/Applets
+super + {c,m,n,r,s,v,w,x,b}
+ {rofi_configs,rofi_music,nmd,rofi_asroot,rofi_screenshot,rofi_clip,rofi_windows,rofi_powermenu,rofi_bluetooth}
+
+super + alt + b
+ killall runtransani.sh; exec $HOME/scripts/runtransani.sh &
+
+super + period
+ rofi_emoji
+
+
+
+##---------- Applications ----------##
+
+# Launch Apps
+super + shift + {f,w,e,d}
+ {thunar,thorium-browser --restore-last-session,code,discord} #&& mv /home/system/.config/Thunar/uca.xml . && mv uca.xml /home/system/.config/Thunar/uca.xml
+
+# Terminal Apps
+ctrl + alt + {a,v,r,b}
+ alacritty --class 'alacritty-float,alacritty-float' -e {pulsemixer,lvim,ranger,sudo nice -n -20 btop}
+
+# task manager
+ctrl + shift + Escape
+ sudo btop
+
+ctrl + alt + Delete
+ rofi_shutdown_menu
+
+# Color Picker
+super + p
+ bspcolorpicker
+
+# Music
+ctrl + alt + m
+ bspmusic
+
+# Lockscreen
+ctrl + alt + l
+ betterlockscreen --lock & betterlockscreen -u ~/Pictures/wallpapers
+# eww
+super + a
+ launch_dashboard
+
+##---------- System Keys ----------##
+
+# Take a screenshot
+Print
+ bspscreenshot --now
+
+# Take screenshot in 5 second
+alt + Print
+ bspscreenshot --in5
+
+# Take screenshot in 10 second
+shift + Print
+ bspscreenshot --in10
+
+# Take screenshot of active window
+ctrl + Print
+ bspscreenshot --win
+
+# Take screenshot of area
+#super + Print
+super + shift + s
+ bspscreenshot --area
+
+# Brighness control
+# XF86MonBrightness{Up,Down}
+# bspbrightness{ --inc, --dec}
+
+# Speaker Volume control
+XF86Audio{RaiseVolume,LowerVolume}
+ bspvolume{ --inc, --dec}
+
+# Mic Volume control
+XF86Audio{Mute,MicMute}
+ bspvolume{ --toggle, --toggle-mic}
+
+# Music control
+XF86Audio{Next,Prev,Play,Stop}
+ playerctl {next,previous,play-pause,stop}
+
+super + XF86PowerOff
+ $HOME/.config/rofi/scripts/rofi_shutdown
+
+XF86PowerOff
+ $HOME/.config/rofi/scripts/rofi_shutdown
+
+alt + f
+ $HOME/scripts/autoclicker-left.sh
+ # /usr/bin/ps ax | grep -v grep | grep autoclicker-left > /dev/null && killall autoclicker-left || exec autoclicker-left
+
+alt + g
+ $HOME/scripts/autoclicker-right.sh
+ #/usr/bin/ps ax | grep -v grep | grep autoclicker-right > /dev/null && killall autoclicker-right || exec autoclicker-right
+
+##---------- Bspwm ----------##
+
+# Hide/Unhide Window
+super + shift + h
+ bspwinmask
+
+super + d
+ bspwinmask
+
+
+# Close App
+super + {_,shift + }q
+ bspc node -{c,k}
+
+#alt + F4
+# bspc node -{c,k}
+
+
+# kill window
+ctrl + alt + Escape
+ /home/system/scripts/mouseKill
+
+ctrl + super + alt + Escape
+ xkill -id $(xprop -root _NET_ACTIVE_WINDOW | awk '{print $5}')
+
+# Quit/Restart bspwm
+ctrl + shift + r
+ bspc wm -r
+
+ctrl + shift + q
+ [[ "$(echo -e "\n" | rofi -dmenu -p 'Confirmation' -mesg 'Quit BSPWM?' -theme $HOME/.config/bspwm/themes/default/rofi/confirm.rasi)" == "yes" ]] && bspc quit
+
+# restart picom
+# ctrl + shift + p
+# killall picom; bspcomp
+
+# Reload Keybindings
+super + Escape
+ pkill -USR1 -x sxhkd && killall xbindkeys && xbindkeys
+
+# reload Polybar
+ctrl + super + Escape
+ bspbar && bspc config top_padding 46
+ #polybar-msg cmd restart && bspc config top_padding 46
+
+# Switch workspace
+ctrl + alt + {Left,Right}
+ bspc desktop -f {prev.local,next.local}
+
+# Switch workspace or Send focused Node to another workspace
+super + {_,shift + }{1-9}
+ bspc {desktop -f,node -d} '^{1-9}' '--follow'
+
+super + {_,shift + }0
+ bspc {desktop -f, node -d} '^10'
+
+# Send focused Node to workspace directionally
+super + ctrl + shift + {Left,Right}
+ bspc node -d {prev,next} '--follow'
+
+# Change focus of the Node or Swap Nodes
+super + {_,shift + }{Left,Down,Up,Right}
+ bspc node -{f,s} {west,south,north,east}
+
+# Move floating windows
+#super + alt + shift + {Left,Down,Up,Right}
+shift + alt + {Left,Down,Up,Right}
+ bspc node -v {-20 0,0 20,0 -20,20 0}
+
+# Expanding windows
+super + control + {Left,Right,Up,Down}
+ bspc node -z {left -20 0,right 20 0,top 0 -20,bottom 0 20}
+
+# Shrinking windows
+super + alt + {Left,Right,Up,Down}
+ bspc node -z {left 20 0,right -20 0,top 0 20,bottom 0 -20}
+
+# scroll
+super + {button4,button5}
+ bspc node -z {left -20 0 & bspc node -z right 20 0 & bspc node -z top 0 -20 & bspc node -z bottom 0 20,left 20 0 & bspc node -z right -20 0 & bspc node -z top 0 20 & bspc node -z buttom 0 -20}
+
+# "Drag to floating" tiled windows or move floating windows.
+ctrl + button3
+ ~/.config/bspwm/scripts/drag-to-float
+ctrl + @button3
+ ~/.config/bspwm/scripts/drag-to-float stop
+@button3
+ ~/.config/bspwm/scripts/drag-to-float stop
+~button3
+ :
+
+# Split horizontal, vertical or cancel
+super + alt + {h,v,q}
+ bspc node -p {east,south,cancel}
+
+# toggle between horizontal and vertical
+ctrl + super + m
+ bspc node @parent -R 90
+
+# Preselect the ratio
+super + ctrl + {1-9}
+ bspc node -o 0.{1-9}
+
+# Toggle Layout (Tiled/Monocle)
+super + l
+ bspc desktop -l next
+
+# Toggle Fullscreen
+super + f
+ bspc node -t "~"fullscreen
+
+# Toggle beetwen floating & tiled
+super + space
+ bspc node -t "~"{floating,tiled}
+
+# Pseudo Tiled & tiled mode
+super + shift + space
+ bspc node -t "~"{pseudo_tiled,tiled}
+
+# Set the node flags
+super + ctrl + {m,x,y,z}
+ bspc node -g {marked,locked,sticky,private}
+
+# Change focus to next window, including floating window
+alt + {_,shift + }Tab
+ bspc node -f {next.local,prev.local}
+
+# Switch to last opened workspace
+super + {Tab,grave}
+ bspc {node,desktop} -f last
+
+##---------- EOF ----------##
diff --git a/dot-config/bspwm/themes/.current b/dot-config/bspwm/themes/.current
new file mode 100644
index 00000000..4ad96d51
--- /dev/null
+++ b/dot-config/bspwm/themes/.current
@@ -0,0 +1 @@
+default
diff --git a/dot-config/bspwm/themes/.system b/dot-config/bspwm/themes/.system
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/.system
diff --git a/dot-config/bspwm/themes/adaptive/apply.sh b/dot-config/bspwm/themes/adaptive/apply.sh
new file mode 100755
index 00000000..c1e7d896
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/apply.sh
@@ -0,0 +1,286 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
+altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
+modbackground=(`pastel gradient -n 7 $background $altbackground | pastel format hex`)
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${background}
+ FOREGROUND = ${foreground}
+ ALTBACKGROUND = ${altbackground}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${accent}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+
+ BACKGROUND1 = ${modbackground[1]}
+ BACKGROUND2 = ${modbackground[2]}
+ BACKGROUND3 = ${modbackground[3]}
+ BACKGROUND4 = ${modbackground[4]}
+ BACKGROUND5 = ${modbackground[5]}
+ BACKGROUND6 = ${modbackground[6]}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${background};
+ background-alt: ${modbackground[2]};
+ foreground: ${foreground};
+ selected: ${accent};
+ active: ${color2};
+ urgent: ${color1};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${background}"
+ foreground = "${color1}"
+ frame_color = "${color1}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/adaptive/polybar/.module b/dot-config/bspwm/themes/adaptive/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/polybar/.module
diff --git a/dot-config/bspwm/themes/adaptive/polybar/colors.ini b/dot-config/bspwm/themes/adaptive/polybar/colors.ini
new file mode 100644
index 00000000..36a72dd0
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/polybar/colors.ini
@@ -0,0 +1,31 @@
+[color]
+
+BACKGROUND = #222d32
+FOREGROUND = #c4c7c5
+ALTBACKGROUND = #415660
+ALTFOREGROUND = #767c78
+ACCENT = #00BCD4
+
+BLACK = #263640
+RED = #ec7875
+GREEN = #61c766
+YELLOW = #fdd835
+BLUE = #42a5f5
+MAGENTA = #ba68c8
+CYAN = #4dd0e1
+WHITE = #bfbaac
+ALTBLACK = #4a697d
+ALTRED = #fb8784
+ALTGREEN = #70d675
+ALTYELLOW = #ffe744
+ALTBLUE = #51b4ff
+ALTMAGENTA = #c979d7
+ALTCYAN = #5cdff0
+ALTWHITE = #fdf6e3
+
+BACKGROUND1 = #273439
+BACKGROUND2 = #2c3a41
+BACKGROUND3 = #314148
+BACKGROUND4 = #364850
+BACKGROUND5 = #3c4f58
+BACKGROUND6 = #415660
diff --git a/dot-config/bspwm/themes/adaptive/polybar/config.ini b/dot-config/bspwm/themes/adaptive/polybar/config.ini
new file mode 100644
index 00000000..c85f818c
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/polybar/config.ini
@@ -0,0 +1,307 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; 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 = ../../system.ini
+include-file = ./colors.ini
+include-file = ./modules.ini
+include-file = ./decor.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 = ${env: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 = 34
+
+; 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 = 2
+line-color = ${color.ACCENT}
+
+; 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-top-size = 0
+border-color = ${color.ACCENT}
+
+; Number of spaces to add at the beginning/end of the bar
+; Individual side values can be defined using:
+; padding-{left,right}
+padding = 0
+
+; Number of spaces to add before/after each module
+; Individual side values can be defined using:
+; module-margin-{left,right}
+module-margin-left = 0
+module-margin-right = 0
+
+; Fonts are defined using <font-name>;<vertical-offset>
+; Font names are specified using a fontconfig pattern.
+; font-0 = "Iosevka Nerd Font:size=10;3"
+; 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 = "Iosevka Nerd Font:size=10;3"
+font-1 = "Iosevka Nerd Font:size=12;3"
+font-2 = "Iosevka Nerd Font:size=20;5"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbrightness
+; modules-right = ipc clock
+
+# Default
+modules-left = sepL menu 1LD mod bspwm 2LD cpu 3LD used-memory 4LD filesystem 5LD
+modules-center = mpd
+modules-right = 2RD volume 3RD bna 4RD battery 5RD network 6RD date 7RD sysmenu sepR
+# Alternate
+;modules-left = openbox 2LD cpu 3LD memory 4LD filesystem 5LD
+;modules-center = mpd
+;modules-right = 2RD volume 3RD brightness 4RD battery 5RD network 6RD date sep
+
+; The separator will be inserted between the output of each module
+separator =
+
+; This value is used to add extra spacing between elements
+; @deprecated: This parameter will be removed in an upcoming version
+spacing = 0
+
+; 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 = bspwm
+
+; 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 = right
+
+; If true, the bar will not shift its
+; contents when the tray changes
+tray-detached = false
+
+; Tray icon max size
+tray-maxsize = 16
+
+; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
+; Enable pseudo transparency
+; Will automatically be enabled if a fully transparent
+; background color is defined using `tray-background`
+; tray-transparent = false
+
+; 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.BACKGROUND6}
+
+; 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 = bspwm
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+; dpi =
+
+; 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 = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+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/dot-config/bspwm/themes/adaptive/polybar/decor.ini b/dot-config/bspwm/themes/adaptive/polybar/decor.ini
new file mode 100644
index 00000000..db6e55a4
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/polybar/decor.ini
@@ -0,0 +1,92 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; DECOR _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sepL]
+type = custom/text
+content = --
+content-background = ${color.BACKGROUND5}
+content-foreground = ${color.BACKGROUND5}
+
+[module/sepR]
+type = custom/text
+content = --
+content-background = ${color.BACKGROUND6}
+content-foreground = ${color.BACKGROUND6}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/1LD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND4}
+content-foreground = ${color.BACKGROUND5}
+
+[module/2LD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND3}
+content-foreground = ${color.BACKGROUND4}
+
+[module/3LD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND2}
+content-foreground = ${color.BACKGROUND3}
+
+[module/4LD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND1}
+content-foreground = ${color.BACKGROUND2}
+
+[module/5LD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.BACKGROUND1}
+
+[module/7RD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND6}
+content-foreground = ${color.BACKGROUND5}
+
+[module/6RD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND5}
+content-foreground = ${color.BACKGROUND4}
+
+[module/5RD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND4}
+content-foreground = ${color.BACKGROUND3}
+
+[module/4RD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND3}
+content-foreground = ${color.BACKGROUND2}
+
+[module/3RD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND2}
+content-foreground = ${color.BACKGROUND1}
+
+[module/2RD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.BACKGROUND1}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/adaptive/polybar/launch.sh b/dot-config/bspwm/themes/adaptive/polybar/launch.sh
new file mode 100755
index 00000000..ae47b54c
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/polybar/launch.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/adaptive/polybar/modules.ini b/dot-config/bspwm/themes/adaptive/polybar/modules.ini
new file mode 100644
index 00000000..93f48a44
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/polybar/modules.ini
@@ -0,0 +1,1007 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bspwm]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-default = 
+
+format = <label-state>
+format-background = ${color.BACKGROUND4}
+format-font = 1
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.RED}
+label-focused-underline = ${color.RED}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.ACCENT}
+;label-occupied-underline = ${color.ACCENT}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.GREEN}
+label-urgent-underline = ${color.GREEN}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = ""
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = (<label-mode>)
+format-background = ${color.BACKGROUND4}
+format-foreground = ${color.YELLOW}
+format-padding = 1
+
+label-monocle = "M"
+label-tiled = "T"
+
+label-floating = ", FL"
+label-pseudotiled = ", PS"
+label-fullscreen = ", FU"
+
+label-locked = " | L"
+label-sticky = " | S"
+label-private = " | P"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-font = 2
+content-prefix-foreground = ${color.RED}
+content-background = ${color.BACKGROUND2}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_backlight
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <ramp> <label>
+format-background = ${color.BACKGROUND2}
+
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <ramp> <label>
+format-background = ${color.BACKGROUND2}
+
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = <animation-charging> <label-charging>
+format-charging-prefix = " "
+format-charging-prefix-font = 1
+format-charging-prefix-foreground = ${color.RED}
+format-charging-background = ${color.BACKGROUND3}
+
+; Available tags:
+; <label-discharging> (default)
+; <bar-capacity>
+; <ramp-capacity>
+; <animation-discharging>
+format-discharging = <ramp-capacity> <label-discharging>
+format-discharging-background = ${color.BACKGROUND3}
+
+; Available tags:
+; <label-full> (default)
+; <bar-capacity>
+; <ramp-capacity>
+;format-full = <ramp-capacity> <label-full>
+
+; 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)
+format-full = <label-full>
+format-full-prefix = " "
+format-full-prefix-font = 2
+format-full-prefix-foreground = ${color.GREEN}
+format-full-background = ${color.BACKGROUND3}
+label-full = %percentage%%
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-foreground = ${color.YELLOW}
+ramp-capacity-font = 2
+
+; Only applies if <animation-charging> is used
+animation-charging-0 = 
+animation-charging-1 = 
+animation-charging-2 = 
+animation-charging-3 = 
+animation-charging-4 = 
+animation-charging-foreground = ${color.GREEN}
+animation-charging-font = 2
+animation-charging-framerate = 700
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/cpu]
+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 = <label>
+format-prefix = 
+format-prefix-font = 2
+format-prefix-foreground = ${color.YELLOW}
+format-background = ${color.BACKGROUND3}
+
+; 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%%"
+
+; Spacing between individual per-core ramps
+;;ramp-coreload-spacing = 1
+;;ramp-coreload-0 = 
+;;ramp-coreload-1 = 
+;;ramp-coreload-2 = 
+;;ramp-coreload-3 = 
+;;ramp-coreload-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+; Seconds to sleep between updates
+interval = 1.0
+
+; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
+; NOTE: if you want to use syntax tags here you need to use %%{...}
+;;date = %Y-%m-%d%
+
+; Optional time format
+time = %I:%M %p
+
+; if `date-alt` or `time-alt` is defined, clicking
+; the module will toggle between formats
+;;date-alt = %A, %d %B %Y
+#time-alt = %d/%m/%Y%
+time-alt = %b %d, %G
+
+; Available tags:
+; <label> (default)
+
+format = <label>
+format-prefix = " "
+format-prefix-font = 2
+format-prefix-foreground = ${color.GREEN}
+format-background = ${color.BACKGROUND5}
+
+; Available tokens:
+; %date%
+; %time%
+; Default: %date%
+label = %time%
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/filesystem]
+type = internal/fs
+
+; Mountpoints to display
+mount-0 = /
+;;mount-1 = /home
+;;mount-2 = /var
+
+; Seconds to sleep between updates
+; Default: 30
+interval = 10
+
+; Display fixed precision values
+; Default: false
+fixed-values = true
+
+; Spacing between entries
+; Default: 2
+;;spacing = 4
+
+; Available tags:
+; <label-mounted> (default)
+; <bar-free>
+; <bar-used>
+; <ramp-capacity>
+format-mounted = <label-mounted>
+format-mounted-background = ${color.BACKGROUND1}
+
+format-mounted-prefix = 
+format-mounted-prefix-font = 2
+format-mounted-prefix-foreground = ${color.MAGENTA}
+
+; Available tags:
+; <label-unmounted> (default)
+format-unmounted = <label-unmounted>
+format-unmounted-background = ${color.BACKGROUND1}
+
+format-unmounted-prefix = 
+format-unmounted-prefix-font = 2
+format-unmounted-prefix-foreground = ${color.MAGENTA}
+
+; Available tokens:
+; %mountpoint%
+; %type%
+; %fsname%
+; %percentage_free%
+; %percentage_used%
+; %total%
+; %free%
+; %used%
+; Default: %mountpoint% %percentage_free%%
+label-mounted = " %free%"
+
+; Available tokens:
+; %mountpoint%
+; Default: %mountpoint% is not mounted
+label-unmounted = " %mountpoint%: NM"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/memory]
+type = internal/memory
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 3
+
+; 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 = <label>
+format-background = ${color.BACKGROUND2}
+
+format-prefix = ﬙
+format-prefix-font = 2
+format-prefix-foreground = ${color.BLUE}
+
+; 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 <ramp-used> is used
+;;ramp-used-0 = 
+;;ramp-used-1 = 
+;;ramp-used-2 = 
+;;ramp-used-3 = 
+;;ramp-used-4 = 
+
+; Only applies if <ramp-free> is used
+;;ramp-free-0 = 
+;;ramp-free-1 = 
+;;ramp-free-2 = 
+;;ramp-free-3 = 
+;;ramp-free-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/used-memory]
+type = custom/script
+
+exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3
+
+tail = true
+interval = 5
+
+format = <label>
+format-background = ${color.BACKGROUND2}
+
+format-prefix = ﬙
+format-prefix-font = 2
+format-prefix-foreground = ${color.BLUE}
+
+label = " %output% MB"
+
+click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" &
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 127.0.0.1
+;;port = 6600
+;;password = mysecretpassword
+
+; Seconds to sleep between progressbar/song timer sync
+; Default: 1
+interval = 2
+
+; 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> <toggle> <icon-next> <label-song>
+;;format-online-prefix = " "
+;;format-online-prefix-font = 2
+;;format-online-prefix-foreground = ${color.GREEN}
+
+format-playing = ${self.format-online}
+format-paused = ${self.format-online}
+format-stopped = Play Again <icon-prev> <toggle> <icon-next>
+
+; Available tags:
+; <label-offline>
+;format-offline = <label-offline>
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = "Offline"
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-play-font = 2
+icon-play-foreground = ${color.GREEN}
+icon-pause = 
+icon-pause-font = 2
+icon-pause-foreground = ${color.YELLOW}
+icon-stop = 
+icon-stop-foreground = ${color.RED}
+icon-prev = 玲
+icon-prev-font = 2
+icon-prev-foreground = ${color.CYAN}
+icon-next = 怜
+icon-next-font = 2
+icon-next-foreground = ${color.CYAN}
+
+; Used to display the state of random/repeat/repeatone/single
+; Only applies if <icon-[random|repeat|repeatone|single]> is used
+;;toggle-on-foreground = #ff
+;;toggle-off-foreground = #55
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; If you use both a wired and a wireless network, Add both modules in config.ini
+[module/ethernet]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <label-connected>
+format-connected-prefix = "歷 "
+format-connected-prefix-foreground = ${color.MAGENTA}
+format-connected-prefix-font = 2
+format-connected-background = ${color.BACKGROUND4}
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "轢 "
+format-disconnected-prefix-font = 2
+format-disconnected-foreground = ${color.ALTFOREGROUND}
+format-disconnected-background = ${color.BACKGROUND4}
+
+label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}"
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; Normal Module
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <ramp-signal> <label-connected>
+format-connected-background = ${color.BACKGROUND4}
+
+; Available tags:
+; <label-disconnected> (default)
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "睊 "
+format-disconnected-prefix-font = 2
+format-disconnected-foreground = ${color.ALTFOREGROUND}
+format-disconnected-background = ${color.BACKGROUND4}
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+;label-connected = "%essid%  %downspeed%"
+label-connected = "%{A1:nmd &:}%essid%%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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-foreground = ${color.MAGENTA}
+ramp-signal-font = 2
+
+; 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/volume]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; 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> <label-volume>
+format-volume-background = ${color.BACKGROUND1}
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+format-muted-prefix = 婢
+format-muted-prefix-font = 2
+format-muted-prefix-foreground = ${color.ALTFOREGROUND}
+format-muted-background = ${color.BACKGROUND1}
+
+; Available tokens:
+; %percentage% (default)
+;label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default)
+label-muted = " Mute"
+label-muted-foreground = ${color.ALTFOREGROUND}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+ramp-volume-font = 2
+ramp-volume-foreground = ${color.BLUE}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/temperature]
+type = internal/temperature
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 0.5
+
+; 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/hwmon2/temp1_input
+
+; Threshold temperature to display warning label (in degrees celsius)
+; Default: 80
+warn-temperature = 60
+
+; Whether or not to show units next to the temperature tokens (°C, °F)
+; Default: true
+units = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+format = <ramp> <label>
+
+; Available tags:
+; <label-warn> (default)
+; <ramp>
+format-warn = <ramp> <label-warn>
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label = %temperature-c%
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label-warn = "%temperature-c%"
+label-warn-foreground = ${color.RED}
+
+; Requires the <ramp> tag
+; The icon selection will range from 0 to `warn-temperature`
+; with the current temperature as index.
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.YELLOW}
+;;ramp-foreground = #55
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/keyboard]
+type = internal/xkeyboard
+
+; List of indicators to ignore
+;blacklist-0 = num lock
+blacklist-1 = scroll lock
+
+; Available tags:
+; <label-layout> (default)
+; <label-indicator> (default)
+format = <label-layout> <label-indicator>
+format-prefix = " "
+format-prefix-font = 2
+format-prefix-foreground = ${color.MAGENTA}
+;;format-spacing = 0
+
+; Available tokens:
+; %layout%
+; %name%
+; %number%
+; Default: %layout%
+label-layout = %name%
+;;label-layout-padding = 2
+;;label-layout-background = #bc99ed
+;;label-layout-foreground = #000
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-indicator-on = " %name%"
+;;label-indicator-padding = 2
+label-indicator-on-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/title]
+type = internal/xwindow
+
+; Available tags:
+; <label> (default)
+format = <label>
+format-prefix = " "
+format-prefix-font = 2
+format-prefix-foreground = ${color.BLUE}
+
+; Available tokens:
+; %title%
+; Default: %title%
+label = %title%
+label-maxlen = 25
+
+; Used instead of label when there is no window title
+; Available tokens:
+; None
+;label-empty = Desktop
+;label-empty-foreground = ${color.BACKGROUNDA}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/openbox]
+type = internal/xworkspaces
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = true
+
+; Create click handler used to focus desktop
+; Default: true
+enable-click = true
+
+; Create scroll handlers used to cycle desktops
+; Default: true
+enable-scroll = true
+
+; icon-[0-9]+ = <desktop-name>;<icon>
+; NOTE: The desktop name needs to match the name configured by the WM
+; You can get a list of the defined desktops using:
+; $ xprop -root _NET_DESKTOP_NAMES
+icon-0 = 1;
+icon-1 = 2;
+icon-2 = 3;
+icon-3 = 4;
+icon-4 = 5;
+icon-default = 
+
+; Available tags:
+; <label-monitor>
+; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
+; Default: <label-state>
+format = <label-state>
+format-background = ${color.BACKGROUND4}
+format-font = 1
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-monitor = %name%
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-active = 
+label-active-foreground = ${color.RED}
+;;label-active-underline = ${color.BACKGROUNDA}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-occupied = 
+label-occupied-foreground = ${color.ACCENT}
+;;label-occupied-underline = ${color.BACKGROUNDA}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-urgent = 
+label-urgent-foreground = ${color.GREEN}
+;;label-urgent-underline = ${color.BACKGROUNDA}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-empty = %icon%
+label-empty-foreground = ${color.ACCENT}
+
+label-active-padding = 1
+label-urgent-padding = 1
+label-occupied-padding = 1
+label-empty-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/menu]
+type = custom/text
+
+content = 
+content-font = 2
+content-background = ${color.BACKGROUND5}
+content-foreground = ${color.GREEN}
+content-padding = 0
+
+click-left = ~/.config/bspwm/scripts/rofi_launcher
+;;click-middle = path_to_script
+click-right = ~/.config/bspwm/scripts/rofi_runner
+
+;;scroll-up = path_to_script
+;;scroll-down = path_to_script
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sysmenu]
+type = custom/text
+
+content = 
+content-font = 2
+content-background = ${color.BACKGROUND6}
+content-foreground = ${color.RED}
+content-padding = 0
+
+click-left = ~/.config/bspwm/scripts/rofi_powermenu
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/adaptive/rofi/askpass.rasi b/dot-config/bspwm/themes/adaptive/rofi/askpass.rasi
new file mode 100644
index 00000000..f8ec6288
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/askpass.rasi
@@ -0,0 +1,75 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px 15px;
+ border-radius: 0px;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/asroot.rasi b/dot-config/bspwm/themes/adaptive/rofi/asroot.rasi
new file mode 100644
index 00000000..e38c8218
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/asroot.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/confirm.rasi b/dot-config/bspwm/themes/adaptive/rofi/confirm.rasi
new file mode 100644
index 00000000..9d86107a
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/confirm.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 250px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 100%;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @active;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @urgent;
+ text-color: @background;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/launcher.rasi b/dot-config/bspwm/themes/adaptive/rofi/launcher.rasi
new file mode 100644
index 00000000..553a6e5a
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/launcher.rasi
@@ -0,0 +1,303 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "mode-switcher", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: @urgent;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/music.rasi b/dot-config/bspwm/themes/adaptive/rofi/music.rasi
new file mode 100644
index 00000000..16fb95cb
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/music.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/networkmenu.rasi b/dot-config/bspwm/themes/adaptive/rofi/networkmenu.rasi
new file mode 100644
index 00000000..e12b4366
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/networkmenu.rasi
@@ -0,0 +1,156 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ height: 515px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "直";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+entry {
+ enabled: true;
+ padding: 10px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder-color: inherit;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/powermenu.rasi b/dot-config/bspwm/themes/adaptive/rofi/powermenu.rasi
new file mode 100644
index 00000000..8cd31567
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/powermenu.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/runner.rasi b/dot-config/bspwm/themes/adaptive/rofi/runner.rasi
new file mode 100644
index 00000000..76556873
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/runner.rasi
@@ -0,0 +1,303 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: @urgent;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Run...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/screenshot.rasi b/dot-config/bspwm/themes/adaptive/rofi/screenshot.rasi
new file mode 100644
index 00000000..7368b9f6
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/screenshot.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/shared/colors.rasi b/dot-config/bspwm/themes/adaptive/rofi/shared/colors.rasi
new file mode 100644
index 00000000..f36bac60
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #222d32;
+ background-alt: #2c3a41;
+ foreground: #c4c7c5;
+ selected: #00BCD4;
+ active: #61c766;
+ urgent: #ec7875;
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/adaptive/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..d2af39fe
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/shared/fonts.rasi
@@ -0,0 +1,7 @@
+/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
+
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/themes.rasi b/dot-config/bspwm/themes/adaptive/rofi/themes.rasi
new file mode 100644
index 00000000..553f5b05
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/themes.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/adaptive/rofi/windows.rasi b/dot-config/bspwm/themes/adaptive/rofi/windows.rasi
new file mode 100644
index 00000000..16debddf
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/rofi/windows.rasi
@@ -0,0 +1,303 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 550px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: @urgent;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/adaptive/theme.bash b/dot-config/bspwm/themes/adaptive/theme.bash
new file mode 100644
index 00000000..b9882412
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/theme.bash
@@ -0,0 +1,82 @@
+# ------------------------------------------------------------------------------
+# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+#
+# Adaptive Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#222d32'
+foreground='#c4c7c5'
+color0='#263640'
+color1='#ec7875'
+color2='#61c766'
+color3='#fdd835'
+color4='#42a5f5'
+color5='#ba68c8'
+color6='#4dd0e1'
+color7='#bfbaac'
+color8='#4a697d'
+color9='#fb8784'
+color10='#70d675'
+color11='#ffe744'
+color12='#51b4ff'
+color13='#c979d7'
+color14='#5cdff0'
+color15='#fdf6e3'
+
+accent='#00BCD4'
+light_value='0.15'
+dark_value='0.30'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='Iosevka Nerd Font:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Papirus-Apps'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='adapta.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Adapta-Nokto'
+icon_theme='Luv-Folders-Dark'
+cursor_theme='Vimix'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='10x44'
+dunst_origin='top-right'
+dunst_font='Iosevka Custom 9'
+dunst_border='1'
+dunst_separator='1'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$accent"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='1'
+bspwm_gap='10'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/adaptive/wallpaper b/dot-config/bspwm/themes/adaptive/wallpaper
new file mode 120000
index 00000000..ac556dd7
--- /dev/null
+++ b/dot-config/bspwm/themes/adaptive/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/adaptive.png \ No newline at end of file
diff --git a/dot-config/bspwm/themes/beach/apply.sh b/dot-config/bspwm/themes/beach/apply.sh
new file mode 100755
index 00000000..97481935
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/apply.sh
@@ -0,0 +1,278 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
+altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${background}
+ FOREGROUND = ${foreground}
+ ALTBACKGROUND = ${altbackground}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${accent}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${background};
+ background-alt: ${altbackground};
+ foreground: ${foreground};
+ selected: ${accent};
+ active: ${color2};
+ urgent: ${color1};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${background}"
+ foreground = "${color1}"
+ frame_color = "${color1}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/beach/polybar/.module b/dot-config/bspwm/themes/beach/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/polybar/.module
diff --git a/dot-config/bspwm/themes/beach/polybar/colors.ini b/dot-config/bspwm/themes/beach/polybar/colors.ini
new file mode 100644
index 00000000..aa731eb3
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/polybar/colors.ini
@@ -0,0 +1,24 @@
+[color]
+
+BACKGROUND = #141c21
+FOREGROUND = #93a1a1
+ALTBACKGROUND = #1a242b
+ALTFOREGROUND = #485353
+ACCENT = #5294E2
+
+BLACK = #263640
+RED = #d12f2c
+GREEN = #819400
+YELLOW = #b08500
+BLUE = #2587cc
+MAGENTA = #696ebf
+CYAN = #289c93
+WHITE = #bfbaac
+ALTBLACK = #4a697d
+ALTRED = #fa3935
+ALTGREEN = #a4bd00
+ALTYELLOW = #d9a400
+ALTBLUE = #2ca2f5
+ALTMAGENTA = #8086e8
+ALTCYAN = #33c5ba
+ALTWHITE = #fdf6e3
diff --git a/dot-config/bspwm/themes/beach/polybar/config.ini b/dot-config/bspwm/themes/beach/polybar/config.ini
new file mode 100644
index 00000000..2d071099
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/polybar/config.ini
@@ -0,0 +1,317 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; 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 = ../../system.ini
+include-file = ./colors.ini
+include-file = ./modules.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 = ${env: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 = true
+
+; 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 = 38
+
+; 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 = 2
+line-color = ${color.ACCENT}
+
+; 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-size = 0
+border-color = ${color.BACKGROUND}
+
+; Number of spaces to add at the beginning/end of the bar
+; Individual side values can be defined using:
+; padding-{left,right}
+padding = 0
+
+; 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 = "Iosevka Nerd Font:size=10;3"
+; font-1 = MaterialIcons:size=10
+; font-2 = Termsynu:size=8;-1
+; font-3 = FontAwesome:size=10
+; See the Fonts wiki page for more details
+
+; text
+font-0 = "Iosevka Nerd Font:size=10;3"
+; icons
+font-1 = "Iosevka Nerd Font:size=12;3"
+; glyphs
+font-2 = "Iosevka Nerd Font:size=15;4"
+; dot
+font-3 = "Iosevka Nerd Font:size=10;4"
+; clock & mpd
+font-4 = "Iosevka:style=bold:size=10;4"
+; Archcraft
+font-5 = "archcraft:size=12;3"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbrightness
+; modules-right = ipc clock
+
+# Default
+modules-left = menu mod sep bspwm
+modules-center = mpd
+modules-right = volume bna battery network date sysmenu
+
+# Alternate
+;modules-left = openbox 2LD cpu 3LD memory 4LD filesystem 5LD
+;modules-center = mpd
+;modules-right = 2RD volume 3RD brightness 4RD battery 5RD network 6RD date sep
+
+; The separator will be inserted between the output of each module
+separator =
+
+; This value is used to add extra spacing between elements
+; @deprecated: This parameter will be removed in an upcoming version
+spacing = 0
+
+; 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 = bspwm
+
+; 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 = right
+
+; If true, the bar will not shift its
+; contents when the tray changes
+tray-detached = false
+
+; Tray icon max size
+tray-maxsize = 16
+
+; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
+; Enable pseudo transparency
+; Will automatically be enabled if a fully transparent
+; background color is defined using `tray-background`
+; tray-transparent = false
+
+; 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 = bspwm
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+; dpi =
+
+; 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 = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+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/dot-config/bspwm/themes/beach/polybar/launch.sh b/dot-config/bspwm/themes/beach/polybar/launch.sh
new file mode 100755
index 00000000..ae47b54c
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/polybar/launch.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/beach/polybar/modules.ini b/dot-config/bspwm/themes/beach/polybar/modules.ini
new file mode 100644
index 00000000..4bbd026c
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/polybar/modules.ini
@@ -0,0 +1,1161 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+content = ◆
+
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.ALTFOREGROUND}
+content-padding = 0
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bspwm]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-default = 
+
+format = <label-state>
+format-font = 2
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.YELLOW}
+label-focused-underline = ${color.YELLOW}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.RED}
+;label-occupied-underline = ${color.RED}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.GREEN}
+label-urgent-underline = ${color.GREEN}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = ""
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = <label-mode>
+format-foreground = ${color.GREEN}
+format-padding = 0
+
+label-monocle = "Monocle"
+label-tiled = "Tiled"
+
+label-floating = ", Float"
+label-pseudotiled = ", Pseudo"
+label-fullscreen = ", Full"
+
+label-locked = " | Locked"
+label-sticky = " | Sticky"
+label-private = " | Private"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/alsa]
+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> <label-volume>
+format-volume-background = ${color.BACKGROUND}
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+format-muted-prefix = 
+format-muted-prefix-font = 2
+format-muted-background = ${color.BACKGROUND}
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+label-muted = " Mute"
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 
+ramp-volume-1 = 
+ramp-volume-2 = 
+ramp-volume-3 = 
+ramp-volume-4 = 
+ramp-volume-5 = 
+ramp-volume-6 = 
+ramp-volume-7 = 
+ramp-volume-8 = 
+ramp-volume-9 = 
+ramp-volume-foreground = ${color.YELLOW}
+ramp-volume-font = 2
+
+; 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 = 
+ramp-headphones-1 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-font = 2
+content-prefix-foreground = ${color.RED}
+content-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_backlight
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <ramp> <label>
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <ramp> <label>
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = <animation-charging> <label-charging>
+format-charging-prefix = " "
+format-charging-prefix-font = 1
+format-charging-prefix-foreground = ${color.YELLOW}
+format-charging-background = ${color.BACKGROUND}
+
+; Available tags:
+; <label-discharging> (default)
+; <bar-capacity>
+; <ramp-capacity>
+; <animation-discharging>
+format-discharging = <ramp-capacity> <label-discharging>
+format-discharging-background = ${color.BACKGROUND}
+
+; Available tags:
+; <label-full> (default)
+; <bar-capacity>
+; <ramp-capacity>
+;format-full = <ramp-capacity> <label-full>
+
+; 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)
+format-full = <label-full>
+format-full-prefix = " "
+format-full-prefix-font = 2
+format-full-prefix-foreground = ${color.GREEN}
+format-full-background = ${color.BACKGROUND}
+label-full = %percentage%%
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-foreground = ${color.MAGENTA}
+ramp-capacity-font = 2
+
+; Only applies if <animation-charging> is used
+animation-charging-0 = 
+animation-charging-1 = 
+animation-charging-2 = 
+animation-charging-3 = 
+animation-charging-4 = 
+animation-charging-foreground = ${color.GREEN}
+animation-charging-font = 2
+animation-charging-framerate = 700
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/cpu]
+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 = <label>
+format-prefix = 
+format-prefix-font = 2
+format-prefix-foreground = ${color.YELLOW}
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+; 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%%"
+
+; Spacing between individual per-core ramps
+;;ramp-coreload-spacing = 1
+;;ramp-coreload-0 = 
+;;ramp-coreload-1 = 
+;;ramp-coreload-2 = 
+;;ramp-coreload-3 = 
+;;ramp-coreload-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+; Seconds to sleep between updates
+interval = 1.0
+
+; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
+; NOTE: if you want to use syntax tags here you need to use %%{...}
+;;date = %Y-%m-%d%
+
+; Optional time format
+time = %I:%M %p
+
+; if `date-alt` or `time-alt` is defined, clicking
+; the module will toggle between formats
+;;date-alt = %A, %d %B %Y
+#time-alt = %d/%m/%Y%
+time-alt = %a %b %d, %G
+
+; Available tags:
+; <label> (default)
+
+format = <label>
+format-prefix = " "
+format-prefix-font = 2
+format-prefix-foreground = ${color.GREEN}
+format-background = ${color.BACKGROUND}
+
+; Available tokens:
+; %date%
+; %time%
+; Default: %date%
+label = %time%
+label-font = 5
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/filesystem]
+type = internal/fs
+
+; Mountpoints to display
+mount-0 = /
+;;mount-1 = /home
+;;mount-2 = /var
+
+; Seconds to sleep between updates
+; Default: 30
+interval = 10
+
+; Display fixed precision values
+; Default: false
+fixed-values = true
+
+; Spacing between entries
+; Default: 2
+;;spacing = 4
+
+; Available tags:
+; <label-mounted> (default)
+; <bar-free>
+; <bar-used>
+; <ramp-capacity>
+format-mounted = <label-mounted>
+format-mounted-background = ${color.BACKGROUND}
+format-mounted-padding = 1
+
+format-mounted-prefix = 
+format-mounted-prefix-font = 2
+format-mounted-prefix-foreground = ${color.MAGENTA}
+
+; Available tags:
+; <label-unmounted> (default)
+format-unmounted = <label-unmounted>
+format-unmounted-background = ${color.BACKGROUND}
+format-unmounted-padding = 1
+
+format-unmounted-prefix = 
+format-unmounted-prefix-font = 2
+format-unmounted-prefix-foreground = ${color.RED}
+
+; Available tokens:
+; %mountpoint%
+; %type%
+; %fsname%
+; %percentage_free%
+; %percentage_used%
+; %total%
+; %free%
+; %used%
+; Default: %mountpoint% %percentage_free%%
+label-mounted = " %free%"
+
+; Available tokens:
+; %mountpoint%
+; Default: %mountpoint% is not mounted
+label-unmounted = " %mountpoint%: NM"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/memory]
+type = internal/memory
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 3
+
+; 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 = <label>
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+format-prefix = 
+format-prefix-font = 2
+format-prefix-foreground = ${color.CYAN}
+
+; 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 <ramp-used> is used
+;;ramp-used-0 = 
+;;ramp-used-1 = 
+;;ramp-used-2 = 
+;;ramp-used-3 = 
+;;ramp-used-4 = 
+
+; Only applies if <ramp-free> is used
+;;ramp-free-0 = 
+;;ramp-free-1 = 
+;;ramp-free-2 = 
+;;ramp-free-3 = 
+;;ramp-free-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/used-memory]
+type = custom/script
+
+exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3
+
+tail = true
+interval = 5
+
+format = <label>
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+format-prefix = 
+format-prefix-font = 2
+format-prefix-foreground = ${color.CYAN}
+
+label = " %output% MB"
+
+click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" &
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 127.0.0.1
+;;port = 6600
+;;password = mysecretpassword
+
+; Seconds to sleep between progressbar/song timer sync
+; Default: 1
+interval = 2
+
+; 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> <toggle> <icon-next> <label-song>
+;;format-online-prefix = " "
+;;format-online-prefix-font = 2
+;;format-online-prefix-foreground = ${color.GREEN}
+format-online-background = ${color.BACKGROUND}
+
+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-background = ${color.BACKGROUND}
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = "%artist% - %title%"
+label-song-maxlen = 30
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = ""
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-play-font = 2
+icon-play-foreground = ${color.CYAN}
+icon-pause = 
+icon-pause-font = 2
+icon-pause-foreground = ${color.CYAN}
+icon-stop = 
+icon-stop-foreground = ${color.RED}
+icon-prev = 玲
+icon-prev-font = 1
+icon-prev-foreground = ${color.BLUE}
+icon-next = 怜
+icon-next-font = 1
+icon-next-foreground = ${color.BLUE}
+
+; Used to display the state of random/repeat/repeatone/single
+; Only applies if <icon-[random|repeat|repeatone|single]> is used
+;;toggle-on-foreground = #ff
+;;toggle-off-foreground = #55
+
+;;-----------
+
+[module/song]
+type = internal/mpd
+
+interval = 2
+
+format-online = <label-song>
+format-online-font = 5
+format-offline = <label-offline>
+format-offline-font = 5
+
+format-playing = ${self.format-online}
+format-paused = "${self.format-online}"
+format-stopped = ""
+
+label-offline = "Offline"
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; If you use both a wired and a wireless network, Add both modules in config.ini
+[module/ethernet]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <label-connected>
+format-connected-prefix = "歷 "
+format-connected-prefix-foreground = ${color.BLUE}
+format-connected-prefix-font = 2
+format-connected-background = ${color.BACKGROUND}
+format-connected-padding = 1
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "轢 "
+format-disconnected-prefix-font = 2
+format-disconnected-foreground = ${color.ALTFOREGROUND}
+format-disconnected-background = ${color.BACKGROUND}
+format-disconnected-padding = 1
+
+label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}"
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <ramp-signal> <label-connected>
+format-connected-background = ${color.BACKGROUND}
+format-connected-padding = 1
+
+; Available tags:
+; <label-disconnected> (default)
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "ﲁ "
+format-disconnected-prefix-font = 2
+format-disconnected-foreground = ${color.ALTFOREGROUND}
+format-disconnected-background = ${color.BACKGROUND}
+format-disconnected-padding = 1
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+;label-connected = "%essid%  %downspeed%"
+label-connected = "%{A1:nmd &:}%essid%%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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-foreground = ${color.BLUE}
+ramp-signal-font = 2
+
+; 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/volume]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; 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> <label-volume>
+format-volume-background = ${color.BACKGROUND}
+format-volume-padding = 1
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+format-muted-prefix = 婢
+format-muted-prefix-font = 2
+format-muted-prefix-foreground = ${color.ALTFOREGROUND}
+format-muted-background = ${color.BACKGROUND}
+format-muted-padding = 1
+
+; Available tokens:
+; %percentage% (default)
+;label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default)
+label-muted = " Mute"
+label-muted-foreground = ${color.ALTFOREGROUND}
+
+; Only applies if <bar-volume> is used
+bar-volume-width = 10
+bar-volume-gradient = false
+
+bar-volume-indicator = 雷
+bar-volume-indicator-font = 2
+bar-volume-indicator-foreground = ${color.YELLOW}
+
+bar-volume-fill = 絛
+bar-volume-fill-font = 3
+bar-volume-foreground-0 = ${color.YELLOW}
+bar-volume-foreground-1 = ${color.YELLOW}
+bar-volume-foreground-2 = ${color.YELLOW}
+bar-volume-foreground-3 = ${color.YELLOW}
+bar-volume-foreground-4 = ${color.YELLOW}
+
+bar-volume-empty = 絛
+bar-volume-empty-font = 3
+bar-volume-empty-foreground = ${color.ALTBACKGROUND}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+ramp-volume-font = 2
+ramp-volume-foreground = ${color.YELLOW}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/temperature]
+type = internal/temperature
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 0.5
+
+; 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/hwmon2/temp1_input
+
+; Threshold temperature to display warning label (in degrees celsius)
+; Default: 80
+warn-temperature = 60
+
+; Whether or not to show units next to the temperature tokens (°C, °F)
+; Default: true
+units = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+format = <ramp> <label>
+
+; Available tags:
+; <label-warn> (default)
+; <ramp>
+format-warn = <ramp> <label-warn>
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label = %temperature-c%
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label-warn = "%temperature-c%"
+label-warn-foreground = ${color.RED}
+
+; Requires the <ramp> tag
+; The icon selection will range from 0 to `warn-temperature`
+; with the current temperature as index.
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.YELLOW}
+;;ramp-foreground = #55
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/keyboard]
+type = internal/xkeyboard
+
+; List of indicators to ignore
+;blacklist-0 = num lock
+blacklist-1 = scroll lock
+
+; Available tags:
+; <label-layout> (default)
+; <label-indicator> (default)
+format = <label-layout> <label-indicator>
+format-prefix = " "
+format-prefix-font = 2
+format-prefix-foreground = ${color.MAGENTA}
+;;format-spacing = 0
+
+; Available tokens:
+; %layout%
+; %name%
+; %number%
+; Default: %layout%
+label-layout = %name%
+;;label-layout-padding = 2
+;;label-layout-background = #bc99ed
+;;label-layout-foreground = #000
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-indicator-on = " %name%"
+;;label-indicator-padding = 2
+label-indicator-on-foreground = ${color.BLUE}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/title]
+type = internal/xwindow
+
+; Available tags:
+; <label> (default)
+format = <label>
+format-prefix = " "
+format-prefix-font = 2
+format-prefix-foreground = ${color.BLUE}
+format-background = ${color.BACKGROUND}
+
+; Available tokens:
+; %title%
+; Default: %title%
+label = %title%
+label-maxlen = 25
+
+; Used instead of label when there is no window title
+; Available tokens:
+; None
+label-empty = Desktop
+;label-empty-foreground = ${color.ALTBLACK}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/openbox]
+type = internal/xworkspaces
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = true
+
+; Create click handler used to focus desktop
+; Default: true
+enable-click = true
+
+; Create scroll handlers used to cycle desktops
+; Default: true
+enable-scroll = true
+
+; icon-[0-9]+ = <desktop-name>;<icon>
+; NOTE: The desktop name needs to match the name configured by the WM
+; You can get a list of the defined desktops using:
+; $ xprop -root _NET_DESKTOP_NAMES
+icon-0 = 1;
+icon-1 = 2;
+icon-2 = 3;
+icon-3 = 4;
+icon-4 = 5;漣
+icon-default = 
+
+; Available tags:
+; <label-monitor>
+; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
+; Default: <label-state>
+format = <label-state>
+format-background = ${color.BACKGROUND}
+format-font = 2
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-monitor = %name%
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-active = %icon%
+label-active-foreground = ${color.RED}
+;;label-active-underline = ${color.ALTBLACK}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-occupied = %icon%
+label-occupied-foreground = ${color.YELLOW}
+;;label-occupied-underline = ${color.ALTBLACK}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-urgent = %icon%
+label-urgent-foreground = ${color.BLUE}
+;;label-urgent-underline = ${color.ALTBLACK}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-empty = %icon%
+label-empty-foreground = ${color.FOREGROUND}
+
+label-active-padding = 1
+label-urgent-padding = 1
+label-occupied-padding = 1
+label-empty-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/menu]
+type = custom/text
+
+content = 
+content-font = 6
+content-background = ${color.ALTBACKGROUND}
+content-foreground = ${color.ACCENT}
+content-padding = 2
+
+click-left = ~/.config/bspwm/scripts/rofi_launcher
+;;click-middle = path_to_script
+click-right = ~/.config/bspwm/scripts/rofi_runner
+
+;;scroll-up = path_to_script
+;;scroll-down = path_to_script
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sysmenu]
+type = custom/text
+
+content = 襤
+content-font = 2
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.RED}
+content-padding = 1
+
+click-left = ~/.config/bspwm/scripts/rofi_powermenu
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/beach/rofi/askpass.rasi b/dot-config/bspwm/themes/beach/rofi/askpass.rasi
new file mode 100644
index 00000000..5a5eac2c
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/askpass.rasi
@@ -0,0 +1,75 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: -58px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "entry", "prompt" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px 15px;
+ border-radius: 0px;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/asroot.rasi b/dot-config/bspwm/themes/beach/rofi/asroot.rasi
new file mode 100644
index 00000000..c3c2c6e4
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/asroot.rasi
@@ -0,0 +1,306 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/confirm.rasi b/dot-config/bspwm/themes/beach/rofi/confirm.rasi
new file mode 100644
index 00000000..b820a2a9
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/confirm.rasi
@@ -0,0 +1,306 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 250px;
+ x-offset: -20px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 1;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/launcher.rasi b/dot-config/bspwm/themes/beach/rofi/launcher.rasi
new file mode 100644
index 00000000..38a9c42d
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/launcher.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 20px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 40px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview", "mode-switcher" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "::";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "search...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: true;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 8px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/music.rasi b/dot-config/bspwm/themes/beach/rofi/music.rasi
new file mode 100644
index 00000000..d8d266fc
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/music.rasi
@@ -0,0 +1,306 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/networkmenu.rasi b/dot-config/bspwm/themes/beach/rofi/networkmenu.rasi
new file mode 100644
index 00000000..319e856a
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/networkmenu.rasi
@@ -0,0 +1,303 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 450px;
+ height: 400px;
+ x-offset: -20px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "直";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: true;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/powermenu.rasi b/dot-config/bspwm/themes/beach/rofi/powermenu.rasi
new file mode 100644
index 00000000..a02e18b6
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/powermenu.rasi
@@ -0,0 +1,306 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 350px;
+ x-offset: -20px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/runner.rasi b/dot-config/bspwm/themes/beach/rofi/runner.rasi
new file mode 100644
index 00000000..3ea41182
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/runner.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 20px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "::";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "search...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 8px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/screenshot.rasi b/dot-config/bspwm/themes/beach/rofi/screenshot.rasi
new file mode 100644
index 00000000..1858e0b3
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/screenshot.rasi
@@ -0,0 +1,306 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 350px;
+ x-offset: -20px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/shared/colors.rasi b/dot-config/bspwm/themes/beach/rofi/shared/colors.rasi
new file mode 100644
index 00000000..f1cd461e
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #141c21;
+ background-alt: #1a242b;
+ foreground: #93a1a1;
+ selected: #5294E2;
+ active: #819400;
+ urgent: #d12f2c;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/beach/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..d2af39fe
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/shared/fonts.rasi
@@ -0,0 +1,7 @@
+/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
+
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/themes.rasi b/dot-config/bspwm/themes/beach/rofi/themes.rasi
new file mode 100644
index 00000000..9d31c128
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/themes.rasi
@@ -0,0 +1,306 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/rofi/windows.rasi b/dot-config/bspwm/themes/beach/rofi/windows.rasi
new file mode 100644
index 00000000..a98a5e4c
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/rofi/windows.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 20px;
+ y-offset: -58px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "::";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 8px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(normal-background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/beach/theme.bash b/dot-config/bspwm/themes/beach/theme.bash
new file mode 100644
index 00000000..bb4c2bb7
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/theme.bash
@@ -0,0 +1,82 @@
+# ------------------------------------------------------------------------------
+# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+#
+# Beach Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#141c21'
+foreground='#93a1a1'
+color0='#263640'
+color1='#d12f2c'
+color2='#819400'
+color3='#b08500'
+color4='#2587cc'
+color5='#696ebf'
+color6='#289c93'
+color7='#bfbaac'
+color8='#4a697d'
+color9='#fa3935'
+color10='#a4bd00'
+color11='#d9a400'
+color12='#2ca2f5'
+color13='#8086e8'
+color14='#33c5ba'
+color15='#fdf6e3'
+
+accent='#5294E2'
+light_value='0.03'
+dark_value='0.30'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='Iosevka Nerd Font:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Numix-Apps'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='beach.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Arc'
+icon_theme='Arc-Circle'
+cursor_theme='Future'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='20x58'
+dunst_origin='bottom-right'
+dunst_font='Iosevka Custom 9'
+dunst_border='2'
+dunst_separator='2'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$accent"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='2'
+bspwm_gap='20'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/beach/wallpaper b/dot-config/bspwm/themes/beach/wallpaper
new file mode 120000
index 00000000..41924bc0
--- /dev/null
+++ b/dot-config/bspwm/themes/beach/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/beach.jpg \ No newline at end of file
diff --git a/dot-config/bspwm/themes/default/apply.sh b/dot-config/bspwm/themes/default/apply.sh
new file mode 100755
index 00000000..ba631403
--- /dev/null
+++ b/dot-config/bspwm/themes/default/apply.sh
@@ -0,0 +1,276 @@
+#!/usr/bin/env bash
+
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
+altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${background}
+ FOREGROUND = ${foreground}
+ ALTBACKGROUND = ${altbackground}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${accent}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${background};
+ background-alt: ${altbackground};
+ foreground: ${foreground};
+ selected: ${accent};
+ active: ${color2};
+ urgent: ${color1};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${accent}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${accent}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${background}"
+ foreground = "${color1}"
+ frame_color = "${color1}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/default/archive.zip b/dot-config/bspwm/themes/default/archive.zip
new file mode 100644
index 00000000..e5383a3a
--- /dev/null
+++ b/dot-config/bspwm/themes/default/archive.zip
Binary files differ
diff --git a/dot-config/bspwm/themes/default/polybar/.module b/dot-config/bspwm/themes/default/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/default/polybar/.module
diff --git a/dot-config/bspwm/themes/default/polybar/colors.ini b/dot-config/bspwm/themes/default/polybar/colors.ini
new file mode 100644
index 00000000..459a1793
--- /dev/null
+++ b/dot-config/bspwm/themes/default/polybar/colors.ini
@@ -0,0 +1,24 @@
+[color]
+
+BACKGROUND = #2E3440
+FOREGROUND = #D8DEE9
+ALTBACKGROUND = #39404f
+ALTFOREGROUND = #768bb2
+ACCENT = #81A1C1
+
+BLACK = #3B4252
+RED = #BF616A
+GREEN = #A3BE8C
+YELLOW = #EBCB8B
+BLUE = #81A1C1
+MAGENTA = #B48EAD
+CYAN = #88C0D0
+WHITE = #E5E9F0
+ALTBLACK = #4C566A
+ALTRED = #BF616A
+ALTGREEN = #A3BE8C
+ALTYELLOW = #EBCB8B
+ALTBLUE = #81A1C1
+ALTMAGENTA = #B48EAD
+ALTCYAN = #8FBCBB
+ALTWHITE = #ECEFF4
diff --git a/dot-config/bspwm/themes/default/polybar/config.ini b/dot-config/bspwm/themes/default/polybar/config.ini
new file mode 100644
index 00000000..1a289f7e
--- /dev/null
+++ b/dot-config/bspwm/themes/default/polybar/config.ini
@@ -0,0 +1,110 @@
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; Global WM Settings
+
+[global/wm]
+margin-bottom = 0
+margin-top = 0
+
+include-file = ../../system.ini
+include-file = ./colors.ini
+include-file = ./modules.ini
+#include-file = ./decor.ini
+
+[bar/main]
+monitor = ${env:MONITOR:}
+monitor-strict = false
+override-redirect = false
+
+bottom = false
+fixed-center = true
+
+width = 100%
+height = 26
+; doesn't work
+;rounded = true
+;rounded-size = 5
+offset-x = 0
+offset-y = 0
+
+background = ${color.BACKGROUND}
+foreground = ${color.FOREGROUND}
+
+radius-top = 0.0
+radius-bottom = 0.0
+
+line-size = 2
+line-color = ${color.ACCENT}
+
+border-size = 4
+border-color = ${color.BACKGROUND}
+
+padding = 1
+module-margin-left = 0
+module-margin-right = 0
+
+
+font-0 = "Iosevka Nerd Font:size=10;3"
+font-1 = "Iosevka Nerd Font:size=12;3"
+font-2 = "google\-mdi:size=12;3"
+#font-2 = "placeholder"
+font-3 = "Iosevka:style=bold:"size=12;3"
+font-4 = "Iosevka:style=bold:size=10;4"
+font-5 = "archcraft:size=12;3"
+
+
+modules-left = mod sep archicon sep workspaces changewallpaper
+modules-center = polywins
+# modules-right = volume sep bna sep network sep battery sep date
+#need improve
+modules-right = cpu-info memory-info gpu-info temp-info sep volume sep network wifi-up wifi-down sep date
+
+separator =
+spacing = 0
+
+dim-value = 1.0
+
+wm-name = bspwm
+locale =
+
+tray-position = right
+tray-detached = false
+tray-maxsize = 16
+tray-transparent = false
+tray-background = ${color.BACKGROUND}
+tray-offset-x = 0
+tray-offset-y = 0
+tray-padding = 0
+tray-scale = 1.0
+
+wm-restack = bspwm
+
+enable-ipc = true
+
+; bspwm
+scroll-up = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+
+[settings]
+throttle-output = 5
+throttle-output-for = 10
+throttle-input-for = 30
+
+screenchange-reload = false
+
+compositing-background = source
+compositing-foreground = over
+compositing-overline = over
+compositing-underline = over
+compositing-border = over
+
+pseudo-transparency = true
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/default/polybar/decor.ini b/dot-config/bspwm/themes/default/polybar/decor.ini
new file mode 100644
index 00000000..ff3b82f3
--- /dev/null
+++ b/dot-config/bspwm/themes/default/polybar/decor.ini
@@ -0,0 +1,43 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; DECOR _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+content = -
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.BACKGROUND}
+
+[module/dot]
+type = custom/text
+content = 
+content-foreground = ${color.ALTBACKGROUND}
+content-padding = 1
+content-font = 4
+
+[module/dot-alt]
+inherit = module/dot
+content-foreground = ${color.ALTFOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/LD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.ALTBACKGROUND}
+
+[module/RD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/default/polybar/launch.sh b/dot-config/bspwm/themes/default/polybar/launch.sh
new file mode 100755
index 00000000..ae47b54c
--- /dev/null
+++ b/dot-config/bspwm/themes/default/polybar/launch.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/default/polybar/modules.ini b/dot-config/bspwm/themes/default/polybar/modules.ini
new file mode 100644
index 00000000..ec12b7b2
--- /dev/null
+++ b/dot-config/bspwm/themes/default/polybar/modules.ini
@@ -0,0 +1,747 @@
+[module/volume]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+;sink = alsa_output.pci-0000_12_00.3.analog-stereo
+sink =
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false Default: true
+use-ui-max = false
+
+; Interval for volume increase/decrease (in percent points)
+; Default: 5
+interval = 1
+
+format-volume = <ramp-volume> <label-volume>
+
+format-muted = <label-muted>
+format-muted-prefix = 婢
+format-muted-prefix-font = 2
+format-muted-prefix-foreground = ${color.RED}
+
+label-volume = %percentage%%
+label-muted = " Mute"
+label-muted-foreground = ${color.ALTFOREGROUND}
+
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+ramp-volume-font = 2
+ramp-volume-foreground = ${color.BLUE}
+
+ramp-headphones-0 = 
+ramp-headphones-1 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-font = 2
+content-prefix-foreground = ${color.RED}
+content-padding = 0
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+card = intel_backlight
+
+format = <ramp> <label>
+
+label = %percentage%%
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.MAGENTA}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+format = <ramp> <label>
+
+label = %percentage%%
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.MAGENTA}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+type = internal/battery
+
+full-at = 99
+
+battery = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+poll-interval = 2
+time-format = %H:%M
+
+format-charging = <animation-charging> <label-charging>
+format-charging-prefix =
+
+format-discharging = <ramp-capacity> <label-discharging>
+
+format-full = <label-full>
+format-full-prefix = " "
+format-full-prefix-font = 2
+format-full-prefix-foreground = ${color.RED}
+
+label-charging = %percentage%%
+label-discharging = %percentage%%
+label-full = %percentage%%
+
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-font = 2
+ramp-capacity-foreground = ${color.YELLOW}
+
+animation-charging-0 = 
+animation-charging-1 = 
+animation-charging-2 = 
+animation-charging-3 = 
+animation-charging-4 = 
+animation-charging-font = 2
+animation-charging-foreground = ${color.GREEN}
+animation-charging-framerate = 750
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/workspaces]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-8 = 9;
+ws-icon-9 = 10;
+ws-icon-default = 
+
+format = <label-state>
+format-font = 2
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.ACCENT}
+label-focused-background = ${color.BACKGROUND}
+label-focused-underline = ${color.ACCENT}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.GREEN}
+label-occupied-background = ${color.BACKGROUND}
+;label-occupied-underline = ${color.GREEN}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.RED}
+label-urgent-background = ${color.BACKGROUND}
+label-urgent-underline = ${color.RED}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = "|"
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = <label-mode>
+format-background = ${color.YELLOW}
+format-foreground = ${color.BACKGROUND}
+format-padding = 1
+
+label-monocle = "Monocle"
+label-tiled = "Tiled"
+
+label-floating = ", Float"
+label-pseudotiled = ", Pseudo"
+label-fullscreen = ", Full"
+
+label-locked = " | Locked"
+label-sticky = " | Sticky"
+label-private = " | Private"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+# doesnt work for some reson ##locale = zh_CN.UTF-8
+
+interval = 1.0
+
+time = %I:%M:%S %p
+time-alt = %a, %d %b %Y
+
+format = <label>
+format-prefix = " "
+format-prefix-font = 3
+format-prefix-foreground = ${color.RED}
+
+label = %time%
+label-font = 4
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mpd]
+type = internal/mpd
+
+;;host = 127.0.0.1
+;;port = 6600
+;;password = mysecretpassword
+
+interval = 2
+
+format-online = <label-song> <icon-prev> <toggle> <icon-next>
+format-online-prefix = " "
+format-online-prefix-foreground = ${color.GREEN}
+
+format-playing = ${self.format-online}
+format-paused = <label-song> <toggle>
+
+format-offline = <label-offline>
+format-offline-prefix = " "
+format-offline-prefix-foreground = ${color.RED}
+label-offline = "Offline"
+
+label-song = "%title% | %artist%"
+label-song-maxlen = 40
+label-song-ellipsis = true
+
+icon-play = 
+icon-play-font = 2
+icon-play-foreground = ${color.GREEN}
+icon-pause = 
+icon-pause-font = 2
+icon-pause-foreground = ${color.YELLOW}
+icon-stop = 
+icon-stop-foreground = ${color.RED}
+icon-prev = 玲
+icon-prev-font = 2
+icon-prev-foreground = ${color.CYAN}
+icon-next = 怜
+icon-next-font = 2
+icon-next-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; If you use both a wired and a wireless network, add both modules in config.
+[module/ethernet]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <label-connected>
+format-connected-prefix = " "
+format-connected-prefix-font = 3
+format-connected-prefix-foreground = ${color.CYAN}
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = " "
+format-disconnected-prefix-font = 3
+format-disconnected-prefix-foreground = ${color.RED}
+format-disconnected-foreground = ${color.ALTFOREGROUND}
+
+label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}"
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+
+;;ping-interval = 3
+;;udspeed-minwidth = 5
+
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <ramp-signal> <label-connected>
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = " "
+format-disconnected-prefix-font = 3
+format-disconnected-prefix-foreground = ${color.RED}
+format-disconnected-foreground = ${color.ALTFOREGROUND}
+
+label-connected = "%{A1:nmd &:}%essid%%{A}"
+label-disconnected = "%{A1:nmd &:}Disconnected%{A}"
+
+
+ramp-signal-0 = 
+ramp-signal-1 = 
+ramp-signal-2 = 
+ramp-signal-3 = 
+ramp-signal-4 = 
+ramp-signal-font = 3
+ramp-signal-foreground = ${color.CYAN}
+
+[module/speedtest]
+type = custom/script
+exec-if = hash speedtest
+exec = "~/.config/bspwm/scripts/polybar-speedtest"
+interval = 90
+
+[module/wifi-up]
+type = internal/network
+
+interface = wlan0
+
+label-connected = "%upspeed:7%"
+
+format-connected = <label-connected>
+
+format-connected-prefix = " "
+
+format-connected-prefix-foreground = #cb410b
+
+#format-connected-foreground = ${colors.foreground}
+
+#format-connected-background = ${colors.background}
+
+format-connected-underline = #006600
+
+[module/wifi-down]
+type = internal/network
+
+interface = wlan0
+
+label-connected = "%downspeed:7%"
+
+format-connected = <label-connected>
+
+format-connected-prefix = " "
+
+format-connected-prefix-foreground = #7c0a02
+
+#format-connected-foreground = ${colors.foreground}
+
+#format-connected-background = ${colors.background}
+
+format-connected-underline = #006600
+
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+content = ◆
+
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.ALTBACKGROUND}
+content-padding = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/polywins]
+type = custom/script
+exec = ~/.config/bspwm/scripts/polywins.sh 2>/dev/null
+label-padding = 1
+tail = true
+interval = 0
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+#[module/archicon]
+#type = custom/text
+#content = ""
+#click-left = ~/.config/bspwm/scripts/rofi_launcher
+[module/archicon]
+type = custom/text
+
+content = 
+content-font = 6
+content-foreground = ${color.BLUE}
+content-padding = 0
+
+click-left = ~/.config/bspwm/scripts/rofi_launcher
+click-right = ~/.config/bspwm/scripts/rofi_runner
+
+[module/changewallpaper]
+type = custom/text
+content-foreground = ${color.CYAN}
+content-font = 6
+
+content = " "
+#click-left = /usr/bin/feh --bg-fill '/home/system/Pictures/wallpapers/' --randomize
+#click-left = notify-send "Changing wallpaper, Please wait..." & killall backgroundblur & exec $HOME/scripts/runbgblur.sh &
+click-left = killall runtransani.sh; exec $HOME/scripts/runtransani.sh &
+
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/used-memory]
+type = custom/script
+
+exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3
+
+tail = true
+interval = 3
+
+format = <label>
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+format-prefix = 
+format-prefix-font = 2
+format-prefix-foreground = ${color.CYAN}
+
+label = " %output% MB"
+
+click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" &
+
+
+
+[module/memory-info]
+type = internal/memory
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1
+
+; Default: 90
+; New in version 3.6.0
+warn-percentage = 95
+; 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 = <label> <bar-used>
+
+; Format used when RAM reaches warn-percentage
+; If not defined, format is used instead.
+; Available tags:
+; <label-warn>
+; <bar-used>
+; <bar-free>
+; <ramp-used>
+; <ramp-free>
+; <bar-swap-used>
+; <bar-swap-free>
+; <ramp-swap-used>
+; <ramp-swap-free>
+; New in version 3.6.0
+;format-warn = <label-warn>
+
+; Available tokens:
+; %percentage_used% (default)
+; %percentage_free%
+; %used% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %free% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %total% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %gb_used%
+; %gb_free%
+; %gb_total%
+; %mb_used%
+; %mb_free%
+; %mb_total%
+; %percentage_swap_used%
+; %percentage_swap_free%
+; %swap_total% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %swap_free% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %swap_used% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %gb_swap_total%
+; %gb_swap_free%
+; %gb_swap_used%
+; %mb_swap_total%
+; %mb_swap_free%
+; %mb_swap_used%
+label =  %percentage_used%%
+
+; Available tokens:
+; %percentage_used% (default)
+; %percentage_free%
+; %used% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %free% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %total% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %gb_used%
+; %gb_free%
+; %gb_total%
+; %mb_used%
+; %mb_free%
+; %mb_total%
+; %percentage_swap_used%
+; %percentage_swap_free%
+; %swap_total% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %swap_free% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %swap_used% (Switches between KiB, MiB, and GiB) (New in version 3.6.0)
+; %gb_swap_total%
+; %gb_swap_free%
+; %gb_swap_used%
+; %mb_swap_total%
+; %mb_swap_free%
+; %mb_swap_used%
+; New in version 3.6.0
+label-warn = RAM %gb_used%/%gb_free%
+
+; Only applies if <bar-used> is used
+bar-used-indicator =
+bar-used-width = 50
+bar-used-foreground-0 = #55aa55
+bar-used-foreground-1 = #557755
+bar-used-foreground-2 = #f5a70a
+bar-used-foreground-3 = #ff5555
+bar-used-fill = ▐
+bar-used-empty = ▐
+bar-used-empty-foreground = #444444
+
+; Only applies if <ramp-used> is used
+ramp-used-0 = ▁
+ramp-used-1 = ▂
+ramp-used-2 = ▃
+ramp-used-3 = ▄
+ramp-used-4 = ▅
+ramp-used-5 = ▆
+ramp-used-6 = ▇
+ramp-used-7 = █
+
+; Only applies if <ramp-free> is used
+ramp-free-0 = ▁
+ramp-free-1 = ▂
+ramp-free-2 = ▃
+ramp-free-3 = ▄
+ramp-free-4 = ▅
+ramp-free-5 = ▆
+ramp-free-6 = ▇
+ramp-free-7 = █
+
+[module/cpu-info-script]
+type = custom/script
+exec = ~/.config/bspwm/scripts/cpu.sh
+click-left = ~/.config/bspwm/scripts/cpu.sh --popup
+#format-underline = ${colors.primary}
+
+[module/cpu-info]
+type = internal/cpu
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1
+
+; Default: 80
+; New in version 3.6.0
+warn-percentage = 95
+; Available tags:
+; <label> (default)
+; <bar-load>
+; <ramp-load>
+; <ramp-coreload>
+format = <label>
+
+; Format used when average CPU load (same as %percentage%) reaches warn-percentage
+; If not defined, format is used instead.
+; Available tags:
+; <label-warn>
+; <bar-load>
+; <ramp-load>
+; <ramp-coreload>
+; New in version 3.6.0
+; format-warn = <label-warn>
+
+; 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%% "
+
+; 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
+; New in version 3.6.0
+label-warn = " %percentage%% "
+
+; Spacing (number of spaces, pixels, points) between individual per-core ramps
+#ramp-coreload-spacing = 1
+#ramp-coreload-0 = ▁
+#ramp-coreload-1 = ▂
+#ramp-coreload-2 = ▃
+#ramp-coreload-3 = ▄
+#ramp-coreload-4 = ▅
+#ramp-coreload-5 = ▆
+#ramp-coreload-6 = ▇
+#ramp-coreload-7 = █
+
+[module/temp-info-script]
+type = custom/script
+exec = ~/.config/bspwm/scripts/temp.sh
+click-left = ~/.config/bspwm/scripts/temp.sh --popup
+#format-underline = ${colors.primary}
+
+[module/temp-info]
+type = internal/temperature
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1
+
+; 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/temp1_input
+
+; Base temperature for where to start the ramp (in degrees celsius)
+; Default: 0
+base-temperature = 20
+
+; Threshold temperature to display warning label (in degrees celsius)
+; Default: 80
+warn-temperature = 75
+; Whether or not to show units next to the temperature tokens (°C, °F)
+; Default: true
+units = false
+
+; Available tags:
+; <label> (default)
+; <ramp>
+format = <label>
+
+; Available tags:
+; <label-warn> (default)
+; <ramp>
+format-warn = <label>
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label = "  %temperature-c%°C"
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label-warn = "  %temperature-c%°C"
+label-warn-foreground = #f00
+
+; Requires the <ramp> tag
+; The icon selection will range from `base-temperature` to `warn-temperature`,
+; temperatures at and above `warn-temperature` will use the last icon
+; and temperatures at and below `base-temperature` will use `ramp-0`.
+; All other icons are distributed evenly between the two temperatures.
+#ramp-0 = A
+#ramp-1 = B
+#ramp-2 = C
+#ramp-foreground = #55
+
+[module/gpu-info]
+type = custom/script
+interval = 1
+tail = true
+exec-if = nvidia-smi
+exec = echo "  $(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits)%"
+
+[module/musics]
+type = custom/script
+exec = $HOME/.config/bspwm/scripts/NekoMC --current-song
+tail = true
+click-left = $HOME/.config/bspwm/scripts/NekoMC --toggle
+click-right = $HOME/.config/bspwm/scripts/NekoMC --next
+
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/default/rofi/askpass.rasi b/dot-config/bspwm/themes/default/rofi/askpass.rasi
new file mode 100644
index 00000000..515a39ae
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/askpass.rasi
@@ -0,0 +1,77 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: 0px;
+ padding: 20px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 0px;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/asroot.rasi b/dot-config/bspwm/themes/default/rofi/asroot.rasi
new file mode 100644
index 00000000..48ad7c66
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/asroot.rasi
@@ -0,0 +1,151 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 0px;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 5;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 22px 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/default/rofi/clipboard.rasi b/dot-config/bspwm/themes/default/rofi/clipboard.rasi
new file mode 100644
index 00000000..0ee0e465
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/clipboard.rasi
@@ -0,0 +1,300 @@
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 0px 8px 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
+
diff --git a/dot-config/bspwm/themes/default/rofi/configs.rasi b/dot-config/bspwm/themes/default/rofi/configs.rasi
new file mode 100644
index 00000000..423772f6
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/configs.rasi
@@ -0,0 +1,286 @@
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 0px 8px 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/confirm.rasi b/dot-config/bspwm/themes/default/rofi/confirm.rasi
new file mode 100644
index 00000000..cd2e1148
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/confirm.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 300px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 5px 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/default/rofi/custom_command.rasi b/dot-config/bspwm/themes/default/rofi/custom_command.rasi
new file mode 100644
index 00000000..74bcbd94
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/custom_command.rasi
@@ -0,0 +1,77 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: 0px;
+ padding: 20px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "$";
+ padding: 10px 13px;
+ border-radius: 0px;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Command";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/emoji.rasi b/dot-config/bspwm/themes/default/rofi/emoji.rasi
new file mode 100644
index 00000000..74ab654e
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/emoji.rasi
@@ -0,0 +1,300 @@
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window,emoji";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 0px 8px 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "😀";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
+
diff --git a/dot-config/bspwm/themes/default/rofi/filebrowser.rasi b/dot-config/bspwm/themes/default/rofi/filebrowser.rasi
new file mode 100644
index 00000000..40d74de0
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/filebrowser.rasi
@@ -0,0 +1,268 @@
+/*****----- Configuration -----*****/
+configuration {
+ modi: "file-browser-extended";
+ show-icons: true;
+ display-filebrowser-extended: " Files";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview"];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 0px 8px 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 7;
+ cycle: true;
+ dynamic: true;
+ scrollbar: true;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/launcher.rasi b/dot-config/bspwm/themes/default/rofi/launcher.rasi
new file mode 100644
index 00000000..52bfed13
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/launcher.rasi
@@ -0,0 +1,298 @@
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,file-browser-extended,window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-file-browser-extended: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview", "mode-switcher" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 0px 8px 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 7;
+ cycle: true;
+ dynamic: true;
+ scrollbar: true;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/music.rasi b/dot-config/bspwm/themes/default/rofi/music.rasi
new file mode 100644
index 00000000..cf050b7a
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/music.rasi
@@ -0,0 +1,151 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 6;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 22px 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/default/rofi/networkmenu.rasi b/dot-config/bspwm/themes/default/rofi/networkmenu.rasi
new file mode 100644
index 00000000..cfca6d63
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/networkmenu.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ height: 475px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 8px 12px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 8px 11.5px;
+ border-radius: 0px;
+ expand: false;
+ str: "直";
+ background-color: @active;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 8px 12px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: true;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 5px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/powermenu.rasi b/dot-config/bspwm/themes/default/rofi/powermenu.rasi
new file mode 100644
index 00000000..1a2cb0ec
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/powermenu.rasi
@@ -0,0 +1,151 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 700px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 7;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 22px 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/default/rofi/runner.rasi b/dot-config/bspwm/themes/default/rofi/runner.rasi
new file mode 100644
index 00000000..08de625f
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/runner.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 0px 8px 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Run...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/screenshot.rasi b/dot-config/bspwm/themes/default/rofi/screenshot.rasi
new file mode 100644
index 00000000..f5f969de
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/screenshot.rasi
@@ -0,0 +1,151 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 0px;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 5;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 22px 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/default/rofi/shared/colors.rasi b/dot-config/bspwm/themes/default/rofi/shared/colors.rasi
new file mode 100644
index 00000000..9ba701ac
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #2E3440;
+ background-alt: #39404f;
+ foreground: #D8DEE9;
+ selected: #81A1C1;
+ active: #A3BE8C;
+ urgent: #BF616A;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/default/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..3928237f
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/shared/fonts.rasi
@@ -0,0 +1,5 @@
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/default/rofi/themes.rasi b/dot-config/bspwm/themes/default/rofi/themes.rasi
new file mode 100644
index 00000000..6da2f21c
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/themes.rasi
@@ -0,0 +1,305 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: false;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 8px 12px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 8px 12px;
+ border-radius: 0px;
+ expand: false;
+ str: "";
+ background-color: @active;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Run...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/wallpaper.rasi b/dot-config/bspwm/themes/default/rofi/wallpaper.rasi
new file mode 100644
index 00000000..99026dd8
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/wallpaper.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 0px 8px 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/default/rofi/windows.rasi b/dot-config/bspwm/themes/default/rofi/windows.rasi
new file mode 100644
index 00000000..99026dd8
--- /dev/null
+++ b/dot-config/bspwm/themes/default/rofi/windows.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 0px 8px 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/default/theme.bash b/dot-config/bspwm/themes/default/theme.bash
new file mode 100644
index 00000000..0d91b055
--- /dev/null
+++ b/dot-config/bspwm/themes/default/theme.bash
@@ -0,0 +1,80 @@
+# ------------------------------------------------------------------------------
+# Default Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#2E3440'
+foreground='#D8DEE9'
+color0='#3B4252'
+color1='#BF616A'
+color2='#A3BE8C'
+color3='#EBCB8B'
+color4='#81A1C1'
+color5='#B48EAD'
+color6='#88C0D0'
+color7='#E5E9F0'
+color8='#4C566A'
+color9='#BF616A'
+color10='#A3BE8C'
+color11='#EBCB8B'
+color12='#81A1C1'
+color13='#B48EAD'
+color14='#8FBCBB'
+color15='#ECEFF4'
+
+accent='#81A1C1'
+light_value='0.05'
+dark_value='0.30'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='Iosevka Nerd Font:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Arc-Circle'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='arc.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Arc-Dark'
+icon_theme='Arc-Circle'
+cursor_theme='Qogirr'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='10x42'
+dunst_origin='top-right'
+dunst_font='Iosevka Custom 9'
+dunst_border='1'
+dunst_separator='1'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$accent"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='1'
+bspwm_gap='10'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/default/wallpaper b/dot-config/bspwm/themes/default/wallpaper
new file mode 120000
index 00000000..aad53066
--- /dev/null
+++ b/dot-config/bspwm/themes/default/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/nord.jpg \ No newline at end of file
diff --git a/dot-config/bspwm/themes/forest/apply.sh b/dot-config/bspwm/themes/forest/apply.sh
new file mode 100755
index 00000000..d51dcf30
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/apply.sh
@@ -0,0 +1,278 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
+altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${background}
+ FOREGROUND = ${foreground}
+ ALTBACKGROUND = ${altbackground}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${accent}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${background};
+ background-alt: ${altbackground};
+ foreground: ${foreground};
+ selected: ${accent};
+ active: ${color2};
+ urgent: ${color1};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${background}"
+ foreground = "${color1}"
+ frame_color = "${color1}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/forest/polybar/.module b/dot-config/bspwm/themes/forest/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/polybar/.module
diff --git a/dot-config/bspwm/themes/forest/polybar/bars.ini b/dot-config/bspwm/themes/forest/polybar/bars.ini
new file mode 100644
index 00000000..cf0439a7
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/polybar/bars.ini
@@ -0,0 +1,645 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/volume-bar]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; Interval for volume increase/decrease (in percent points)
+; Default: 5
+interval = 5
+
+; Available tags:
+; <label-volume> (default)
+; <ramp-volume>
+; <bar-volume>
+format-volume = <label-volume> <bar-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+
+; Available tokens:
+; %percentage% (default)
+label-volume = 墳
+label-volume-foreground = ${color.FOREGROUND}
+
+; Available tokens:
+; %percentage% (default
+format-muted-prefix = 婢
+label-muted = " MUTE"
+label-muted-foreground = ${color.RED}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+
+; Only applies if <bar-volume> is used
+bar-volume-width = 10
+bar-volume-gradient = false
+
+bar-volume-indicator =
+bar-volume-indicator-foreground = ${color.ACCENT}
+bar-volume-indicator-font = 2
+
+bar-volume-fill = 
+bar-volume-foreground-0 = ${color.GREEN}
+bar-volume-foreground-1 = ${color.GREEN}
+bar-volume-foreground-2 = ${color.YELLOW}
+bar-volume-foreground-3 = ${color.RED}
+bar-volume-fill-font = 2
+
+bar-volume-empty = 
+bar-volume-empty-foreground = ${color.ALTBACKGROUND}
+bar-volume-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna-bar]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight-bar]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_backlight
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <label> <bar>
+
+; Available tokens:
+; %percentage% (default)
+label = 
+label-foreground = ${color.FOREGROUND}
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+
+;; Other Icons
+;
+
+; Only applies if <bar> is used
+bar-width = 10
+bar-gradient = false
+
+bar-indicator =
+bar-indicator-foreground = ${color.ACCENT}
+bar-indicator-font = 2
+
+bar-fill = 
+bar-foreground-0 = ${color.GREEN}
+bar-foreground-1 = ${color.GREEN}
+bar-foreground-2 = ${color.GREEN}
+bar-foreground-3 = ${color.GREEN}
+bar-foreground-4 = ${color.GREEN}
+bar-foreground-5 = ${color.YELLOW}
+bar-foreground-6 = ${color.YELLOW}
+bar-foreground-7 = ${color.YELLOW}
+bar-foreground-8 = ${color.RED}
+bar-foreground-9 = ${color.RED}
+bar-fill-font = 2
+
+bar-empty = 
+bar-empty-foreground = ${color.ALTBACKGROUND}
+bar-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness-bar]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <label> <bar>
+
+; Available tokens:
+; %percentage% (default)
+label = 
+label-foreground = ${color.FOREGROUND}
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+
+;; Other Icons
+;
+
+; Only applies if <bar> is used
+bar-width = 10
+bar-gradient = false
+
+bar-indicator =
+bar-indicator-foreground = ${color.ACCENT}
+bar-indicator-font = 2
+
+bar-fill = 
+bar-foreground-0 = ${color.GREEN}
+bar-foreground-1 = ${color.GREEN}
+bar-foreground-2 = ${color.GREEN}
+bar-foreground-3 = ${color.GREEN}
+bar-foreground-4 = ${color.GREEN}
+bar-foreground-5 = ${color.YELLOW}
+bar-foreground-6 = ${color.YELLOW}
+bar-foreground-7 = ${color.YELLOW}
+bar-foreground-8 = ${color.RED}
+bar-foreground-9 = ${color.RED}
+bar-fill-font = 2
+
+bar-empty = 
+bar-empty-foreground = ${color.ALTBACKGROUND}
+bar-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = ${system.battery}
+adapter = ${system.adapter}
+
+; 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 = " "
+
+; Available tags:
+; <label-discharging> (default)
+; <bar-capacity>
+; <ramp-capacity>
+; <animation-discharging>
+format-discharging = <bar-capacity>
+format-discharging-prefix = " "
+
+; Available tags:
+; <label-full> (default)
+; <bar-capacity>
+; <ramp-capacity>
+format-full = <bar-capacity> <label-full>
+format-full-prefix = " "
+
+; 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 = %percentage%%
+
+; Only applies if <bar-capacity> is used
+bar-capacity-width = 10
+bar-capacity-gradient = false
+
+bar-capacity-indicator =
+bar-capacity-indicator-foreground = ${color.ACCENT}
+bar-capacity-indicator-font = 2
+
+bar-capacity-fill = 
+bar-capacity-foreground-0 = ${color.RED}
+bar-capacity-foreground-1 = ${color.RED}
+bar-capacity-foreground-2 = ${color.RED}
+bar-capacity-foreground-3 = ${color.YELLOW}
+bar-capacity-foreground-4 = ${color.YELLOW}
+bar-capacity-foreground-5 = ${color.YELLOW}
+bar-capacity-foreground-6 = ${color.YELLOW}
+bar-capacity-foreground-7 = ${color.GREEN}
+bar-capacity-foreground-8 = ${color.GREEN}
+bar-capacity-fill-font = 2
+
+bar-capacity-empty = 
+bar-capacity-empty-foreground = ${color.ALTBACKGROUND}
+bar-capacity-empty-font = 2
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-5 = 
+ramp-capacity-6 = 
+ramp-capacity-7 = 
+ramp-capacity-8 = 
+ramp-capacity-9 = 
+
+; Only applies if <animation-charging> is used
+animation-charging-0 = 
+animation-charging-1 = 
+animation-charging-2 = 
+animation-charging-3 = 
+animation-charging-4 = 
+animation-charging-5 = 
+animation-charging-6 = 
+animation-charging-7 = 
+animation-charging-8 = 
+
+; 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 = 
+;;animation-discharging-5 = 
+;;animation-discharging-6 = 
+;;animation-discharging-7 = 
+;;animation-discharging-8 = 
+
+; Framerate in milliseconds
+;animation-discharging-framerate = 500
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = " "
+
+; 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-width = 10
+bar-load-gradient = false
+
+bar-load-indicator =
+bar-load-indicator-foreground = ${color.ACCENT}
+bar-load-indicator-font = 2
+
+bar-load-fill = 
+bar-load-foreground-0 = ${color.GREEN}
+bar-load-foreground-1 = ${color.GREEN}
+bar-load-foreground-2 = ${color.GREEN}
+bar-load-foreground-3 = ${color.YELLOW}
+bar-load-foreground-4 = ${color.YELLOW}
+bar-load-foreground-5 = ${color.YELLOW}
+bar-load-foreground-6 = ${color.RED}
+bar-load-foreground-7 = ${color.RED}
+bar-load-foreground-8 = ${color.RED}
+bar-load-fill-font = 2
+
+bar-load-empty = 
+bar-load-empty-foreground = ${color.ALTBACKGROUND}
+bar-load-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 10
+
+; 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 = " "
+
+; Available tags:
+; <label-unmounted> (default)
+;;format-unmounted = <label-unmounted>
+;;format-unmounted-prefix = 
+
+; 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-width = 10
+bar-used-gradient = false
+
+bar-used-indicator =
+bar-used-indicator-foreground = ${color.ACCENT}
+bar-used-indicator-font = 2
+
+bar-used-fill = 
+bar-used-foreground-0 = ${color.GREEN}
+bar-used-foreground-1 = ${color.GREEN}
+bar-used-foreground-2 = ${color.GREEN}
+bar-used-foreground-3 = ${color.GREEN}
+bar-used-foreground-4 = ${color.GREEN}
+bar-used-foreground-5 = ${color.YELLOW}
+bar-used-foreground-6 = ${color.YELLOW}
+bar-used-foreground-7 = ${color.RED}
+bar-used-foreground-8 = ${color.RED}
+bar-used-fill-font = 2
+
+bar-used-empty = 
+bar-used-empty-foreground = ${color.ALTBACKGROUND}
+bar-used-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = " "
+
+; 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-width = 10
+bar-used-gradient = false
+
+bar-used-indicator =
+bar-used-indicator-foreground = ${color.ACCENT}
+bar-used-indicator-font = 2
+
+bar-used-fill = 
+bar-used-foreground-0 = ${color.GREEN}
+bar-used-foreground-1 = ${color.GREEN}
+bar-used-foreground-2 = ${color.GREEN}
+bar-used-foreground-3 = ${color.YELLOW}
+bar-used-foreground-4 = ${color.YELLOW}
+bar-used-foreground-5 = ${color.YELLOW}
+bar-used-foreground-6 = ${color.RED}
+bar-used-foreground-7 = ${color.RED}
+bar-used-foreground-8 = ${color.RED}
+bar-used-fill-font = 2
+
+bar-used-empty = 
+bar-used-empty-foreground = ${color.ALTBACKGROUND}
+bar-used-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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-playing = ${self.format-online}
+;format-paused = ${self.format-online}
+;format-stopped = ${self.format-online}
+
+; Available tags:
+; <label-offline>
+;format-offline = <label-offline>
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = "mpd is offline"
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-pause = 
+icon-stop = 
+icon-prev = 
+icon-next = 
+icon-seekb = ⏪
+icon-seekf = ⏩
+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 = #ff
+;;toggle-off-foreground = #55
+
+; Only applies if <bar-progress> is used
+bar-progress-width = 10
+bar-progress-gradient = true
+
+bar-progress-indicator =
+bar-progress-indicator-foreground = ${color.ACCENT}
+bar-progress-indicator-font = 2
+
+bar-progress-fill = 
+bar-progress-foreground-0 = ${color.GREEN}
+bar-progress-foreground-1 = ${color.GREEN}
+bar-progress-foreground-2 = ${color.GREEN}
+bar-progress-foreground-3 = ${color.YELLOW}
+bar-progress-foreground-4 = ${color.YELLOW}
+bar-progress-foreground-5 = ${color.YELLOW}
+bar-progress-foreground-6 = ${color.RED}
+bar-progress-foreground-7 = ${color.RED}
+bar-progress-foreground-8 = ${color.RED}
+bar-progress-fill-font = 2
+
+bar-progress-empty = 
+bar-progress-empty-foreground = ${color.ALTBACKGROUND}
+bar-progress-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/forest/polybar/colors.ini b/dot-config/bspwm/themes/forest/polybar/colors.ini
new file mode 100644
index 00000000..c5c2fbdd
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/polybar/colors.ini
@@ -0,0 +1,24 @@
+[color]
+
+BACKGROUND = #222d32
+FOREGROUND = #c4c7c5
+ALTBACKGROUND = #2c3b41
+ALTFOREGROUND = #767c78
+ACCENT = #00BCD4
+
+BLACK = #263640
+RED = #ec7875
+GREEN = #61c766
+YELLOW = #fdd835
+BLUE = #42a5f5
+MAGENTA = #ba68c8
+CYAN = #4dd0e1
+WHITE = #bfbaac
+ALTBLACK = #4a697d
+ALTRED = #fb8784
+ALTGREEN = #70d675
+ALTYELLOW = #ffe744
+ALTBLUE = #51b4ff
+ALTMAGENTA = #c979d7
+ALTCYAN = #5cdff0
+ALTWHITE = #fdf6e3
diff --git a/dot-config/bspwm/themes/forest/polybar/config.ini b/dot-config/bspwm/themes/forest/polybar/config.ini
new file mode 100644
index 00000000..7d58dd31
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/polybar/config.ini
@@ -0,0 +1,319 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; 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 = ../../system.ini
+include-file = ./colors.ini
+include-file = ./modules.ini
+include-file = ./bars.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 = ${env: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.ACCENT}
+
+; 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-color = ${color.ACCENT}
+
+; 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 = "Iosevka Nerd Font:size=10;3"
+; 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 = "Iosevka Nerd Font:size=10;3"
+font-1 = "waffle:size=12;2"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbrightness
+; modules-right = ipc clock
+
+;; Available modules
+;;
+;alsa brightness battery
+;bspwm cpu date
+;filesystem github i3
+;subscriber demo memory
+;menu-apps mpd wired-network
+;wireless-network network pulseaudio
+;name_you_want temperature my-text-label
+;brightness keyboard title workspaces
+;;
+;; User modules
+;checknetwork updates window_switch launcher powermenu sysmenu menu
+;;
+;; Bars
+;cpu_bar memory_bar filesystem_bar mpd_bar
+;volume brightness battery_bar
+
+modules-left = mod bspwm sep2 cpu used-memory filesystem
+modules-center = mpd sep date
+modules-right = battery network sep volume-bar bna-bar
+
+; The separator will be inserted between the output of each module
+separator =
+
+; This value is used to add extra spacing between elements
+; @deprecated: This parameter will be removed in an upcoming version
+spacing = 0
+
+; 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 = bspwm
+
+; 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 = right
+
+; If true, the bar will not shift its
+; contents when the tray changes
+tray-detached = false
+
+; Tray icon max size
+tray-maxsize = 16
+
+; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
+; Enable pseudo transparency
+; Will automatically be enabled if a fully transparent
+; background color is defined using `tray-background`
+; tray-transparent = false
+
+; 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.ALTBACKGROUND}
+
+; 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 = 2
+
+; 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 = bspwm
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+; dpi =
+
+; 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 = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+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/dot-config/bspwm/themes/forest/polybar/launch.sh b/dot-config/bspwm/themes/forest/polybar/launch.sh
new file mode 100755
index 00000000..ae47b54c
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/polybar/launch.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/forest/polybar/modules.ini b/dot-config/bspwm/themes/forest/polybar/modules.ini
new file mode 100644
index 00000000..28d61e05
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/polybar/modules.ini
@@ -0,0 +1,1095 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bspwm]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-default = 
+
+format = <label-state>
+format-font = 1
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.RED}
+label-focused-underline = ${color.RED}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.ACCENT}
+;label-occupied-underline = ${color.ACCENT}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.GREEN}
+label-urgent-underline = ${color.GREEN}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = ""
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = [<label-mode>]
+format-foreground = ${color.YELLOW}
+format-padding = 0
+
+label-monocle = "Monocle"
+label-tiled = "Tiled"
+
+label-floating = ", Float"
+label-pseudotiled = ", Pseudo"
+label-fullscreen = ", Full"
+
+label-locked = " | Locked"
+label-sticky = " | Sticky"
+label-private = " | Private"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/alsa]
+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> <label-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+;format-muted = <label-muted>
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+format-muted-prefix = 婢
+format-muted-prefix-foreground = ${color.RED}
+label-muted = " Mute"
+label-muted-foreground = ${color.ALTFOREGROUND}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+ramp-volume-foreground = ${color.RED}
+
+; 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 = 
+ramp-headphones-1 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-foreground = ${color.RED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_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 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-foreground = ${color.CYAN}
+
+;; Other Icons
+;
+
+; Only applies if <bar> is used
+;;bar-width = 10
+;;bar-indicator = |
+;;bar-fill = ─
+;;bar-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; 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 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-foreground = ${color.CYAN}
+
+;; Other Icons
+;
+
+; Only applies if <bar> is used
+;;bar-width = 10
+;;bar-indicator = |
+;;bar-fill = ─
+;;bar-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = <animation-charging> <label-charging>
+format-charging-prefix =
+; 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 = <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 = %percentage%%
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-foreground = ${color.YELLOW}
+
+; 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 = 
+animation-charging-foreground = ${color.GREEN}
+
+; 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 = 
+;;animation-discharging-5 = 
+;;animation-discharging-6 = 
+;;animation-discharging-7 = 
+;;animation-discharging-8 = 
+
+; Framerate in milliseconds
+;animation-discharging-framerate = 500
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/cpu]
+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 = <label>
+format-prefix = 
+format-prefix-foreground = ${color.YELLOW}
+
+; 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%%"
+
+; Spacing between individual per-core ramps
+;;ramp-coreload-spacing = 1
+;;ramp-coreload-0 = 
+;;ramp-coreload-1 = 
+;;ramp-coreload-2 = 
+;;ramp-coreload-3 = 
+;;ramp-coreload-4 = 
+
+ramp-load-0 = 
+ramp-load-1 = 
+ramp-load-2 = 
+ramp-load-3 = 
+ramp-load-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+; Seconds to sleep between updates
+interval = 1.0
+
+; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
+; NOTE: if you want to use syntax tags here you need to use %%{...}
+date = %A, %d %B
+
+; Optional time format
+time = at %I:%M %p
+
+; if `date-alt` or `time-alt` is defined, clicking
+; the module will toggle between formats
+date-alt = It's %A, %d %B %Y
+time-alt = at %k:%M:%S
+
+; Available tags:
+; <label> (default)
+format = <label>
+format-prefix = " "
+format-prefix-foreground = ${color.RED}
+
+; Available tokens:
+; %date%
+; %time%
+; Default: %date%
+label = %date% %time%
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/filesystem]
+type = internal/fs
+
+; Mountpoints to display
+mount-0 = /
+;;mount-1 = /home
+;;mount-2 = /var
+
+; Seconds to sleep between updates
+; Default: 30
+interval = 10
+
+; Display fixed precision values
+; Default: false
+fixed-values = true
+
+; Spacing between entries
+; Default: 2
+;;spacing = 4
+
+; Available tags:
+; <label-mounted> (default)
+; <bar-free>
+; <bar-used>
+; <ramp-capacity>
+format-mounted = <label-mounted>
+format-mounted-prefix = 
+format-mounted-prefix-foreground = ${color.MAGENTA}
+
+; Available tags:
+; <label-unmounted> (default)
+format-unmounted = <label-unmounted>
+format-unmounted-prefix = 
+format-unmounted-prefix-foreground = ${color.MAGENTA}
+
+; Available tokens:
+; %mountpoint%
+; %type%
+; %fsname%
+; %percentage_free%
+; %percentage_used%
+; %total%
+; %free%
+; %used%
+; Default: %mountpoint% %percentage_free%%
+label-mounted = " %free%"
+
+; Available tokens:
+; %mountpoint%
+; Default: %mountpoint% is not mounted
+label-unmounted = %mountpoint%: not mounted
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/memory]
+type = internal/memory
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 3
+
+; 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 = <label>
+format-prefix = 
+format-prefix-foreground = ${color.BLUE}
+
+; 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-indicator =
+;;bar-used-width = 50
+;;bar-used-foreground-0 = #55aa55
+;;bar-used-foreground-1 = #557755
+;;bar-used-foreground-2 = #f5a70a
+;;bar-used-foreground-3 = #ff5555
+;;bar-used-fill = ▐
+;;bar-used-empty = ▐
+;;bar-used-empty-foreground = #444444
+
+; Only applies if <ramp-used> is used
+;;ramp-used-0 = 
+;;ramp-used-1 = 
+;;ramp-used-2 = 
+;;ramp-used-3 = 
+;;ramp-used-4 = 
+
+; Only applies if <ramp-free> is used
+;;ramp-free-0 = 
+;;ramp-free-1 = 
+;;ramp-free-2 = 
+;;ramp-free-3 = 
+;;ramp-free-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/used-memory]
+type = custom/script
+
+exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3
+
+tail = true
+interval = 5
+
+format = <label>
+format-prefix = 
+format-prefix-foreground = ${color.BLUE}
+
+label = " %output% MB"
+
+click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" &
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 127.0.0.1
+;;port = 6600
+;;password = mysecretpassword
+
+; Seconds to sleep between progressbar/song timer sync
+; Default: 1
+interval = 2
+
+; 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> <icon-prev> <toggle> <icon-next>
+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>
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = "MPD is offline"
+
+; Only applies if <icon-X> is used
+icon-play-foreground = ${color.CYAN}
+icon-play = 契
+icon-pause-foreground = ${color.CYAN}
+icon-pause = 
+icon-stop-foreground = ${color.CYAN}
+icon-stop = 栗
+icon-prev-foreground = ${color.CYAN}
+icon-prev = 寧
+icon-next-foreground = ${color.CYAN}
+icon-next = 嶺
+
+icon-seekb = ⏪
+icon-seekf = ⏩
+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 = #ff
+;;toggle-off-foreground = #55
+
+; Only applies if <bar-progress> is used
+;;bar-progress-width = 45
+;;bar-progress-indicator = |
+;;bar-progress-fill = ─
+;;bar-progress-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; If you use both a wired and a wireless network, Add both modules in config.ini
+[module/ethernet]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <label-connected>
+format-connected-prefix = "歷 "
+format-connected-prefix-foreground = ${color.MAGENTA}
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "轢 "
+format-disconnected-prefix-foreground = ${color.RED}
+
+label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}"
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; Normal Module
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <ramp-signal> <label-connected>
+
+; Available tags:
+; <label-disconnected> (default)
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "睊 "
+format-disconnected-prefix-foreground = ${color.RED}
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+label-connected = "%{A1:nmd &:}%essid% 龍 %downspeed%%{A}"
+;;label-connected-foreground = #eefafafa
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:}Disconnected%{A}"
+;;label-disconnected-foreground = #66ffffff
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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-foreground = ${color.MAGENTA}
+
+; 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/pulseaudio]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; 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> <label-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+;format-muted = <label-muted>
+
+; Available tokens:
+; %percentage% (default)
+;label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default)
+format-muted-prefix = 婢
+format-muted-prefix-foreground = ${color.RED}
+label-muted = " Mute"
+label-muted-foreground = ${color.ALTFOREGROUND}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+ramp-volume-foreground = ${color.RED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/temperature]
+type = internal/temperature
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 0.5
+
+; 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/hwmon2/temp1_input
+
+; Threshold temperature to display warning label (in degrees celsius)
+; Default: 80
+warn-temperature = 60
+
+; Whether or not to show units next to the temperature tokens (°C, °F)
+; Default: true
+units = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+format = <ramp> <label>
+
+; Available tags:
+; <label-warn> (default)
+; <ramp>
+format-warn = <ramp> <label-warn>
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label = %temperature-c%
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label-warn = "%temperature-c%"
+label-warn-foreground = #f00
+
+; Requires the <ramp> tag
+; The icon selection will range from 0 to `warn-temperature`
+; with the current temperature as index.
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-foreground = ${color.YELLOW}
+;;ramp-foreground = #55
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/keyboard]
+type = internal/xkeyboard
+
+; List of indicators to ignore
+blacklist-0 = num lock
+blacklist-1 = scroll lock
+
+; Available tags:
+; <label-layout> (default)
+; <label-indicator> (default)
+format = <label-layout> <label-indicator>
+format-prefix = " "
+format-prefix-foreground = ${color.MAGENTA}
+;;format-spacing = 0
+
+; Available tokens:
+; %layout%
+; %name%
+; %number%
+; Default: %layout%
+label-layout = %layout%
+;;label-layout-padding = 2
+;;label-layout-background = #bc99ed
+;;label-layout-foreground = #000
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-indicator-on = %name%
+;;label-indicator-padding = 2
+label-indicator-on-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/title]
+type = internal/xwindow
+
+; Available tags:
+; <label> (default)
+format = <label>
+format-prefix = " "
+format-prefix-foreground = ${color.BLUE}
+;;format-background = ${color.BACKGROUND}
+;;format-foreground = ${color.CYAN}
+;;format-padding = 4
+
+; Available tokens:
+; %title%
+; Default: %title%
+label = %title%
+label-maxlen = 25
+
+; Used instead of label when there is no window title
+; Available tokens:
+; None
+;;label-empty = Archcraft
+;;label-empty-foreground = #707880
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/openbox]
+type = internal/xworkspaces
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = true
+
+; Create click handler used to focus desktop
+; Default: true
+enable-click = true
+
+; Create scroll handlers used to cycle desktops
+; Default: true
+enable-scroll = true
+
+; icon-[0-9]+ = <desktop-name>;<icon>
+; NOTE: The desktop name needs to match the name configured by the WM
+; You can get a list of the defined desktops using:
+; $ xprop -root _NET_DESKTOP_NAMES
+icon-0 = 1;
+icon-1 = 2;
+icon-2 = 3;
+icon-3 = 4;
+icon-4 = 5;
+icon-default = 
+
+; Available tags:
+; <label-monitor>
+; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
+; Default: <label-state>
+format = <label-state>
+format-padding = 0
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-monitor = %name%
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-active = 
+label-active-foreground = ${color.RED}
+label-active-background = ${color.BACKGROUND}
+;;label-active-underline = ${color.CYAN}
+;;label-active-overline = ${color.CYAN}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-occupied = 
+label-occupied-foreground = ${color.ACCENT}
+label-occupied-background = ${color.BACKGROUND}
+;;label-occupied-underline = ${color.CYAN}
+;;label-occupied-overline = ${color.CYAN}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-urgent = 
+label-urgent-foreground = ${color.GREEN}
+label-urgent-background = ${color.BACKGROUND}
+;;label-urgent-underline = ${color.CYAN}
+;;label-urgent-overline = ${color.CYAN}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-empty = %icon%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-background = ${color.BACKGROUND}
+;;label-empty-underline = ${color.CYAN}
+;;label-empty-overline = ${color.CYAN}
+
+label-active-padding = 1
+label-urgent-padding = 1
+label-occupied-padding = 1
+label-empty-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+content = |
+content-foreground = ${color.FOREGROUND}
+
+[module/sep2]
+type = custom/text
+content = "| "
+content-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/forest/rofi/askpass.rasi b/dot-config/bspwm/themes/forest/rofi/askpass.rasi
new file mode 100644
index 00000000..9436660c
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/askpass.rasi
@@ -0,0 +1,75 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 20px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px 15px;
+ border-radius: 20px;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/asroot.rasi b/dot-config/bspwm/themes/forest/rofi/asroot.rasi
new file mode 100644
index 00000000..c84dcdb4
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/asroot.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 20px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 3;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/confirm.rasi b/dot-config/bspwm/themes/forest/rofi/confirm.rasi
new file mode 100644
index 00000000..8be3b2b3
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/confirm.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 250px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 100%;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @active;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @urgent;
+ text-color: @background;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/launcher.rasi b/dot-config/bspwm/themes/forest/rofi/launcher.rasi
new file mode 100644
index 00000000..ceb7da47
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/launcher.rasi
@@ -0,0 +1,166 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun";
+ show-icons: true;
+ display-drun: "";
+ drun-display-format: "{name}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 700px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @selected;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 8px;
+ margin: 0px;
+ padding: 12px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "::";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @selected;
+ border-radius: 0px;
+ background-color: @background-alt;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 5px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: @background;
+ text-color: @foreground;
+}
+element selected.normal {
+ background-color: @selected;
+ text-color: @background;
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Message -----*****/
+error-message {
+ padding: 15px;
+ border: 2px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background;
+ text-color: @foreground;
+}
+textbox {
+ background-color: @background;
+ text-color: @foreground;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/music.rasi b/dot-config/bspwm/themes/forest/rofi/music.rasi
new file mode 100644
index 00000000..26a4f918
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/music.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 20px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/networkmenu.rasi b/dot-config/bspwm/themes/forest/rofi/networkmenu.rasi
new file mode 100644
index 00000000..b5cfbdd5
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/networkmenu.rasi
@@ -0,0 +1,167 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun";
+ show-icons: false;
+ display-drun: "";
+ drun-display-format: "{name}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ height: 515px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @selected;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 8px;
+ margin: 0px;
+ padding: 12px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "直";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 7;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @selected;
+ border-radius: 0px;
+ background-color: @background-alt;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 12px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: @background;
+ text-color: @foreground;
+}
+element selected.normal {
+ background-color: @selected;
+ text-color: @background;
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Message -----*****/
+error-message {
+ padding: 15px;
+ border: 2px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background;
+ text-color: @foreground;
+}
+textbox {
+ background-color: @background;
+ text-color: @foreground;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/powermenu.rasi b/dot-config/bspwm/themes/forest/rofi/powermenu.rasi
new file mode 100644
index 00000000..e58628c4
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/powermenu.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 20px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/runner.rasi b/dot-config/bspwm/themes/forest/rofi/runner.rasi
new file mode 100644
index 00000000..57322976
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/runner.rasi
@@ -0,0 +1,166 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: "";
+ drun-display-format: "{name}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @selected;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 8px;
+ margin: 0px;
+ padding: 12px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Run...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 7;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @selected;
+ border-radius: 0px;
+ background-color: @background-alt;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 5px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: @background;
+ text-color: @foreground;
+}
+element selected.normal {
+ background-color: @selected;
+ text-color: @background;
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Message -----*****/
+error-message {
+ padding: 15px;
+ border: 2px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background;
+ text-color: @foreground;
+}
+textbox {
+ background-color: @background;
+ text-color: @foreground;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/screenshot.rasi b/dot-config/bspwm/themes/forest/rofi/screenshot.rasi
new file mode 100644
index 00000000..62960fda
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/screenshot.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 20px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 3;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/shared/colors.rasi b/dot-config/bspwm/themes/forest/rofi/shared/colors.rasi
new file mode 100644
index 00000000..8d143a25
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #222d32;
+ background-alt: #2c3b41;
+ foreground: #c4c7c5;
+ selected: #00BCD4;
+ active: #61c766;
+ urgent: #ec7875;
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/forest/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..d2af39fe
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/shared/fonts.rasi
@@ -0,0 +1,7 @@
+/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
+
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/themes.rasi b/dot-config/bspwm/themes/forest/rofi/themes.rasi
new file mode 100644
index 00000000..375c4c37
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/themes.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 20px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 5;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 20px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/forest/rofi/windows.rasi b/dot-config/bspwm/themes/forest/rofi/windows.rasi
new file mode 100644
index 00000000..ff2bc9be
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/rofi/windows.rasi
@@ -0,0 +1,180 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: "";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @selected;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 8px;
+ margin: 0px;
+ padding: 12px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 7;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @selected;
+ border-radius: 0px;
+ background-color: @background-alt;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 5px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Message -----*****/
+error-message {
+ padding: 15px;
+ border: 2px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background;
+ text-color: @foreground;
+}
+textbox {
+ background-color: @background;
+ text-color: @foreground;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+}
diff --git a/dot-config/bspwm/themes/forest/theme.bash b/dot-config/bspwm/themes/forest/theme.bash
new file mode 100644
index 00000000..33d89c5f
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/theme.bash
@@ -0,0 +1,82 @@
+# ------------------------------------------------------------------------------
+# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+#
+# Forest Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#222d32'
+foreground='#c4c7c5'
+color0='#263640'
+color1='#ec7875'
+color2='#61c766'
+color3='#fdd835'
+color4='#42a5f5'
+color5='#ba68c8'
+color6='#4dd0e1'
+color7='#bfbaac'
+color8='#4a697d'
+color9='#fb8784'
+color10='#70d675'
+color11='#ffe744'
+color12='#51b4ff'
+color13='#c979d7'
+color14='#5cdff0'
+color15='#fdf6e3'
+
+accent='#00BCD4'
+light_value='0.05'
+dark_value='0.30'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='Iosevka Nerd Font:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Papirus-Apps'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='adapta.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Adapta-Nokto'
+icon_theme='Archcraft-Dark'
+cursor_theme='Pear'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='10x40'
+dunst_origin='top-right'
+dunst_font='Iosevka Custom 9'
+dunst_border='2'
+dunst_separator='2'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$accent"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='2'
+bspwm_gap='10'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/forest/wallpaper b/dot-config/bspwm/themes/forest/wallpaper
new file mode 120000
index 00000000..73b96ee0
--- /dev/null
+++ b/dot-config/bspwm/themes/forest/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/forest.jpg \ No newline at end of file
diff --git a/dot-config/bspwm/themes/hack/apply.sh b/dot-config/bspwm/themes/hack/apply.sh
new file mode 100755
index 00000000..e5df7a2a
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/apply.sh
@@ -0,0 +1,282 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
+altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${background}
+ FOREGROUND = ${foreground}
+ ALTBACKGROUND = ${altbackground}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${accent}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+
+ COLOR_R = ${color_red}
+ COLOR_G = ${color_green}
+ COLOR_Y = ${color_yellow}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${background};
+ background-alt: ${altbackground};
+ foreground: ${foreground};
+ selected: ${accent};
+ active: ${color_green};
+ urgent: ${color_red};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${accent}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${accent}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${background}"
+ foreground = "${color_red}"
+ frame_color = "${color_red}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/hack/polybar/.module b/dot-config/bspwm/themes/hack/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/polybar/.module
diff --git a/dot-config/bspwm/themes/hack/polybar/bars.ini b/dot-config/bspwm/themes/hack/polybar/bars.ini
new file mode 100644
index 00000000..0e805003
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/polybar/bars.ini
@@ -0,0 +1,553 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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-prefix = 
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+label-muted = " Mute"
+label-muted-foreground = ${color.COLOR_R}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 
+ramp-volume-1 = 
+ramp-volume-2 = 
+
+; Only applies if <bar-volume> is used
+bar-volume-width = 10
+bar-volume-gradient = false
+
+bar-volume-indicator = ${bar.indicator}
+bar-volume-indicator-foreground = ${color.FOREGROUND}
+
+bar-volume-fill = ${bar.fill}
+bar-volume-foreground-0 = ${color.FOREGROUND}
+bar-volume-foreground-1 = ${color.FOREGROUND}
+bar-volume-foreground-2 = ${color.FOREGROUND}
+bar-volume-foreground-3 = ${color.FOREGROUND}
+bar-volume-foreground-4 = ${color.FOREGROUND}
+
+bar-volume-empty = ${bar.empty}
+bar-volume-empty-foreground = ${color.FOREGROUND}
+
+; 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/bna-bar]
+type = custom/text
+
+content = " NA"
+content-prefix = 盛
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight-bar]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_backlight
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <bar>
+format-prefix = "盛 "
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+
+; Only applies if <bar> is used
+bar-width = 10
+bar-gradient = false
+
+bar-indicator = ${bar.indicator}
+bar-indicator-foreground = ${color.FOREGROUND}
+
+bar-fill = ${bar.fill}
+bar-foreground-0 = ${color.FOREGROUND}
+bar-foreground-1 = ${color.FOREGROUND}
+bar-foreground-2 = ${color.FOREGROUND}
+bar-foreground-3 = ${color.FOREGROUND}
+bar-foreground-4 = ${color.FOREGROUND}
+
+bar-empty = ${bar.empty}
+bar-empty-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness-bar]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <bar>
+format-prefix = "盛 "
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+
+; Only applies if <bar> is used
+bar-width = 10
+bar-gradient = false
+
+bar-indicator = ${bar.indicator}
+bar-indicator-foreground = ${color.FOREGROUND}
+
+bar-fill = ${bar.fill}
+bar-foreground-0 = ${color.FOREGROUND}
+bar-foreground-1 = ${color.FOREGROUND}
+bar-foreground-2 = ${color.FOREGROUND}
+bar-foreground-3 = ${color.FOREGROUND}
+bar-foreground-4 = ${color.FOREGROUND}
+
+bar-empty = ${bar.empty}
+bar-empty-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = " "
+
+; Available tags:
+; <label-discharging> (default)
+; <bar-capacity>
+; <ramp-capacity>
+; <animation-discharging>
+format-discharging = <bar-capacity>
+format-discharging-prefix = " "
+
+; Available tags:
+; <label-full> (default)
+; <bar-capacity>
+; <ramp-capacity>
+format-full = <label-full>
+format-full-prefix = " "
+
+; 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-width = 10
+bar-capacity-gradient = false
+
+bar-capacity-indicator = ${bar.indicator}
+bar-capacity-indicator-foreground = ${color.FOREGROUND}
+
+bar-capacity-fill = ${bar.fill}
+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-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = "﬙ "
+
+; 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-width = 10
+bar-load-gradient = false
+
+bar-load-indicator = ${bar.indicator}
+bar-load-indicator-foreground = ${color.FOREGROUND}
+
+bar-load-fill = ${bar.fill}
+bar-load-foreground-0 = ${color.FOREGROUND}
+bar-load-foreground-1 = ${color.FOREGROUND}
+bar-load-foreground-2 = ${color.FOREGROUND}
+bar-load-foreground-3 = ${color.FOREGROUND}
+bar-load-foreground-4 = ${color.FOREGROUND}
+
+bar-load-empty = ${bar.empty}
+bar-load-empty-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = " "
+
+; Available tags:
+; <label-unmounted> (default)
+format-unmounted = <label-unmounted>
+format-unmounted-prefix = " "
+
+; 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-width = 10
+bar-used-gradient = false
+
+bar-used-indicator = ${bar.indicator}
+bar-used-indicator-foreground = ${color.FOREGROUND}
+
+bar-used-fill = ${bar.fill}
+bar-used-foreground-0 = ${color.FOREGROUND}
+bar-used-foreground-1 = ${color.FOREGROUND}
+bar-used-foreground-2 = ${color.FOREGROUND}
+bar-used-foreground-3 = ${color.FOREGROUND}
+bar-used-foreground-4 = ${color.FOREGROUND}
+
+bar-used-empty = ${bar.empty}
+bar-used-empty-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = " "
+
+; 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-width = 10
+bar-used-gradient = false
+
+bar-used-indicator = ${bar.indicator}
+bar-used-indicator-foreground = ${color.FOREGROUND}
+
+bar-used-fill = ${bar.fill}
+bar-used-foreground-0 = ${color.FOREGROUND}
+bar-used-foreground-1 = ${color.FOREGROUND}
+bar-used-foreground-2 = ${color.FOREGROUND}
+bar-used-foreground-3 = ${color.FOREGROUND}
+bar-used-foreground-4 = ${color.FOREGROUND}
+
+bar-used-empty = ${bar.empty}
+bar-used-empty-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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-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 = ﱘ
+
+; 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-prev = 
+icon-next = 
+icon-seekb =
+icon-seekf =
+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.COLOR_R}
+
+; Only applies if <bar-progress> is used
+bar-progress-width = 10
+bar-progress-gradient = false
+
+bar-progress-indicator = ${bar.indicator}
+bar-progress-indicator-foreground = ${color.FOREGROUND}
+
+bar-progress-fill = ${bar.fill}
+bar-progress-foreground-0 = ${color.FOREGROUND}
+
+bar-progress-empty = ${bar.empty}
+bar-progress-empty-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/hack/polybar/colors.ini b/dot-config/bspwm/themes/hack/polybar/colors.ini
new file mode 100644
index 00000000..fcaf1dcc
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/polybar/colors.ini
@@ -0,0 +1,28 @@
+[color]
+
+BACKGROUND = #01161b
+FOREGROUND = #66FFFF
+ALTBACKGROUND = #022a34
+ALTFOREGROUND = #00cccc
+ACCENT = #007B82
+
+BLACK = #01161b
+RED = #007b82
+GREEN = #028c94
+YELLOW = #039ca4
+BLUE = #04acb5
+MAGENTA = #05bbc5
+CYAN = #06ccd7
+WHITE = #a3b5b8
+ALTBLACK = #01161b
+ALTRED = #007b82
+ALTGREEN = #028c94
+ALTYELLOW = #039ca4
+ALTBLUE = #04acb5
+ALTMAGENTA = #05bbc5
+ALTCYAN = #06ccd7
+ALTWHITE = #a3b5b8
+
+COLOR_R = #ff0000
+COLOR_G = #00ff00
+COLOR_Y = #ffff00
diff --git a/dot-config/bspwm/themes/hack/polybar/config.ini b/dot-config/bspwm/themes/hack/polybar/config.ini
new file mode 100644
index 00000000..208df577
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/polybar/config.ini
@@ -0,0 +1,309 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; 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 = ../../system.ini
+include-file = ./bars.ini
+include-file = ./colors.ini
+include-file = ./modules.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 = ${env: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 = 25
+
+; 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
+underline-size = 2
+underline-color = ${color.ACCENT}
+
+; 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 = 2
+;border-bottom-color = ${color.primary}
+
+; Number of spaces to add at the beginning/end of the bar
+; Individual side values can be defined using:
+; padding-{left,right}
+padding = 1
+
+; Number of spaces to add before/after each module
+; Individual side values can be defined using:
+; module-margin-{left,right}
+module-margin-left = 0
+module-margin-right = 0
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; Fonts are defined using <font-name>;<vertical-offset>
+; Font names are specified using a fontconfig pattern.
+; font-0 = "Iosevka Nerd Font:size=10;3"
+; 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 = "Iosevka Nerd Font:size=10;3"
+font-1 = "Iosevka Nerd Font:pixelsize=12;4"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbrightness
+; modules-right = ipc clock
+
+;modules-left = launcher workspaces google github reddit gmail twitter
+;modules-center =
+;modules-right = mpd updates alsa battery network date sysmenu
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[bar/top]
+inherit = bar/main
+border-bottom-size = 1
+border-bottom-color = ${color.ACCENT}
+modules-left = menu sep cpu sep used-memory sep filesystem
+modules-center = mod sep bspwm
+modules-right = updates sep checknet sep battery sep date sep sysmenu
+enable-ipc = true
+
+[bar/bottom]
+inherit = bar/main
+bottom = true
+border-top-size = 1
+border-top-color = ${color.ACCENT}
+modules-left = mpd
+modules-center = network_ext
+modules-right = volume sep bna-bar
+enable-ipc = true
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; 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 = bspwm
+
+; 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 = bspwm
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+; dpi =
+
+; 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 = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+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/dot-config/bspwm/themes/hack/polybar/launch.sh b/dot-config/bspwm/themes/hack/polybar/launch.sh
new file mode 100755
index 00000000..d5552039
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/polybar/launch.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q top -c "$DIR"/config.ini &
+ MONITOR=$mon polybar -q bottom -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/hack/polybar/modules.ini b/dot-config/bspwm/themes/hack/polybar/modules.ini
new file mode 100644
index 00000000..1faaab48
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/polybar/modules.ini
@@ -0,0 +1,1258 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bspwm]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-default = 
+
+format = <label-state>
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.COLOR_R}
+#label-focused-underline = ${color.COLOR_R}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.COLOR_Y}
+;label-occupied-underline = ${color.COLOR_Y}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.COLOR_G}
+#label-urgent-underline = ${color.COLOR_G}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = "∙"
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = [<label-mode>]
+format-background = ${color.BACKGROUND}
+format-foreground = ${color.COLOR_G}
+format-padding = 0
+
+label-monocle = "Monocle"
+label-tiled = "Tiled"
+
+label-floating = ", Float"
+label-pseudotiled = ", Pseudo"
+label-fullscreen = ", Full"
+
+label-locked = " | Locked"
+label-sticky = " | Sticky"
+label-private = " | Private"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/alsa]
+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> <label-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+format-muted-prefix = 
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+label-muted = " Mute"
+label-muted-foreground = ${color.COLOR_R}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 
+ramp-volume-1 = 
+ramp-volume-2 = 
+
+; 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/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 盛
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_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 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; 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 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = <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 = <label-full>
+format-full-prefix = 
+
+; Available tokens:
+; %percentage% (default)
+; %time%
+; %consumption% (shows current charge rate in watts)
+label-charging = "%percentage%% (%time%)"
+
+; Available tokens:
+; %percentage% (default)
+; %time%
+; %consumption% (shows current discharge rate in watts)
+label-discharging = "%percentage%% (%time%)"
+
+; Available tokens:
+; %percentage% (default)
+label-full = " Full"
+
+; 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 = ${battery.anim0}
+;;animation-discharging-1 = ${battery.anim1}
+
+; Framerate in milliseconds
+;animation-discharging-framerate = 500
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/cpu]
+type = internal/cpu
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1
+
+; Available tags:
+; <label> (default)
+; <bar-load>
+; <ramp-load>
+; <ramp-coreload>
+;;format = <label> <ramp-coreload>
+format = <label>
+format-prefix = ﮕ
+
+; 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%%"
+
+; Spacing between individual per-core ramps
+;;ramp-coreload-spacing = 1
+;;ramp-coreload-0 = ${cpu.load0}
+;;ramp-coreload-1 = ${cpu.load1}
+
+;;ramp-load-0 = ${cpu.load0}
+;;ramp-load-1 = ${cpu.load1}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+; Seconds to sleep between updates
+interval = 1.0
+
+; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
+; NOTE: if you want to use syntax tags here you need to use %%{...}
+;;date = %Y-%m-%d%
+
+; Optional time format
+time = " %I:%M %p"
+
+; if `date-alt` or `time-alt` is defined, clicking
+; the module will toggle between formats
+;;date-alt = %A, %d %B %Y
+time-alt = " %a, %d %b %Y"
+
+; Available tags:
+; <label> (default)
+format = <label>
+
+; Available tokens:
+; %date%
+; %time%
+; Default: %date%
+label = %time%
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/filesystem]
+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 = true
+
+; Spacing between entries
+; Default: 2
+;;spacing = 4
+
+; Available tags:
+; <label-mounted> (default)
+; <bar-free>
+; <bar-used>
+; <ramp-capacity>
+format-mounted = <label-mounted>
+format-mounted-prefix = 
+
+; Available tags:
+; <label-unmounted> (default)
+format-unmounted = <label-unmounted>
+format-unmounted-prefix = 
+
+; Available tokens:
+; %mountpoint%
+; %type%
+; %fsname%
+; %percentage_free%
+; %percentage_used%
+; %total%
+; %free%
+; %used%
+; Default: %mountpoint% %percentage_free%%
+label-mounted = " %free%"
+
+; Available tokens:
+; %mountpoint%
+; Default: %mountpoint% is not mounted
+label-unmounted = " %mountpoint%: not mounted"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/memory]
+type = internal/memory
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1
+
+; 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 = <label>
+format-prefix = 
+
+; 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 <ramp-used> is used
+;;ramp-used-0 = ${memory.used0}
+;;ramp-used-1 = ${memory.used1}
+;;ramp-used-2 = ${memory.used2}
+
+; Only applies if <ramp-free> is used
+;;ramp-free-0 = ${memory.free0}
+;;ramp-free-1 = ${memory.free1}
+;;ramp-free-2 = ${memory.free2}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/used-memory]
+type = custom/script
+
+exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3
+
+tail = true
+interval = 5
+
+format = <label>
+format-prefix = 
+
+label = " %output% MB"
+
+click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" &
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 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> <icon-prev> <toggle> <icon-next>
+format-online-prefix = ﱘ
+format-online-foreground = ${color.FOREGROUND}
+
+;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-foreground = ${color.FOREGROUND}
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = " %artist% - %title%"
+label-song-maxlen = 35
+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-prev = 
+icon-next = 
+icon-seekb =
+icon-seekf =
+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 = green
+toggle-off-foreground = red
+
+; Only applies if <bar-progress> is used
+;;bar-progress-width = 45
+;;bar-progress-indicator = |
+;;bar-progress-fill = ─
+;;bar-progress-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; Normal Module
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <label-connected>
+format-connected-prefix = 說
+
+; Available tags:
+; <label-disconnected> (default)
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = ﲁ
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+label-connected = "%{A1:nmd &:} %essid%%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:} Offline%{A}"
+;;label-disconnected-foreground = #66ffffff
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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 =
+
+; 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/network_ext]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <label-connected>
+format-connected-prefix = 直
+; Available tags:
+; <label-disconnected> (default)
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = 睊
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+label-connected = "%{A1:nmd &:} %ifname% ∙  %signal% ∙ 歷 %local_ip% ∙ ﬉ %essid% ∙  %downspeed% ∙ 祝 %upspeed%%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:} Disconnected%{A}"
+;;label-disconnected-foreground = #66ffffff
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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 =
+
+; 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/ethernet_ext]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <label-connected>
+format-connected-prefix = 泌
+; Available tags:
+; <label-disconnected> (default)
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = 戀
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+label-connected = "%{A1:nmd &:} %ifname% ∙ 歷 %local_ip% ∙  %downspeed% ∙ 祝 %upspeed%%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:} Disconnected%{A}"
+;;label-disconnected-foreground = #66ffffff
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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 =
+
+; 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/pulseaudio]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_03_00.6.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; 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> <label-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+format-muted-prefix = 
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+label-muted = " Mute"
+label-muted-foreground = ${color.COLOR_R}
+
+; Only applies if <ramp-volume> is used
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 
+ramp-volume-1 = 
+ramp-volume-2 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/temperature]
+type = internal/temperature
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 0.5
+
+; 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/hwmon2/temp1_input
+hwmon-path = /sys/devices/pci0000:00/0000:00:01.3/0000:01:00.0/hwmon/hwmon0/temp1_input
+
+; Threshold temperature to display warning label (in degrees celsius)
+; Default: 80
+warn-temperature = 65
+
+; Whether or not to show units next to the temperature tokens (°C, °F)
+; Default: true
+units = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+format = <ramp> <label>
+
+; Available tags:
+; <label-warn> (default)
+; <ramp>
+format-warn = <ramp> <label-warn>
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label = %temperature-c%
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label-warn = "%temperature-c%"
+label-warn-foreground = ${color.COLOR_R}
+
+; Requires the <ramp> tag
+; The icon selection will range from 0 to `warn-temperature`
+; with the current temperature as index.
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/keyboard]
+type = internal/xkeyboard
+
+; List of indicators to ignore
+blacklist-0 = num lock
+blacklist-1 = scroll lock
+
+; Available tags:
+; <label-layout> (default)
+; <label-indicator> (default)
+format = <label-layout> <label-indicator>
+format-prefix = 
+
+; Available tokens:
+; %layout%
+; %name%
+; %number%
+; Default: %layout%
+label-layout = " %layout%"
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-indicator-on = %name%
+label-indicator-on-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/title]
+type = internal/xwindow
+
+; Available tags:
+; <label> (default)
+format = <label>
+;format-prefix =
+
+; Available tokens:
+; %title%
+; Default: %title%
+label = "%title%"
+label-maxlen = 30
+
+; Used instead of label when there is no window title
+label-empty = Desktop
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/workspaces]
+type = internal/xworkspaces
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = true
+
+; Create click handler used to focus desktop
+; Default: true
+enable-click = true
+
+; Create scroll handlers used to cycle desktops
+; Default: true
+enable-scroll = true
+
+; icon-[0-9]+ = <desktop-name>;<icon>
+; NOTE: The desktop name needs to match the name configured by the WM
+; You can get a list of the defined desktops using:
+; $ xprop -root _NET_DESKTOP_NAMES
+icon-0 = 1;I
+icon-1 = 2;II
+icon-2 = 3;III
+icon-3 = 4;IV
+icon-4 = 5;V
+icon-default = 
+
+
+; Available tags:
+; <label-monitor>
+; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
+; Default: <label-state>
+format = <label-state>
+format-padding = 1
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-monitor = %name%
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-active = %icon%
+label-active-foreground = ${color.COLOR_R}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-occupied = %icon%
+label-occupied-foreground = ${color.COLOR_Y}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-urgent = %icon%
+label-urgent-foreground = ${color.COLOR_G}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-empty = %icon%
+
+label-active-padding = 2
+label-urgent-padding = 2
+label-occupied-padding = 2
+label-empty-padding = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/menu]
+type = custom/text
+
+content = " Programs"
+content-prefix = ﮊ
+content-prefix-font = 2
+content-foreground = ${color.FOREGROUND}
+content-padding = 0
+
+click-left = ~/.config/bspwm/scripts/rofi_launcher
+click-right = ~/.config/bspwm/scripts/rofi_runner
+
+;;scroll-up = path_to_script
+;;scroll-down = path_to_script
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sysmenu]
+type = custom/text
+
+content = 
+content-foreground = ${color.FOREGROUND}
+content-padding = 0
+
+click-left = ~/.config/bspwm/scripts/rofi_powermenu
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+
+content = ∙
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.ACCENT}
+content-padding = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/checknet]
+type = custom/script
+
+; Available tokens:
+; %counter%
+; Command to be executed (using "/usr/bin/env sh -c [command]")
+exec = ~/.config/bspwm/themes/hack/polybar/scripts/check-network
+
+; Conditional command that, if defined, needs to exit successfully
+; before the main exec command is invoked.
+; Default: ""
+;;exec-if = ""
+
+; Will the script output continous content?
+; Default: false
+tail = true
+
+; Seconds to sleep between updates
+; Default: 2 (0 if `tail = true`)
+interval = 5
+
+; Available tags:
+; <output> - deprecated
+; <label> (default)
+format = <label>
+;format-prefix =
+
+; Available tokens:
+; %output%
+; Default: %output%
+label = %output%
+
+; Available tokens:
+; %counter%
+; %pid%
+;
+; "click-(left|middle|right)" will be executed using "/usr/bin/env sh -c [command]"
+click-left = nmd &
+click-right = nmd &
+;;double-click-left = echo double left %counter%
+;;double-click-middle = echo double middle %counter%
+;;double-click-right = echo double right %counter%
+
+; Available tokens:
+; %counter%
+; %pid%
+;
+; "scroll-(up|down)" will be executed using "/usr/bin/env sh -c [command]"
+;;scroll-up = echo scroll up %counter%
+;;scroll-down = echo scroll down %counter%
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/updates]
+type = custom/script
+
+; Available tokens:
+; %counter%
+; Command to be executed (using "/usr/bin/env sh -c [command]")
+exec = ~/.config/bspwm/themes/hack/polybar/scripts/updates.sh
+
+; Conditional command that, if defined, needs to exit successfully
+; before the main exec command is invoked.
+; Default: ""
+;;exec-if = ""
+
+; Will the script output continous content?
+; Default: false
+tail = true
+
+; Seconds to sleep between updates
+; Default: 2 (0 if `tail = true`)
+interval = 5
+
+; Available tags:
+; <output> - deprecated
+; <label> (default)
+format = <label>
+format-prefix = 
+
+; Available tokens:
+; %output%
+; Default: %output%
+label = %output%
+
+; Available tokens:
+; %counter%
+; %pid%
+;
+; "click-(left|middle|right)" will be executed using "/usr/bin/env sh -c [command]"
+click-left = exo-open --launch TerminalEmulator && sleep 0.6 && xdotool type 'sudo pacman -Syu'
+click-right = exo-open --launch TerminalEmulator && sleep 0.6 && xdotool type 'sudo pacman -Syu'
+;;double-click-left = echo double left %counter%
+;;double-click-middle = echo double middle %counter%
+;;double-click-right = echo double right %counter%
+
+; Available tokens:
+; %counter%
+; %pid%
+;
+; "scroll-(up|down)" will be executed using "/usr/bin/env sh -c [command]"
+;;scroll-up = echo scroll up %counter%
+;;scroll-down = echo scroll down %counter%
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/hack/polybar/scripts/check-network b/dot-config/bspwm/themes/hack/polybar/scripts/check-network
new file mode 100755
index 00000000..f7dd0a36
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/polybar/scripts/check-network
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+count=0
+connected="說"
+disconnected="ﲁ"
+
+ID="$(ip link | awk '/state UP/ {print $2}')"
+
+while true; do
+ if (ping -c 1 archlinux.org || ping -c 1 google.com || ping -c 1 bitbucket.org || ping -c 1 github.com || ping -c 1 sourceforge.net) &>/dev/null; then
+ if [[ $ID == e* ]]; then
+ echo "$connected Online" ; sleep 25
+ else
+ echo "$connected Online" ; sleep 25
+ fi
+ else
+ echo "$disconnected Offline" ; sleep 5
+ fi
+done
diff --git a/dot-config/bspwm/themes/hack/polybar/scripts/checkupdates b/dot-config/bspwm/themes/hack/polybar/scripts/checkupdates
new file mode 100755
index 00000000..4d8a5e81
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/polybar/scripts/checkupdates
@@ -0,0 +1,117 @@
+#!/usr/bin/bash
+#
+# checkupdates: Safely print a list of pending updates.
+#
+# Copyright (c) 2013 Kyle Keen <keenerd@gmail.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+declare -r myname='checkupdates'
+declare -r myver='1.0.0'
+
+plain() {
+ (( QUIET )) && return
+ local mesg=$1; shift
+ printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1
+}
+
+msg() {
+ (( QUIET )) && return
+ local mesg=$1; shift
+ printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1
+}
+
+msg2() {
+ (( QUIET )) && return
+ local mesg=$1; shift
+ printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1
+}
+
+ask() {
+ local mesg=$1; shift
+ printf "${BLUE}::${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}" "$@" >&1
+}
+
+warning() {
+ local mesg=$1; shift
+ printf "${YELLOW}==> $(gettext "WARNING:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
+}
+
+error() {
+ local mesg=$1; shift
+ printf "${RED}==> $(gettext "ERROR:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
+}
+
+# check if messages are to be printed using color
+unset ALL_OFF BOLD BLUE GREEN RED YELLOW
+if [[ -t 2 && ! $USE_COLOR = "n" ]]; then
+ # prefer terminal safe colored and bold text when tput is supported
+ if tput setaf 0 &>/dev/null; then
+ ALL_OFF="$(tput sgr0)"
+ BOLD="$(tput bold)"
+ BLUE="${BOLD}$(tput setaf 4)"
+ GREEN="${BOLD}$(tput setaf 2)"
+ RED="${BOLD}$(tput setaf 1)"
+ YELLOW="${BOLD}$(tput setaf 3)"
+ else
+ ALL_OFF="\e[1;0m"
+ BOLD="\e[1;1m"
+ BLUE="${BOLD}\e[1;34m"
+ GREEN="${BOLD}\e[1;32m"
+ RED="${BOLD}\e[1;31m"
+ YELLOW="${BOLD}\e[1;33m"
+ fi
+fi
+readonly ALL_OFF BOLD BLUE GREEN RED YELLOW
+
+
+if (( $# > 0 )); then
+ echo "${myname} v${myver}"
+ echo
+ echo "Safely print a list of pending updates"
+ echo
+ echo "Usage: ${myname}"
+ echo
+ echo 'Note: Export the "CHECKUPDATES_DB" variable to change the path of the temporary database.'
+ exit 0
+fi
+
+if ! type -P fakeroot >/dev/null; then
+ error 'Cannot find the fakeroot binary.'
+ exit 1
+fi
+
+if [[ -z $CHECKUPDATES_DB ]]; then
+ CHECKUPDATES_DB="${TMPDIR:-/tmp}/checkup-db-${USER}/"
+fi
+
+trap 'rm -f $CHECKUPDATES_DB/db.lck' INT TERM EXIT
+
+DBPath="$(pacman-conf DBPath)"
+if [[ -z "$DBPath" ]] || [[ ! -d "$DBPath" ]]; then
+ DBPath="/var/lib/pacman/"
+fi
+
+mkdir -p "$CHECKUPDATES_DB"
+ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null
+if ! fakeroot -- pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then
+ error 'Cannot fetch updates'
+ exit 1
+fi
+pacman -Qu --dbpath "$CHECKUPDATES_DB" 2> /dev/null | grep -v '\[.*\]'
+
+exit 0
+
+# vim: set noet:
diff --git a/dot-config/bspwm/themes/hack/polybar/scripts/updates.sh b/dot-config/bspwm/themes/hack/polybar/scripts/updates.sh
new file mode 100755
index 00000000..105584a2
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/polybar/scripts/updates.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+NOTIFY_ICON=/usr/share/icons/Papirus/32x32/apps/system-software-update.svg
+
+get_total_updates() { UPDATES=$(checkupdates 2>/dev/null | wc -l); }
+
+while true; do
+ get_total_updates
+
+ # notify user of updates
+ if hash notify-send &>/dev/null; then
+ if (( UPDATES > 50 )); then
+ notify-send -u critical -i $NOTIFY_ICON \
+ "You really need to update!!" "$UPDATES New packages"
+ elif (( UPDATES > 25 )); then
+ notify-send -u normal -i $NOTIFY_ICON \
+ "You should update soon" "$UPDATES New packages"
+ elif (( UPDATES > 2 )); then
+ notify-send -u low -i $NOTIFY_ICON \
+ "$UPDATES New packages"
+ fi
+ fi
+
+ # when there are updates available
+ # every 10 seconds another check for updates is done
+ while (( UPDATES > 0 )); do
+ if (( UPDATES == 1 )); then
+ echo " $UPDATES"
+ elif (( UPDATES > 1 )); then
+ echo " $UPDATES"
+ else
+ echo " None"
+ fi
+ sleep 10
+ get_total_updates
+ done
+
+ # when no updates are available, use a longer loop, this saves on CPU
+ # and network uptime, only checking once every 30 min for new updates
+ while (( UPDATES == 0 )); do
+ echo " None"
+ sleep 1800
+ get_total_updates
+ done
+done
diff --git a/dot-config/bspwm/themes/hack/rofi/askpass.rasi b/dot-config/bspwm/themes/hack/rofi/askpass.rasi
new file mode 100644
index 00000000..6b5f6d1a
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/askpass.rasi
@@ -0,0 +1,77 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: 0px;
+ padding: 15px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ border: 0px solid;
+ border-color: @selected;
+ padding: 10px 15px;
+ border-radius: 0px;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/asroot.rasi b/dot-config/bspwm/themes/hack/rofi/asroot.rasi
new file mode 100644
index 00000000..069c5e7c
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/asroot.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 1px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/confirm.rasi b/dot-config/bspwm/themes/hack/rofi/confirm.rasi
new file mode 100644
index 00000000..fd1f992e
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/confirm.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 250px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 100%;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @active;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @urgent;
+ text-color: @background;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/launcher.rasi b/dot-config/bspwm/themes/hack/rofi/launcher.rasi
new file mode 100644
index 00000000..fc0ae1fc
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/launcher.rasi
@@ -0,0 +1,308 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 800px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "mode-switcher", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px 0px 10px 0px;
+ padding: 5px 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 10px;
+ border: 0px 1px 1px 1px ;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px 0px 1px 0px ;
+ border-radius: 10px 10px 0px 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ border: 1px 1px 0px 1px ;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px 0px 10px 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/music.rasi b/dot-config/bspwm/themes/hack/rofi/music.rasi
new file mode 100644
index 00000000..117edaff
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/music.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 1px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/networkmenu.rasi b/dot-config/bspwm/themes/hack/rofi/networkmenu.rasi
new file mode 100644
index 00000000..8fe3e181
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/networkmenu.rasi
@@ -0,0 +1,280 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: false;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ height: 520px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px 15px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-alt;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "直";
+ background-color: inherit;
+ text-color: @foreground;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/powermenu.rasi b/dot-config/bspwm/themes/hack/rofi/powermenu.rasi
new file mode 100644
index 00000000..b0a4c2b2
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/powermenu.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 1px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/runner.rasi b/dot-config/bspwm/themes/hack/rofi/runner.rasi
new file mode 100644
index 00000000..84f05d77
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/runner.rasi
@@ -0,0 +1,279 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px 15px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-alt;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: @foreground;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Run...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/screenshot.rasi b/dot-config/bspwm/themes/hack/rofi/screenshot.rasi
new file mode 100644
index 00000000..4863e36d
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/screenshot.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 1px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/shared/colors.rasi b/dot-config/bspwm/themes/hack/rofi/shared/colors.rasi
new file mode 100644
index 00000000..ac1f9c95
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #01161b;
+ background-alt: #022a34;
+ foreground: #66FFFF;
+ selected: #007B82;
+ active: #00ff00;
+ urgent: #ff0000;
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/hack/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..d2af39fe
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/shared/fonts.rasi
@@ -0,0 +1,7 @@
+/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
+
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/themes.rasi b/dot-config/bspwm/themes/hack/rofi/themes.rasi
new file mode 100644
index 00000000..8155d0cb
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/themes.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 1px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/hack/rofi/windows.rasi b/dot-config/bspwm/themes/hack/rofi/windows.rasi
new file mode 100644
index 00000000..e6a1507b
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/rofi/windows.rasi
@@ -0,0 +1,279 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px 15px;
+ border: 1px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-alt;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: @foreground;
+}
+entry {
+ enabled: true;
+ padding: 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/hack/theme.bash b/dot-config/bspwm/themes/hack/theme.bash
new file mode 100644
index 00000000..9e22f057
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/theme.bash
@@ -0,0 +1,86 @@
+# ------------------------------------------------------------------------------
+# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+#
+# Hack Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#01161b'
+foreground='#66FFFF'
+color0='#01161b'
+color1='#007b82'
+color2='#028c94'
+color3='#039ca4'
+color4='#04acb5'
+color5='#05bbc5'
+color6='#06ccd7'
+color7='#a3b5b8'
+color8='#01161b'
+color9='#007b82'
+color10='#028c94'
+color11='#039ca4'
+color12='#04acb5'
+color13='#05bbc5'
+color14='#06ccd7'
+color15='#a3b5b8'
+
+accent='#007B82'
+color_red='#ff0000'
+color_green='#00ff00'
+color_yellow='#ffff00'
+
+light_value='0.05'
+dark_value='0.30'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='Iosevka Nerd Font:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Papirus-Apps'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='hack.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Hack'
+icon_theme='Hack'
+cursor_theme='LyraB'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='10x36'
+dunst_origin='top-right'
+dunst_font='Iosevka 10'
+dunst_border='1'
+dunst_separator='1'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$accent"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='1'
+bspwm_gap='10'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/hack/wallpaper b/dot-config/bspwm/themes/hack/wallpaper
new file mode 120000
index 00000000..0fe82bf9
--- /dev/null
+++ b/dot-config/bspwm/themes/hack/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/hack.jpg \ No newline at end of file
diff --git a/dot-config/bspwm/themes/manhattan/apply.sh b/dot-config/bspwm/themes/manhattan/apply.sh
new file mode 100755
index 00000000..77b99d21
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/apply.sh
@@ -0,0 +1,278 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $element_bg | pastel lighten $light_value | pastel format hex`"
+altforeground="`pastel color $element_fg | pastel darken $dark_value | pastel format hex`"
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${element_bg}
+ FOREGROUND = ${element_fg}
+ ALTBACKGROUND = ${altbackground}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${element_hl}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${element_bg};
+ background-alt: ${altbackground};
+ foreground: ${element_fg};
+ selected: ${element_hl};
+ active: ${color2};
+ urgent: ${color1};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${element_bg}"
+ foreground = "${element_fg}"
+ frame_color = "${altbackground}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${element_bg}"
+ foreground = "${element_fg}"
+ frame_color = "${altbackground}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${element_bg}"
+ foreground = "${color1}"
+ frame_color = "${color1}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/manhattan/polybar/.module b/dot-config/bspwm/themes/manhattan/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/polybar/.module
diff --git a/dot-config/bspwm/themes/manhattan/polybar/colors.ini b/dot-config/bspwm/themes/manhattan/polybar/colors.ini
new file mode 100644
index 00000000..447b00a6
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/polybar/colors.ini
@@ -0,0 +1,24 @@
+[color]
+
+BACKGROUND = #1F252B
+FOREGROUND = #F0FBF8
+ALTBACKGROUND = #2a323a
+ALTFOREGROUND = #77dbc0
+ACCENT = #B4A1DB
+
+BLACK = #20262c
+RED = #db86ba
+GREEN = #74dd91
+YELLOW = #e49186
+BLUE = #75dbe1
+MAGENTA = #b4a1db
+CYAN = #9ee9ea
+WHITE = #f1fcf9
+ALTBLACK = #465463
+ALTRED = #d04e9d
+ALTGREEN = #4bc66d
+ALTYELLOW = #db695b
+ALTBLUE = #3dbac2
+ALTMAGENTA = #825ece
+ALTCYAN = #62cdcd
+ALTWHITE = #e0e5e5
diff --git a/dot-config/bspwm/themes/manhattan/polybar/config.ini b/dot-config/bspwm/themes/manhattan/polybar/config.ini
new file mode 100644
index 00000000..21a463a9
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/polybar/config.ini
@@ -0,0 +1,320 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; 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 = ../../system.ini
+include-file = ./colors.ini
+include-file = ./modules.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 = ${env: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 = true
+
+; 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 = 38
+
+; 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 = 6
+line-color = ${color.ACCENT}
+
+; 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-top-size = 0
+border-color = ${color.ACCENT}
+
+; 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 = 0
+module-margin-right = 0
+
+; Fonts are defined using <font-name>;<vertical-offset>
+; Font names are specified using a fontconfig pattern.
+; font-0 = "Iosevka Nerd Font:size=10;3"
+; 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 = "Iosevka Nerd Font:size=10;3"
+font-1 = "Iosevka Nerd Font:size=12;3"
+font-2 = "Iosevka Nerd Font:size=6;3"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbrightness
+; modules-right = ipc clock
+
+;; Available modules
+;;
+;alsa brightness battery
+;bspwm cpu date
+;filesystem github i3
+;subscriber demo memory
+;menu-apps mpd wired-network
+;wireless-network network pulseaudio
+;name_you_want temperature my-text-label
+;brightness keyboard title workspaces
+;;
+;; User modules
+;checknetwork updates window_switch launcher powermenu sysmenu menu
+;;
+;; Bars
+;cpu_bar memory_bar filesystem_bar mpd_bar
+;volume brightness battery_bar
+
+modules-left = date sep mpd
+modules-center = mod sep bspwm
+modules-right = volume sep2 bna sep2 battery sep2 network
+
+; The separator will be inserted between the output of each module
+separator =
+
+; This value is used to add extra spacing between elements
+; @deprecated: This parameter will be removed in an upcoming version
+spacing = 0
+
+; 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 = bspwm
+
+; 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
+
+; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
+; Enable pseudo transparency
+; Will automatically be enabled if a fully transparent
+; background color is defined using `tray-background`
+; tray-transparent = false
+
+; 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.ALTBACKGROUND}
+
+; 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 = bspwm
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+; dpi =
+
+; 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 = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+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/dot-config/bspwm/themes/manhattan/polybar/launch.sh b/dot-config/bspwm/themes/manhattan/polybar/launch.sh
new file mode 100755
index 00000000..ae47b54c
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/polybar/launch.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/manhattan/polybar/modules.ini b/dot-config/bspwm/themes/manhattan/polybar/modules.ini
new file mode 100644
index 00000000..e23c5f3e
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/polybar/modules.ini
@@ -0,0 +1,734 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bspwm]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-default = 
+
+format = <label-state>
+format-font = 2
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.RED}
+;label-focused-underline = ${color.RED}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.CYAN}
+;label-occupied-underline = ${color.CYAN}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.GREEN}
+;label-urgent-underline = ${color.GREEN}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = ""
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = [<label-mode>]
+format-background = ${color.BACKGROUND}
+format-foreground = ${color.YELLOW}
+;format-underline = ${color.BACKGROUND}
+;format-overline = ${color.BACKGROUND}
+format-padding = 1
+
+label-monocle = "Monocle"
+label-tiled = "Tiled"
+
+label-floating = ", Float"
+label-pseudotiled = ", Pseudo"
+label-fullscreen = ", Full"
+
+label-locked = " | Locked"
+label-sticky = " | Sticky"
+label-private = " | Private"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/volume]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; 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> <label-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+format-muted-prefix = 婢
+format-muted-prefix-foreground = ${color.ALTFOREGROUND}
+format-muted-font = 2
+label-muted = " Mute"
+label-muted-foreground = ${color.ALTFOREGROUND}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奔
+ramp-volume-2 = 奔
+ramp-volume-3 = 墳
+ramp-volume-4 = 墳
+ramp-volume-foreground = ${color.YELLOW}
+ramp-volume-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-font = 2
+content-prefix-foreground = ${color.RED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_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 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; 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 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = <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>
+
+; 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)
+format-full = <label-full>
+format-full-font = 2
+format-full-prefix = " "
+format-full-prefix-foreground = ${color.GREEN}
+label-full = %percentage%%
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-foreground = ${color.BLUE}
+ramp-capacity-font = 2
+; 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 = 
+animation-charging-foreground = ${color.GREEN}
+animation-charging-font = 2
+; 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 = 
+;;animation-discharging-5 = 
+;;animation-discharging-6 = 
+;;animation-discharging-7 = 
+;;animation-discharging-8 = 
+
+; Framerate in milliseconds
+;animation-discharging-framerate = 500
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+; Seconds to sleep between updates
+interval = 1.0
+
+; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
+; NOTE: if you want to use syntax tags here you need to use %%{...}
+;;date = %Y-%m-%d%
+
+; Optional time format
+time = %I:%M %p
+
+; if `date-alt` or `time-alt` is defined, clicking
+; the module will toggle between formats
+;;date-alt = %A, %d %B %Y
+#time-alt = %d/%m/%Y%
+time-alt = %b %d, %G
+
+; Available tags:
+; <label> (default)
+
+format = <label>
+format-prefix = " "
+format-font = 2
+format-prefix-foreground = ${color.CYAN}
+format-padding = 0
+
+; Available tokens:
+; %date%
+; %time%
+; Default: %date%
+label = %time%
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 127.0.0.1
+;;port = 6600
+;;password = mysecretpassword
+
+; Seconds to sleep between progressbar/song timer sync
+; Default: 1
+interval = 2
+
+; 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-prefix = " "
+format-online-prefix-font = 2
+format-online-prefix-foreground = ${color.MAGENTA}
+;format-online = <label-song> <toggle>
+format-online = <label-song> <icon-prev> <toggle> <icon-next>
+;format-online-font = 2
+
+format-playing = ${self.format-online}
+format-paused = <label-song> <toggle>
+;format-stopped = ${self.format-online}
+
+; Available tags:
+; <label-offline>
+;format-offline = <label-offline>
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = "MPD is offline"
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-play-font = 2
+icon-play-foreground = ${color.GREEN}
+icon-pause = 
+icon-pause-font = 2
+icon-pause-foreground = ${color.YELLOW}
+icon-stop = 
+icon-stop-foreground = ${color.RED}
+icon-prev = 玲
+icon-prev-font = 2
+icon-prev-foreground = ${color.CYAN}
+icon-next = 怜
+icon-next-font = 2
+icon-next-foreground = ${color.CYAN}
+icon-seekb = ⏪
+icon-seekf = ⏩
+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 = #ff
+;;toggle-off-foreground = #55
+
+; Only applies if <bar-progress> is used
+;;bar-progress-width = 45
+;;bar-progress-indicator = |
+;;bar-progress-fill = ─
+;;bar-progress-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; If you use both a wired and a wireless network, Add both modules in config.ini
+[module/ethernet]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <label-connected>
+format-connected-prefix = "歷 "
+format-connected-prefix-foreground = ${color.MAGENTA}
+format-connected-prefix-font = 2
+format-connected-background = ${color.BACKGROUND}
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "轢 "
+format-disconnected-prefix-font = 2
+format-disconnected-prefix-foreground = ${color.ALTFOREGROUND}
+format-disconnected-background = ${color.BACKGROUND}
+
+label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}"
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; Normal Module
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <ramp-signal> <label-connected>
+
+; Available tags:
+; <label-disconnected> (default)
+
+format-disconnected-prefix = "睊 "
+format-disconnected-font = 2
+format-disconnected-prefix-foreground = ${color.ALTFOREGROUND}
+format-disconnected = <label-disconnected>
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+;label-connected = "%essid% %downspeed:8% %upspeed:8%"
+label-connected = "%{A1:nmd &:}%essid%%{A}"
+;;label-connected-foreground = #eefafafa
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+label-disconnected-foreground = ${color.ALTFOREGROUND}
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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-foreground = ${color.MAGENTA}
+ramp-signal-font = 2
+
+; 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/workspaces]
+type = internal/xworkspaces
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = true
+
+; Create click handler used to focus desktop
+; Default: true
+enable-click = true
+
+; Create scroll handlers used to cycle desktops
+; Default: true
+enable-scroll = true
+
+; icon-[0-9]+ = <desktop-name>;<icon>
+; NOTE: The desktop name needs to match the name configured by the WM
+; You can get a list of the defined desktops using:
+; $ xprop -root _NET_DESKTOP_NAMES
+icon-0 = 1;ﱡ
+icon-1 = 2;ﱡ
+icon-2 = 3;ﱡ
+icon-3 = 4;ﱡ
+icon-4 = 5;ﱡ
+icon-default = ﱡ
+
+; Available tags:
+; <label-monitor>
+; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
+; Default: <label-state>
+format = <label-state>
+format-padding = 0
+format-font = 2
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-monitor = %name%
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-active = ﱢ
+label-active-foreground = ${color.RED}
+label-active-background = ${color.BACKGROUND}
+;;label-active-underline = ${color.RED}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-occupied = ﱢ
+label-occupied-foreground = ${color.CYAN}
+label-occupied-background = ${color.BACKGROUND}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-urgent = ﱢ
+label-urgent-foreground = ${color.GREEN}
+label-urgent-background = ${color.BACKGROUND}
+;;label-urgent-underline = ${color.red}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-empty = %icon%
+label-empty-foreground = ${color.CYAN}
+
+label-active-padding = 1
+label-urgent-padding = 1
+label-occupied-padding = 1
+label-empty-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/menu]
+type = custom/text
+
+content = 
+content-font = 2
+content-foreground = ${color.ACCENT}
+content-padding = 0
+
+click-left = ~/.config/bspwm/scripts/rofi_launcher
+click-right = ~/.config/bspwm/scripts/rofi_runner
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sysmenu]
+type = custom/text
+
+content = 
+content-font = 2
+content-foreground = ${color.RED}
+content-padding = 0
+
+click-left = ~/.config/bspwm/scripts/rofi_powermenu
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+content = 
+content-font = 3
+
+content-foreground = ${color.FOREGROUND}
+content-background = ${color.BACKGROUND}
+content-padding = 3
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep2]
+type = custom/text
+content = 
+content-font = 3
+
+content-foreground = ${color.BACKGROUND}
+content-background = ${color.BACKGROUND}
+content-padding = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/manhattan/rofi/askpass.rasi b/dot-config/bspwm/themes/manhattan/rofi/askpass.rasi
new file mode 100644
index 00000000..b3a1e321
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/askpass.rasi
@@ -0,0 +1,75 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @active;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px 15px;
+ border-radius: 0px;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/asroot.rasi b/dot-config/bspwm/themes/manhattan/rofi/asroot.rasi
new file mode 100644
index 00000000..62dbd032
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/asroot.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "listview", "message" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @selected;
+}
+prompt {
+ enabled: true;
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 30px 10px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 28";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/confirm.rasi b/dot-config/bspwm/themes/manhattan/rofi/confirm.rasi
new file mode 100644
index 00000000..9a4b1d0c
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/confirm.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 280px;
+ x-offset: -10px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "listview", "message" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @selected;
+}
+prompt {
+ enabled: true;
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 30px 10px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 28";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/launcher.rasi b/dot-config/bspwm/themes/manhattan/rofi/launcher.rasi
new file mode 100644
index 00000000..75ebb8b8
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/launcher.rasi
@@ -0,0 +1,274 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 10px;
+ y-offset: -48px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ background-color: @background-colour;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 15px;
+ border: 0px 1px 0px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: inherit;
+ text-color: @selected;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 15px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "search...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px 15px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/music.rasi b/dot-config/bspwm/themes/manhattan/rofi/music.rasi
new file mode 100644
index 00000000..92f327d7
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/music.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 10px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "listview", "message" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @selected;
+}
+prompt {
+ enabled: true;
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 30px 10px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 28";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/networkmenu.rasi b/dot-config/bspwm/themes/manhattan/rofi/networkmenu.rasi
new file mode 100644
index 00000000..c4a3061f
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/networkmenu.rasi
@@ -0,0 +1,278 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 500px;
+ height: 500px;
+ x-offset: -10px;
+ y-offset: -48px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ background-color: @background-colour;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 15px;
+ border: 0px 1px 0px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: inherit;
+ text-color: @selected;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "直";
+ padding: 15px 0px 15px 15px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: inherit;
+ text-color: @selected;
+}
+entry {
+ enabled: true;
+ padding: 15px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 13px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/powermenu.rasi b/dot-config/bspwm/themes/manhattan/rofi/powermenu.rasi
new file mode 100644
index 00000000..c8e8e2bc
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/powermenu.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 400px;
+ x-offset: -10px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "listview", "message" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @selected;
+}
+prompt {
+ enabled: true;
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 30px 10px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 28";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/runner.rasi b/dot-config/bspwm/themes/manhattan/rofi/runner.rasi
new file mode 100644
index 00000000..5556debe
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/runner.rasi
@@ -0,0 +1,274 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 10px;
+ y-offset: -48px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ background-color: @background-colour;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 15px;
+ border: 0px 1px 0px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: inherit;
+ text-color: @selected;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 15px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "run...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px 15px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/screenshot.rasi b/dot-config/bspwm/themes/manhattan/rofi/screenshot.rasi
new file mode 100644
index 00000000..c3ca3f07
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/screenshot.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 400px;
+ x-offset: -10px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "listview", "message" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @selected;
+}
+prompt {
+ enabled: true;
+ padding: 5px 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 30px 10px;
+ border: 0px solid;
+ border-radius: 0%;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 28";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/shared/colors.rasi b/dot-config/bspwm/themes/manhattan/rofi/shared/colors.rasi
new file mode 100644
index 00000000..5c981de0
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #1F252B;
+ background-alt: #2a323a;
+ foreground: #F0FBF8;
+ selected: #B4A1DB;
+ active: #74dd91;
+ urgent: #db86ba;
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/manhattan/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..d2af39fe
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/shared/fonts.rasi
@@ -0,0 +1,7 @@
+/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
+
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/themes.rasi b/dot-config/bspwm/themes/manhattan/rofi/themes.rasi
new file mode 100644
index 00000000..26786a7f
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/themes.rasi
@@ -0,0 +1,275 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: -48px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ background-color: @background-colour;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 15px;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 15px;
+ border: 0px 1px 0px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: inherit;
+ text-color: @selected;
+}
+entry {
+ enabled: true;
+ padding: 15px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "run...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 15px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/manhattan/rofi/windows.rasi b/dot-config/bspwm/themes/manhattan/rofi/windows.rasi
new file mode 100644
index 00000000..5c554bb4
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/rofi/windows.rasi
@@ -0,0 +1,274 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 10px;
+ y-offset: -48px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ background-color: @background-colour;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 15px;
+ border: 0px 1px 0px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: inherit;
+ text-color: @selected;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 15px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "filter...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px 15px;
+ border: 0px 0px 1px 0px;
+ border-radius: 0px;
+ border-color: @alternate-background;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/manhattan/theme.bash b/dot-config/bspwm/themes/manhattan/theme.bash
new file mode 100644
index 00000000..c33e443c
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/theme.bash
@@ -0,0 +1,85 @@
+# ------------------------------------------------------------------------------
+# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+#
+# Manhattan Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#282f37'
+foreground='#f1fcf9'
+color0='#20262c'
+color1='#db86ba'
+color2='#74dd91'
+color3='#e49186'
+color4='#75dbe1'
+color5='#b4a1db'
+color6='#9ee9ea'
+color7='#f1fcf9'
+color8='#465463'
+color9='#d04e9d'
+color10='#4bc66d'
+color11='#db695b'
+color12='#3dbac2'
+color13='#825ece'
+color14='#62cdcd'
+color15='#e0e5e5'
+
+element_bg='#1F252B'
+element_fg='#F0FBF8'
+element_hl='#B4A1DB'
+
+light_value='0.05'
+dark_value='0.30'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='Iosevka Nerd Font:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Papirus-Apps'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='manhattan.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Manhattan'
+icon_theme='Luv-Folders-Dark'
+cursor_theme='Vimix-Dark'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='20x20'
+dunst_origin='top-right'
+dunst_font='Iosevka Custom 9'
+dunst_border='2'
+dunst_separator='2'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$element_hl"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='2'
+bspwm_gap='10'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/manhattan/wallpaper b/dot-config/bspwm/themes/manhattan/wallpaper
new file mode 120000
index 00000000..ad1cc74c
--- /dev/null
+++ b/dot-config/bspwm/themes/manhattan/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/manhattan.jpg \ No newline at end of file
diff --git a/dot-config/bspwm/themes/onedark/apply.sh b/dot-config/bspwm/themes/onedark/apply.sh
new file mode 100755
index 00000000..d51dcf30
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/apply.sh
@@ -0,0 +1,278 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
+altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${background}
+ FOREGROUND = ${foreground}
+ ALTBACKGROUND = ${altbackground}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${accent}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${background};
+ background-alt: ${altbackground};
+ foreground: ${foreground};
+ selected: ${accent};
+ active: ${color2};
+ urgent: ${color1};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${background}"
+ foreground = "${color1}"
+ frame_color = "${color1}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/onedark/polybar/.module b/dot-config/bspwm/themes/onedark/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/polybar/.module
diff --git a/dot-config/bspwm/themes/onedark/polybar/colors.ini b/dot-config/bspwm/themes/onedark/polybar/colors.ini
new file mode 100644
index 00000000..89e94e38
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/polybar/colors.ini
@@ -0,0 +1,24 @@
+[color]
+
+BACKGROUND = #1E2128
+FOREGROUND = #ABB2BF
+ALTBACKGROUND = #292d37
+ALTFOREGROUND = #5a6477
+ACCENT = #5294E2
+
+BLACK = #32363D
+RED = #E06B74
+GREEN = #98C379
+YELLOW = #E5C07A
+BLUE = #62AEEF
+MAGENTA = #C778DD
+CYAN = #55B6C2
+WHITE = #ABB2BF
+ALTBLACK = #50545B
+ALTRED = #EA757E
+ALTGREEN = #A2CD83
+ALTYELLOW = #EFCA84
+ALTBLUE = #6CB8F9
+ALTMAGENTA = #D282E7
+ALTCYAN = #5FC0CC
+ALTWHITE = #B5BCC9
diff --git a/dot-config/bspwm/themes/onedark/polybar/config.ini b/dot-config/bspwm/themes/onedark/polybar/config.ini
new file mode 100644
index 00000000..bf9b0558
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/polybar/config.ini
@@ -0,0 +1,318 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; 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 = ../../system.ini
+include-file = ./colors.ini
+include-file = ./modules.ini
+include-file = ./decor.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 = ${env: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 = 26
+
+; 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 = 2
+line-color = ${color.ACCENT}
+
+; 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-size = 6
+border-color = ${color.BACKGROUND}
+
+; Number of spaces to add at the beginning/end of the bar
+; Individual side values can be defined using:
+; padding-{left,right}
+padding = 0
+
+; Number of spaces to add before/after each module
+; Individual side values can be defined using:
+; module-margin-{left,right}
+module-margin-left = 0
+module-margin-right = 0
+
+; Fonts are defined using <font-name>;<vertical-offset>
+; Font names are specified using a fontconfig pattern.
+; font-0 = "JetBrains Mono:size=10;3"
+; font-1 = MaterialIcons:size=10
+; font-2 = Termsynu:size=8;-1
+; font-3 = FontAwesome:size=10
+; See the Fonts wiki page for more details
+
+; text
+font-0 = "JetBrains Mono:size=10;3"
+; icons
+font-1 = "Iosevka Nerd Font:size=12;3"
+; glyphs
+font-2 = "Iosevka Nerd Font:size=15;4"
+; dot
+font-3 = "Iosevka Nerd Font:size=10;4"
+; clock & mpd
+font-4 = "Iosevka:style=bold:size=10;4"
+; Archcraft
+font-5 = "archcraft:size=12;3"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbrightness
+; modules-right = ipc clock
+
+# Default
+modules-left = LD menu RD dot-alt LD mod RD dot LD bspwm RD dot cpu dot used-memory
+modules-center = LD date RD dot-alt LD mpd RD sep song
+modules-right = volume dot bna dot network dot LD battery RD dot-alt LD sysmenu RD
+
+# Alternate
+;modules-left = openbox 2LD cpu 3LD memory 4LD filesystem 5LD
+;modules-center = mpd
+;modules-right = 2RD volume 3RD brightness 4RD battery 5RD network 6RD date sep
+
+; The separator will be inserted between the output of each module
+separator =
+
+; This value is used to add extra spacing between elements
+; @deprecated: This parameter will be removed in an upcoming version
+spacing = 0
+
+; 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 = bspwm
+
+; 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 = right
+
+; If true, the bar will not shift its
+; contents when the tray changes
+tray-detached = false
+
+; Tray icon max size
+tray-maxsize = 16
+
+; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
+; Enable pseudo transparency
+; Will automatically be enabled if a fully transparent
+; background color is defined using `tray-background`
+; tray-transparent = false
+
+; 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 = bspwm
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+; dpi =
+
+; 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 = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+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/dot-config/bspwm/themes/onedark/polybar/decor.ini b/dot-config/bspwm/themes/onedark/polybar/decor.ini
new file mode 100644
index 00000000..ff3b82f3
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/polybar/decor.ini
@@ -0,0 +1,43 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; DECOR _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+content = -
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.BACKGROUND}
+
+[module/dot]
+type = custom/text
+content = 
+content-foreground = ${color.ALTBACKGROUND}
+content-padding = 1
+content-font = 4
+
+[module/dot-alt]
+inherit = module/dot
+content-foreground = ${color.ALTFOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/LD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.ALTBACKGROUND}
+
+[module/RD]
+type = custom/text
+content = "%{T3}%{T-}"
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/onedark/polybar/launch.sh b/dot-config/bspwm/themes/onedark/polybar/launch.sh
new file mode 100755
index 00000000..ae47b54c
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/polybar/launch.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/onedark/polybar/modules.ini b/dot-config/bspwm/themes/onedark/polybar/modules.ini
new file mode 100644
index 00000000..82bdee86
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/polybar/modules.ini
@@ -0,0 +1,1061 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bspwm]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-default = 
+
+format = <label-state>
+format-background = ${color.ALTBACKGROUND}
+format-font = 1
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.GREEN}
+label-focused-underline = ${color.GREEN}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.ACCENT}
+;label-occupied-underline = ${color.ACCENT}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.RED}
+label-urgent-underline = ${color.RED}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = ""
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = <label-mode>
+format-background = ${color.ALTBACKGROUND}
+format-foreground = ${color.YELLOW}
+format-padding = 0
+
+label-monocle = "Monocle"
+label-tiled = "Tiled"
+
+label-floating = ", Float"
+label-pseudotiled = ", Pseudo"
+label-fullscreen = ", Full"
+
+label-locked = " | Locked"
+label-sticky = " | Sticky"
+label-private = " | Private"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-font = 2
+content-prefix-foreground = ${color.RED}
+content-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_backlight
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <ramp> <label>
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <ramp> <label>
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = <animation-charging> <label-charging>
+format-charging-prefix = " "
+format-charging-prefix-font = 1
+format-charging-prefix-foreground = ${color.RED}
+format-charging-background = ${color.ALTBACKGROUND}
+
+; Available tags:
+; <label-discharging> (default)
+; <bar-capacity>
+; <ramp-capacity>
+; <animation-discharging>
+format-discharging = <ramp-capacity> <label-discharging>
+format-discharging-background = ${color.ALTBACKGROUND}
+
+; Available tags:
+; <label-full> (default)
+; <bar-capacity>
+; <ramp-capacity>
+;format-full = <ramp-capacity> <label-full>
+
+; 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)
+format-full = <label-full>
+format-full-prefix = " "
+format-full-prefix-font = 2
+format-full-prefix-foreground = ${color.GREEN}
+format-full-background = ${color.ALTBACKGROUND}
+label-full = %percentage%%
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-foreground = ${color.YELLOW}
+ramp-capacity-font = 2
+
+; Only applies if <animation-charging> is used
+animation-charging-0 = 
+animation-charging-1 = 
+animation-charging-2 = 
+animation-charging-3 = 
+animation-charging-4 = 
+animation-charging-foreground = ${color.GREEN}
+animation-charging-font = 2
+animation-charging-framerate = 700
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/cpu]
+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 = <label>
+format-prefix = 
+format-prefix-font = 2
+format-prefix-foreground = ${color.YELLOW}
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+; 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%%"
+
+; Spacing between individual per-core ramps
+;;ramp-coreload-spacing = 1
+;;ramp-coreload-0 = 
+;;ramp-coreload-1 = 
+;;ramp-coreload-2 = 
+;;ramp-coreload-3 = 
+;;ramp-coreload-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+; Seconds to sleep between updates
+interval = 1.0
+
+; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
+; NOTE: if you want to use syntax tags here you need to use %%{...}
+;;date = %Y-%m-%d%
+
+; Optional time format
+time = %I:%M %p
+
+; if `date-alt` or `time-alt` is defined, clicking
+; the module will toggle between formats
+;;date-alt = %A, %d %B %Y
+#time-alt = %d/%m/%Y%
+time-alt = %A %b %d, %G
+
+; Available tags:
+; <label> (default)
+
+format = <label>
+format-prefix = " "
+format-prefix-font = 2
+format-prefix-foreground = ${color.RED}
+format-background = ${color.ALTBACKGROUND}
+
+; Available tokens:
+; %date%
+; %time%
+; Default: %date%
+label = %time%
+label-font = 5
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/filesystem]
+type = internal/fs
+
+; Mountpoints to display
+mount-0 = /
+;;mount-1 = /home
+;;mount-2 = /var
+
+; Seconds to sleep between updates
+; Default: 30
+interval = 10
+
+; Display fixed precision values
+; Default: false
+fixed-values = true
+
+; Spacing between entries
+; Default: 2
+;;spacing = 4
+
+; Available tags:
+; <label-mounted> (default)
+; <bar-free>
+; <bar-used>
+; <ramp-capacity>
+format-mounted = <label-mounted>
+format-mounted-background = ${color.BACKGROUND}
+format-mounted-padding = 1
+
+format-mounted-prefix = 
+format-mounted-prefix-font = 2
+format-mounted-prefix-foreground = ${color.MAGENTA}
+
+; Available tags:
+; <label-unmounted> (default)
+format-unmounted = <label-unmounted>
+format-unmounted-background = ${color.BACKGROUND}
+format-unmounted-padding = 1
+
+format-unmounted-prefix = 
+format-unmounted-prefix-font = 2
+format-unmounted-prefix-foreground = ${color.RED}
+
+; Available tokens:
+; %mountpoint%
+; %type%
+; %fsname%
+; %percentage_free%
+; %percentage_used%
+; %total%
+; %free%
+; %used%
+; Default: %mountpoint% %percentage_free%%
+label-mounted = " %free%"
+
+; Available tokens:
+; %mountpoint%
+; Default: %mountpoint% is not mounted
+label-unmounted = " %mountpoint%: NM"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/memory]
+type = internal/memory
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 3
+
+; 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 = <label>
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+format-prefix = 
+format-prefix-font = 2
+format-prefix-foreground = ${color.CYAN}
+
+; 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 <ramp-used> is used
+;;ramp-used-0 = 
+;;ramp-used-1 = 
+;;ramp-used-2 = 
+;;ramp-used-3 = 
+;;ramp-used-4 = 
+
+; Only applies if <ramp-free> is used
+;;ramp-free-0 = 
+;;ramp-free-1 = 
+;;ramp-free-2 = 
+;;ramp-free-3 = 
+;;ramp-free-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/used-memory]
+type = custom/script
+
+exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3
+
+tail = true
+interval = 5
+
+format = <label>
+format-background = ${color.BACKGROUND}
+format-padding = 1
+
+format-prefix = 
+format-prefix-font = 2
+format-prefix-foreground = ${color.CYAN}
+
+label = " %output% MB"
+
+click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" &
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 127.0.0.1
+;;port = 6600
+;;password = mysecretpassword
+
+; Seconds to sleep between progressbar/song timer sync
+; Default: 1
+interval = 2
+
+; 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> <toggle> <icon-next>
+;;format-online-prefix = " "
+;;format-online-prefix-font = 2
+;;format-online-prefix-foreground = ${color.GREEN}
+format-online-background = ${color.ALTBACKGROUND}
+
+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-background = ${color.ALTBACKGROUND}
+
+; 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%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = ""
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-play-font = 2
+icon-play-foreground = ${color.GREEN}
+icon-pause = 
+icon-pause-font = 2
+icon-pause-foreground = ${color.YELLOW}
+icon-stop = 
+icon-stop-foreground = ${color.RED}
+icon-prev = 玲
+icon-prev-font = 1
+icon-prev-foreground = ${color.BLUE}
+icon-next = 怜
+icon-next-font = 1
+icon-next-foreground = ${color.BLUE}
+
+; Used to display the state of random/repeat/repeatone/single
+; Only applies if <icon-[random|repeat|repeatone|single]> is used
+;;toggle-on-foreground = #ff
+;;toggle-off-foreground = #55
+
+;;-----------
+
+[module/song]
+type = internal/mpd
+
+interval = 2
+
+format-online = <label-song>
+format-online-font = 5
+format-offline = <label-offline>
+format-offline-font = 5
+
+format-playing = ${self.format-online}
+format-paused = "${self.format-online}"
+format-stopped = ""
+
+label-offline = "Offline"
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; If you use both a wired and a wireless network, Add both modules in config.ini
+[module/ethernet]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <label-connected>
+format-connected-prefix = "歷 "
+format-connected-prefix-foreground = ${color.MAGENTA}
+format-connected-prefix-font = 2
+format-connected-background = ${color.BACKGROUND}
+format-connected-padding = 1
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "轢 "
+format-disconnected-prefix-font = 2
+format-disconnected-foreground = ${color.ALTFOREGROUND}
+format-disconnected-background = ${color.BACKGROUND}
+format-disconnected-padding = 1
+
+label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}"
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <ramp-signal> <label-connected>
+format-connected-background = ${color.BACKGROUND}
+format-connected-padding = 1
+
+; Available tags:
+; <label-disconnected> (default)
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "睊 "
+format-disconnected-prefix-font = 2
+format-disconnected-foreground = ${color.ALTFOREGROUND}
+format-disconnected-background = ${color.BACKGROUND}
+format-disconnected-padding = 1
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+;label-connected = "%essid%  %downspeed%"
+label-connected = "%{A1:nmd &:}%essid%%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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-foreground = ${color.MAGENTA}
+ramp-signal-font = 2
+
+; 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/volume]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; 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>
+format-volume-background = ${color.BACKGROUND}
+format-volume-padding = 1
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+format-muted-prefix = 婢
+format-muted-prefix-font = 2
+format-muted-prefix-foreground = ${color.ALTFOREGROUND}
+format-muted-background = ${color.BACKGROUND}
+format-muted-padding = 1
+
+; Available tokens:
+; %percentage% (default)
+;label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default)
+label-muted = " Mute"
+label-muted-foreground = ${color.ALTFOREGROUND}
+
+; Only applies if <bar-volume> is used
+bar-volume-width = 10
+bar-volume-gradient = false
+
+bar-volume-indicator = 雷
+bar-volume-indicator-font = 2
+bar-volume-indicator-foreground = ${color.BLUE}
+
+bar-volume-fill = 絛
+bar-volume-fill-font = 3
+bar-volume-foreground-0 = ${color.BLUE}
+bar-volume-foreground-1 = ${color.BLUE}
+bar-volume-foreground-2 = ${color.BLUE}
+bar-volume-foreground-3 = ${color.BLUE}
+bar-volume-foreground-4 = ${color.BLUE}
+
+bar-volume-empty = 絛
+bar-volume-empty-font = 3
+bar-volume-empty-foreground = ${color.ALTBACKGROUND}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+ramp-volume-font = 2
+ramp-volume-foreground = ${color.BLUE}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/temperature]
+type = internal/temperature
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 0.5
+
+; 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/hwmon2/temp1_input
+
+; Threshold temperature to display warning label (in degrees celsius)
+; Default: 80
+warn-temperature = 60
+
+; Whether or not to show units next to the temperature tokens (°C, °F)
+; Default: true
+units = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+format = <ramp> <label>
+
+; Available tags:
+; <label-warn> (default)
+; <ramp>
+format-warn = <ramp> <label-warn>
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label = %temperature-c%
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label-warn = "%temperature-c%"
+label-warn-foreground = ${color.RED}
+
+; Requires the <ramp> tag
+; The icon selection will range from 0 to `warn-temperature`
+; with the current temperature as index.
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.YELLOW}
+;;ramp-foreground = #55
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/keyboard]
+type = internal/xkeyboard
+
+; List of indicators to ignore
+;blacklist-0 = num lock
+blacklist-1 = scroll lock
+
+; Available tags:
+; <label-layout> (default)
+; <label-indicator> (default)
+format = <label-layout> <label-indicator>
+format-prefix = " "
+format-prefix-font = 2
+format-prefix-foreground = ${color.MAGENTA}
+;;format-spacing = 0
+
+; Available tokens:
+; %layout%
+; %name%
+; %number%
+; Default: %layout%
+label-layout = %name%
+;;label-layout-padding = 2
+;;label-layout-background = #bc99ed
+;;label-layout-foreground = #000
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-indicator-on = " %name%"
+;;label-indicator-padding = 2
+label-indicator-on-foreground = ${color.BLUE}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/title]
+type = internal/xwindow
+
+; Available tags:
+; <label> (default)
+format = <label>
+format-prefix = " "
+format-prefix-font = 2
+format-prefix-foreground = ${color.BLUE}
+format-background = ${color.ALTBACKGROUND}
+
+; Available tokens:
+; %title%
+; Default: %title%
+label = %title%
+label-maxlen = 25
+
+; Used instead of label when there is no window title
+; Available tokens:
+; None
+label-empty = Desktop
+;label-empty-foreground = ${color.ALTBLACK}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/openbox]
+type = internal/xworkspaces
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = true
+
+; Create click handler used to focus desktop
+; Default: true
+enable-click = true
+
+; Create scroll handlers used to cycle desktops
+; Default: true
+enable-scroll = true
+
+; icon-[0-9]+ = <desktop-name>;<icon>
+; NOTE: The desktop name needs to match the name configured by the WM
+; You can get a list of the defined desktops using:
+; $ xprop -root _NET_DESKTOP_NAMES
+icon-0 = 1;
+icon-1 = 2;
+icon-2 = 3;
+icon-3 = 4;
+icon-4 = 5;漣
+icon-default = 
+
+; Available tags:
+; <label-monitor>
+; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
+; Default: <label-state>
+format = <label-state>
+format-background = ${color.ALTBACKGROUND}
+format-font = 2
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-monitor = %name%
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-active = ﱣ
+label-active-foreground = ${color.GREEN}
+;;label-active-underline = ${color.ALTBLACK}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-occupied = 綠
+label-occupied-foreground = ${color.ACCENT}
+;;label-occupied-underline = ${color.ALTBLACK}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-urgent = ﱣ
+label-urgent-foreground = ${color.RED}
+;;label-urgent-underline = ${color.ALTBLACK}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-empty = 祿
+label-empty-foreground = ${color.ACCENT}
+
+label-active-padding = 1
+label-urgent-padding = 1
+label-occupied-padding = 1
+label-empty-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/menu]
+type = custom/text
+
+content = 
+content-font = 6
+content-background = ${color.ALTBACKGROUND}
+content-foreground = ${color.GREEN}
+content-padding = 0
+
+click-left = ~/.config/bspwm/scripts/rofi_launcher
+click-right = ~/.config/bspwm/scripts/rofi_runner
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sysmenu]
+type = custom/text
+
+content = 襤
+content-font = 2
+content-background = ${color.ALTBACKGROUND}
+content-foreground = ${color.RED}
+content-padding = 0
+
+click-left = ~/.config/bspwm/scripts/rofi_powermenu
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/onedark/rofi/askpass.rasi b/dot-config/bspwm/themes/onedark/rofi/askpass.rasi
new file mode 100644
index 00000000..8fc1dacf
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/askpass.rasi
@@ -0,0 +1,75 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 100%;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 15px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px 15px;
+ border-radius: 15px;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/asroot.rasi b/dot-config/bspwm/themes/onedark/rofi/asroot.rasi
new file mode 100644
index 00000000..53b979bb
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/asroot.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 100%;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 5;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 22px 10px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/confirm.rasi b/dot-config/bspwm/themes/onedark/rofi/confirm.rasi
new file mode 100644
index 00000000..bfa3257f
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/confirm.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 300px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 100%;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 5px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/launcher.rasi b/dot-config/bspwm/themes/onedark/rofi/launcher.rasi
new file mode 100644
index 00000000..be1d92ea
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/launcher.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry", "mode-switcher" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 8px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 8px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: true;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 12px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/music.rasi b/dot-config/bspwm/themes/onedark/rofi/music.rasi
new file mode 100644
index 00000000..4016ec4d
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/music.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 100%;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 6;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 22px 10px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/networkmenu.rasi b/dot-config/bspwm/themes/onedark/rofi/networkmenu.rasi
new file mode 100644
index 00000000..0627ba07
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/networkmenu.rasi
@@ -0,0 +1,300 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ height: 490px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 8px 12px;
+ border-radius: 100%;
+ background-color: @selected;
+ text-color: @background;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 8px 11.5px;
+ border-radius: 100%;
+ expand: false;
+ str: "直";
+ background-color: @active;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 8px 12px;
+ border-radius: 100%;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: true;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 5px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/powermenu.rasi b/dot-config/bspwm/themes/onedark/rofi/powermenu.rasi
new file mode 100644
index 00000000..41f0a3d8
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/powermenu.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 100%;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 6;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 22px 10px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/runner.rasi b/dot-config/bspwm/themes/onedark/rofi/runner.rasi
new file mode 100644
index 00000000..dba04bc4
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/runner.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Run...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 5px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/screenshot.rasi b/dot-config/bspwm/themes/onedark/rofi/screenshot.rasi
new file mode 100644
index 00000000..9c599d0d
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/screenshot.rasi
@@ -0,0 +1,148 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=YES
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 12px;
+ border-radius: 100%;
+ background-color: @active;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @selected;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 5;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 22px 10px;
+ border: 0px solid;
+ border-radius: 12px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ font: "feather 20";
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/shared/colors.rasi b/dot-config/bspwm/themes/onedark/rofi/shared/colors.rasi
new file mode 100644
index 00000000..0f66fa6c
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #1E2128;
+ background-alt: #292d37;
+ foreground: #ABB2BF;
+ selected: #5294E2;
+ active: #98C379;
+ urgent: #E06B74;
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/onedark/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..d2af39fe
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/shared/fonts.rasi
@@ -0,0 +1,7 @@
+/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
+
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/themes.rasi b/dot-config/bspwm/themes/onedark/rofi/themes.rasi
new file mode 100644
index 00000000..c5fdc74b
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/themes.rasi
@@ -0,0 +1,299 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 8px 12px;
+ border-radius: 100%;
+ background-color: @selected;
+ text-color: @background;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 8px 11.5px;
+ border-radius: 100%;
+ expand: false;
+ str: "";
+ background-color: @active;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 8px 12px;
+ border-radius: 100%;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: true;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 0px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 5px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/onedark/rofi/windows.rasi b/dot-config/bspwm/themes/onedark/rofi/windows.rasi
new file mode 100644
index 00000000..b4beca52
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/rofi/windows.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 600px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 5px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 8px 10px;
+ border: 0px solid;
+ border-radius: 8px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/onedark/theme.bash b/dot-config/bspwm/themes/onedark/theme.bash
new file mode 100644
index 00000000..de027d94
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/theme.bash
@@ -0,0 +1,82 @@
+# ------------------------------------------------------------------------------
+# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+#
+# Onedark Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#1E2128'
+foreground='#ABB2BF'
+color0='#32363D'
+color1='#E06B74'
+color2='#98C379'
+color3='#E5C07A'
+color4='#62AEEF'
+color5='#C778DD'
+color6='#55B6C2'
+color7='#ABB2BF'
+color8='#50545B'
+color9='#EA757E'
+color10='#A2CD83'
+color11='#EFCA84'
+color12='#6CB8F9'
+color13='#D282E7'
+color14='#5FC0CC'
+color15='#B5BCC9'
+
+accent='#5294E2'
+light_value='0.05'
+dark_value='0.30'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='JetBrains Mono:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Zafiro'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='arc.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Arc-Dark'
+icon_theme='Zafiro'
+cursor_theme='Qogirr'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='10x48'
+dunst_origin='top-right'
+dunst_font='JetBrains Mono 10'
+dunst_border='2'
+dunst_separator='2'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$accent"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='2'
+bspwm_gap='10'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/onedark/wallpaper b/dot-config/bspwm/themes/onedark/wallpaper
new file mode 120000
index 00000000..a7f85747
--- /dev/null
+++ b/dot-config/bspwm/themes/onedark/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/default.jpg \ No newline at end of file
diff --git a/dot-config/bspwm/themes/polybar.sh b/dot-config/bspwm/themes/polybar.sh
new file mode 100755
index 00000000..372e0b1f
--- /dev/null
+++ b/dot-config/bspwm/themes/polybar.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+## Files and Directories
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+SFILE="$DIR/system.ini"
+RFILE="$DIR/.system"
+STYLE="default"
+
+## Get system variable values for various modules
+get_values() {
+ CARD=$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)
+ BATTERY=$(upower -i `upower -e | grep 'BAT'` | grep 'native-path' | cut -d':' -f2 | tr -d '[:blank:]')
+ ADAPTER=$(upower -i `upower -e | grep 'AC'` | grep 'native-path' | cut -d':' -f2 | tr -d '[:blank:]')
+ INTERFACE=$(ip link | awk '/state UP/ {print $2}' | tr -d :)
+}
+
+## Write values to `system.ini` file
+set_values() {
+ if [[ "$ADAPTER" ]]; then
+ sed -i -e "s/sys_adapter = .*/sys_adapter = $ADAPTER/g" ${SFILE}
+ fi
+ if [[ "$BATTERY" ]]; then
+ sed -i -e "s/sys_battery = .*/sys_battery = $BATTERY/g" ${SFILE}
+ fi
+ if [[ "$CARD" ]]; then
+ sed -i -e "s/sys_graphics_card = .*/sys_graphics_card = $CARD/g" ${SFILE}
+ fi
+ if [[ "$INTERFACE" ]]; then
+ sed -i -e "s/sys_network_interface = .*/sys_network_interface = $INTERFACE/g" ${SFILE}
+ fi
+}
+
+## Launch Polybar with selected style
+launch_bar() {
+ bash "$HOME"/.config/bspwm/themes/"$STYLE"/polybar/launch.sh
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ get_values
+ set_values
+ touch ${RFILE}
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/slime/apply.sh b/dot-config/bspwm/themes/slime/apply.sh
new file mode 100755
index 00000000..ac9ffcb2
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/apply.sh
@@ -0,0 +1,278 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $background | pastel darken $dark_value | pastel format hex`"
+altforeground="`pastel color $foreground | pastel lighten $light_value | pastel format hex`"
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${background}
+ FOREGROUND = ${foreground}
+ ALTBACKGROUND = ${altbackground}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${accent}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${background};
+ background-alt: ${altbackground};
+ foreground: ${foreground};
+ selected: ${accent};
+ active: ${color2};
+ urgent: ${color1};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${background}"
+ foreground = "${foreground}"
+ frame_color = "${altbackground}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${background}"
+ foreground = "${color1}"
+ frame_color = "${color1}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/slime/polybar/.module b/dot-config/bspwm/themes/slime/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/polybar/.module
diff --git a/dot-config/bspwm/themes/slime/polybar/bars.ini b/dot-config/bspwm/themes/slime/polybar/bars.ini
new file mode 100644
index 00000000..cf0439a7
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/polybar/bars.ini
@@ -0,0 +1,645 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/volume-bar]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; Interval for volume increase/decrease (in percent points)
+; Default: 5
+interval = 5
+
+; Available tags:
+; <label-volume> (default)
+; <ramp-volume>
+; <bar-volume>
+format-volume = <label-volume> <bar-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+
+; Available tokens:
+; %percentage% (default)
+label-volume = 墳
+label-volume-foreground = ${color.FOREGROUND}
+
+; Available tokens:
+; %percentage% (default
+format-muted-prefix = 婢
+label-muted = " MUTE"
+label-muted-foreground = ${color.RED}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+
+; Only applies if <bar-volume> is used
+bar-volume-width = 10
+bar-volume-gradient = false
+
+bar-volume-indicator =
+bar-volume-indicator-foreground = ${color.ACCENT}
+bar-volume-indicator-font = 2
+
+bar-volume-fill = 
+bar-volume-foreground-0 = ${color.GREEN}
+bar-volume-foreground-1 = ${color.GREEN}
+bar-volume-foreground-2 = ${color.YELLOW}
+bar-volume-foreground-3 = ${color.RED}
+bar-volume-fill-font = 2
+
+bar-volume-empty = 
+bar-volume-empty-foreground = ${color.ALTBACKGROUND}
+bar-volume-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna-bar]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-foreground = ${color.FOREGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight-bar]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_backlight
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <label> <bar>
+
+; Available tokens:
+; %percentage% (default)
+label = 
+label-foreground = ${color.FOREGROUND}
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+
+;; Other Icons
+;
+
+; Only applies if <bar> is used
+bar-width = 10
+bar-gradient = false
+
+bar-indicator =
+bar-indicator-foreground = ${color.ACCENT}
+bar-indicator-font = 2
+
+bar-fill = 
+bar-foreground-0 = ${color.GREEN}
+bar-foreground-1 = ${color.GREEN}
+bar-foreground-2 = ${color.GREEN}
+bar-foreground-3 = ${color.GREEN}
+bar-foreground-4 = ${color.GREEN}
+bar-foreground-5 = ${color.YELLOW}
+bar-foreground-6 = ${color.YELLOW}
+bar-foreground-7 = ${color.YELLOW}
+bar-foreground-8 = ${color.RED}
+bar-foreground-9 = ${color.RED}
+bar-fill-font = 2
+
+bar-empty = 
+bar-empty-foreground = ${color.ALTBACKGROUND}
+bar-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness-bar]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <label> <bar>
+
+; Available tokens:
+; %percentage% (default)
+label = 
+label-foreground = ${color.FOREGROUND}
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+
+;; Other Icons
+;
+
+; Only applies if <bar> is used
+bar-width = 10
+bar-gradient = false
+
+bar-indicator =
+bar-indicator-foreground = ${color.ACCENT}
+bar-indicator-font = 2
+
+bar-fill = 
+bar-foreground-0 = ${color.GREEN}
+bar-foreground-1 = ${color.GREEN}
+bar-foreground-2 = ${color.GREEN}
+bar-foreground-3 = ${color.GREEN}
+bar-foreground-4 = ${color.GREEN}
+bar-foreground-5 = ${color.YELLOW}
+bar-foreground-6 = ${color.YELLOW}
+bar-foreground-7 = ${color.YELLOW}
+bar-foreground-8 = ${color.RED}
+bar-foreground-9 = ${color.RED}
+bar-fill-font = 2
+
+bar-empty = 
+bar-empty-foreground = ${color.ALTBACKGROUND}
+bar-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = ${system.battery}
+adapter = ${system.adapter}
+
+; 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 = " "
+
+; Available tags:
+; <label-discharging> (default)
+; <bar-capacity>
+; <ramp-capacity>
+; <animation-discharging>
+format-discharging = <bar-capacity>
+format-discharging-prefix = " "
+
+; Available tags:
+; <label-full> (default)
+; <bar-capacity>
+; <ramp-capacity>
+format-full = <bar-capacity> <label-full>
+format-full-prefix = " "
+
+; 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 = %percentage%%
+
+; Only applies if <bar-capacity> is used
+bar-capacity-width = 10
+bar-capacity-gradient = false
+
+bar-capacity-indicator =
+bar-capacity-indicator-foreground = ${color.ACCENT}
+bar-capacity-indicator-font = 2
+
+bar-capacity-fill = 
+bar-capacity-foreground-0 = ${color.RED}
+bar-capacity-foreground-1 = ${color.RED}
+bar-capacity-foreground-2 = ${color.RED}
+bar-capacity-foreground-3 = ${color.YELLOW}
+bar-capacity-foreground-4 = ${color.YELLOW}
+bar-capacity-foreground-5 = ${color.YELLOW}
+bar-capacity-foreground-6 = ${color.YELLOW}
+bar-capacity-foreground-7 = ${color.GREEN}
+bar-capacity-foreground-8 = ${color.GREEN}
+bar-capacity-fill-font = 2
+
+bar-capacity-empty = 
+bar-capacity-empty-foreground = ${color.ALTBACKGROUND}
+bar-capacity-empty-font = 2
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-5 = 
+ramp-capacity-6 = 
+ramp-capacity-7 = 
+ramp-capacity-8 = 
+ramp-capacity-9 = 
+
+; Only applies if <animation-charging> is used
+animation-charging-0 = 
+animation-charging-1 = 
+animation-charging-2 = 
+animation-charging-3 = 
+animation-charging-4 = 
+animation-charging-5 = 
+animation-charging-6 = 
+animation-charging-7 = 
+animation-charging-8 = 
+
+; 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 = 
+;;animation-discharging-5 = 
+;;animation-discharging-6 = 
+;;animation-discharging-7 = 
+;;animation-discharging-8 = 
+
+; Framerate in milliseconds
+;animation-discharging-framerate = 500
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = " "
+
+; 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-width = 10
+bar-load-gradient = false
+
+bar-load-indicator =
+bar-load-indicator-foreground = ${color.ACCENT}
+bar-load-indicator-font = 2
+
+bar-load-fill = 
+bar-load-foreground-0 = ${color.GREEN}
+bar-load-foreground-1 = ${color.GREEN}
+bar-load-foreground-2 = ${color.GREEN}
+bar-load-foreground-3 = ${color.YELLOW}
+bar-load-foreground-4 = ${color.YELLOW}
+bar-load-foreground-5 = ${color.YELLOW}
+bar-load-foreground-6 = ${color.RED}
+bar-load-foreground-7 = ${color.RED}
+bar-load-foreground-8 = ${color.RED}
+bar-load-fill-font = 2
+
+bar-load-empty = 
+bar-load-empty-foreground = ${color.ALTBACKGROUND}
+bar-load-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 10
+
+; 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 = " "
+
+; Available tags:
+; <label-unmounted> (default)
+;;format-unmounted = <label-unmounted>
+;;format-unmounted-prefix = 
+
+; 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-width = 10
+bar-used-gradient = false
+
+bar-used-indicator =
+bar-used-indicator-foreground = ${color.ACCENT}
+bar-used-indicator-font = 2
+
+bar-used-fill = 
+bar-used-foreground-0 = ${color.GREEN}
+bar-used-foreground-1 = ${color.GREEN}
+bar-used-foreground-2 = ${color.GREEN}
+bar-used-foreground-3 = ${color.GREEN}
+bar-used-foreground-4 = ${color.GREEN}
+bar-used-foreground-5 = ${color.YELLOW}
+bar-used-foreground-6 = ${color.YELLOW}
+bar-used-foreground-7 = ${color.RED}
+bar-used-foreground-8 = ${color.RED}
+bar-used-fill-font = 2
+
+bar-used-empty = 
+bar-used-empty-foreground = ${color.ALTBACKGROUND}
+bar-used-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = " "
+
+; 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-width = 10
+bar-used-gradient = false
+
+bar-used-indicator =
+bar-used-indicator-foreground = ${color.ACCENT}
+bar-used-indicator-font = 2
+
+bar-used-fill = 
+bar-used-foreground-0 = ${color.GREEN}
+bar-used-foreground-1 = ${color.GREEN}
+bar-used-foreground-2 = ${color.GREEN}
+bar-used-foreground-3 = ${color.YELLOW}
+bar-used-foreground-4 = ${color.YELLOW}
+bar-used-foreground-5 = ${color.YELLOW}
+bar-used-foreground-6 = ${color.RED}
+bar-used-foreground-7 = ${color.RED}
+bar-used-foreground-8 = ${color.RED}
+bar-used-fill-font = 2
+
+bar-used-empty = 
+bar-used-empty-foreground = ${color.ALTBACKGROUND}
+bar-used-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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-playing = ${self.format-online}
+;format-paused = ${self.format-online}
+;format-stopped = ${self.format-online}
+
+; Available tags:
+; <label-offline>
+;format-offline = <label-offline>
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = "mpd is offline"
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-pause = 
+icon-stop = 
+icon-prev = 
+icon-next = 
+icon-seekb = ⏪
+icon-seekf = ⏩
+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 = #ff
+;;toggle-off-foreground = #55
+
+; Only applies if <bar-progress> is used
+bar-progress-width = 10
+bar-progress-gradient = true
+
+bar-progress-indicator =
+bar-progress-indicator-foreground = ${color.ACCENT}
+bar-progress-indicator-font = 2
+
+bar-progress-fill = 
+bar-progress-foreground-0 = ${color.GREEN}
+bar-progress-foreground-1 = ${color.GREEN}
+bar-progress-foreground-2 = ${color.GREEN}
+bar-progress-foreground-3 = ${color.YELLOW}
+bar-progress-foreground-4 = ${color.YELLOW}
+bar-progress-foreground-5 = ${color.YELLOW}
+bar-progress-foreground-6 = ${color.RED}
+bar-progress-foreground-7 = ${color.RED}
+bar-progress-foreground-8 = ${color.RED}
+bar-progress-fill-font = 2
+
+bar-progress-empty = 
+bar-progress-empty-foreground = ${color.ALTBACKGROUND}
+bar-progress-empty-font = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/slime/polybar/colors.ini b/dot-config/bspwm/themes/slime/polybar/colors.ini
new file mode 100644
index 00000000..f0144f93
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/polybar/colors.ini
@@ -0,0 +1,24 @@
+[color]
+
+BACKGROUND = #ffffff
+FOREGROUND = #383a42
+ALTBACKGROUND = #e6e6e6
+ALTFOREGROUND = #9b9eaa
+ACCENT = #0997B3
+
+BLACK = #383a42
+RED = #e45649
+GREEN = #50a14f
+YELLOW = #c18401
+BLUE = #0184bc
+MAGENTA = #a626a4
+CYAN = #0997b3
+WHITE = #909090
+ALTBLACK = #383a42
+ALTRED = #e45649
+ALTGREEN = #50a14f
+ALTYELLOW = #c18401
+ALTBLUE = #0184bc
+ALTMAGENTA = #a626a4
+ALTCYAN = #0997b3
+ALTWHITE = #909090
diff --git a/dot-config/bspwm/themes/slime/polybar/config.ini b/dot-config/bspwm/themes/slime/polybar/config.ini
new file mode 100644
index 00000000..7d58dd31
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/polybar/config.ini
@@ -0,0 +1,319 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; 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 = ../../system.ini
+include-file = ./colors.ini
+include-file = ./modules.ini
+include-file = ./bars.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 = ${env: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.ACCENT}
+
+; 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-color = ${color.ACCENT}
+
+; 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 = "Iosevka Nerd Font:size=10;3"
+; 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 = "Iosevka Nerd Font:size=10;3"
+font-1 = "waffle:size=12;2"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbrightness
+; modules-right = ipc clock
+
+;; Available modules
+;;
+;alsa brightness battery
+;bspwm cpu date
+;filesystem github i3
+;subscriber demo memory
+;menu-apps mpd wired-network
+;wireless-network network pulseaudio
+;name_you_want temperature my-text-label
+;brightness keyboard title workspaces
+;;
+;; User modules
+;checknetwork updates window_switch launcher powermenu sysmenu menu
+;;
+;; Bars
+;cpu_bar memory_bar filesystem_bar mpd_bar
+;volume brightness battery_bar
+
+modules-left = mod bspwm sep2 cpu used-memory filesystem
+modules-center = mpd sep date
+modules-right = battery network sep volume-bar bna-bar
+
+; The separator will be inserted between the output of each module
+separator =
+
+; This value is used to add extra spacing between elements
+; @deprecated: This parameter will be removed in an upcoming version
+spacing = 0
+
+; 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 = bspwm
+
+; 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 = right
+
+; If true, the bar will not shift its
+; contents when the tray changes
+tray-detached = false
+
+; Tray icon max size
+tray-maxsize = 16
+
+; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
+; Enable pseudo transparency
+; Will automatically be enabled if a fully transparent
+; background color is defined using `tray-background`
+; tray-transparent = false
+
+; 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.ALTBACKGROUND}
+
+; 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 = 2
+
+; 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 = bspwm
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+; dpi =
+
+; 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 = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+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/dot-config/bspwm/themes/slime/polybar/launch.sh b/dot-config/bspwm/themes/slime/polybar/launch.sh
new file mode 100755
index 00000000..ae47b54c
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/polybar/launch.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/slime/polybar/modules.ini b/dot-config/bspwm/themes/slime/polybar/modules.ini
new file mode 100644
index 00000000..c8674ffc
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/polybar/modules.ini
@@ -0,0 +1,1095 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bspwm]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-default = 
+
+format = <label-state>
+format-font = 1
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.RED}
+label-focused-underline = ${color.RED}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.ACCENT}
+;label-occupied-underline = ${color.ACCENT}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.GREEN}
+label-urgent-underline = ${color.GREEN}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = ""
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = [<label-mode>]
+format-foreground = ${color.YELLOW}
+format-padding = 0
+
+label-monocle = "Monocle"
+label-tiled = "Tiled"
+
+label-floating = ", Float"
+label-pseudotiled = ", Pseudo"
+label-fullscreen = ", Full"
+
+label-locked = " | Locked"
+label-sticky = " | Sticky"
+label-private = " | Private"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/alsa]
+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> <label-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+;format-muted = <label-muted>
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+format-muted-prefix = 婢
+format-muted-prefix-foreground = ${color.RED}
+label-muted = " Mute"
+label-muted-foreground = ${color.ALTFOREGROUND}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+ramp-volume-foreground = ${color.RED}
+
+; 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 = 
+ramp-headphones-1 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-foreground = ${color.RED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_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 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-foreground = ${color.CYAN}
+
+;; Other Icons
+;
+
+; Only applies if <bar> is used
+;;bar-width = 10
+;;bar-indicator = |
+;;bar-fill = ─
+;;bar-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; 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 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-foreground = ${color.CYAN}
+
+;; Other Icons
+;
+
+; Only applies if <bar> is used
+;;bar-width = 10
+;;bar-indicator = |
+;;bar-fill = ─
+;;bar-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = <animation-charging> <label-charging>
+format-charging-prefix =
+; 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 = <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 = %percentage%%
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-foreground = ${color.YELLOW}
+
+; 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 = 
+animation-charging-foreground = ${color.GREEN}
+
+; 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 = 
+;;animation-discharging-5 = 
+;;animation-discharging-6 = 
+;;animation-discharging-7 = 
+;;animation-discharging-8 = 
+
+; Framerate in milliseconds
+;animation-discharging-framerate = 500
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/cpu]
+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 = <label>
+format-prefix = 
+format-prefix-foreground = ${color.YELLOW}
+
+; 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%%"
+
+; Spacing between individual per-core ramps
+;;ramp-coreload-spacing = 1
+;;ramp-coreload-0 = 
+;;ramp-coreload-1 = 
+;;ramp-coreload-2 = 
+;;ramp-coreload-3 = 
+;;ramp-coreload-4 = 
+
+ramp-load-0 = 
+ramp-load-1 = 
+ramp-load-2 = 
+ramp-load-3 = 
+ramp-load-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+; Seconds to sleep between updates
+interval = 1.0
+
+; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
+; NOTE: if you want to use syntax tags here you need to use %%{...}
+date = %A, %d %B
+
+; Optional time format
+time = at %I:%M %p
+
+; if `date-alt` or `time-alt` is defined, clicking
+; the module will toggle between formats
+date-alt = It's %A, %d %B %Y
+time-alt = at %k:%M:%S
+
+; Available tags:
+; <label> (default)
+format = <label>
+format-prefix = " "
+format-prefix-foreground = ${color.RED}
+
+; Available tokens:
+; %date%
+; %time%
+; Default: %date%
+label = %date% %time%
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/filesystem]
+type = internal/fs
+
+; Mountpoints to display
+mount-0 = /
+;;mount-1 = /home
+;;mount-2 = /var
+
+; Seconds to sleep between updates
+; Default: 30
+interval = 10
+
+; Display fixed precision values
+; Default: false
+fixed-values = true
+
+; Spacing between entries
+; Default: 2
+;;spacing = 4
+
+; Available tags:
+; <label-mounted> (default)
+; <bar-free>
+; <bar-used>
+; <ramp-capacity>
+format-mounted = <label-mounted>
+format-mounted-prefix = 
+format-mounted-prefix-foreground = ${color.MAGENTA}
+
+; Available tags:
+; <label-unmounted> (default)
+format-unmounted = <label-unmounted>
+format-unmounted-prefix = 
+format-unmounted-prefix-foreground = ${color.MAGENTA}
+
+; Available tokens:
+; %mountpoint%
+; %type%
+; %fsname%
+; %percentage_free%
+; %percentage_used%
+; %total%
+; %free%
+; %used%
+; Default: %mountpoint% %percentage_free%%
+label-mounted = " %free%"
+
+; Available tokens:
+; %mountpoint%
+; Default: %mountpoint% is not mounted
+label-unmounted = %mountpoint%: not mounted
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/memory]
+type = internal/memory
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 3
+
+; 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 = <label>
+format-prefix = 
+format-prefix-foreground = ${color.BLUE}
+
+; 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-indicator =
+;;bar-used-width = 50
+;;bar-used-foreground-0 = #55aa55
+;;bar-used-foreground-1 = #557755
+;;bar-used-foreground-2 = #f5a70a
+;;bar-used-foreground-3 = #ff5555
+;;bar-used-fill = ▐
+;;bar-used-empty = ▐
+;;bar-used-empty-foreground = #444444
+
+; Only applies if <ramp-used> is used
+;;ramp-used-0 = 
+;;ramp-used-1 = 
+;;ramp-used-2 = 
+;;ramp-used-3 = 
+;;ramp-used-4 = 
+
+; Only applies if <ramp-free> is used
+;;ramp-free-0 = 
+;;ramp-free-1 = 
+;;ramp-free-2 = 
+;;ramp-free-3 = 
+;;ramp-free-4 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/used-memory]
+type = custom/script
+
+exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3
+
+tail = true
+interval = 5
+
+format = <label>
+format-prefix = 
+format-prefix-foreground = ${color.BLUE}
+
+label = " %output% MB"
+
+click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" &
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 127.0.0.1
+;;port = 6600
+;;password = mysecretpassword
+
+; Seconds to sleep between progressbar/song timer sync
+; Default: 1
+interval = 2
+
+; 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> <icon-prev> <toggle> <icon-next>
+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>
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = "MPD is offline"
+
+; Only applies if <icon-X> is used
+icon-play-foreground = ${color.CYAN}
+icon-play = 契
+icon-pause-foreground = ${color.CYAN}
+icon-pause = 
+icon-stop-foreground = ${color.CYAN}
+icon-stop = 栗
+icon-prev-foreground = ${color.CYAN}
+icon-prev = 寧
+icon-next-foreground = ${color.CYAN}
+icon-next = 嶺
+
+icon-seekb = ⏪
+icon-seekf = ⏩
+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 = #ff
+;;toggle-off-foreground = #55
+
+; Only applies if <bar-progress> is used
+;;bar-progress-width = 45
+;;bar-progress-indicator = |
+;;bar-progress-fill = ─
+;;bar-progress-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; If you use both a wired and a wireless network, Add both modules in config.ini
+[module/ethernet]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <label-connected>
+format-connected-prefix = "歷 "
+format-connected-prefix-foreground = ${color.MAGENTA}
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "轢 "
+format-disconnected-prefix-foreground = ${color.RED}
+
+label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}"
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; Normal Module
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <ramp-signal> <label-connected>
+
+; Available tags:
+; <label-disconnected> (default)
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "睊 "
+format-disconnected-prefix-foreground = ${color.RED}
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+label-connected = "%{A1:nmd &:}%essid% 龍 %downspeed%%{A}"
+;;label-connected-foreground = #eefafafa
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:}Disconnected%{A}"
+;;label-disconnected-foreground = #66ffffff
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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-foreground = ${color.MAGENTA}
+
+; 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/pulseaudio]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; 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> <label-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+;format-muted = <label-muted>
+
+; Available tokens:
+; %percentage% (default)
+;label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default)
+format-muted-prefix = 婢
+format-muted-prefix-foreground = ${color.RED}
+label-muted = " Mute"
+label-muted-foreground = ${color.ALTFOREGROUND}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奄
+ramp-volume-2 = 奄
+ramp-volume-3 = 奔
+ramp-volume-4 = 奔
+ramp-volume-5 = 奔
+ramp-volume-6 = 墳
+ramp-volume-7 = 墳
+ramp-volume-8 = 墳
+ramp-volume-9 = 墳
+ramp-volume-foreground = ${color.RED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/temperature]
+type = internal/temperature
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 0.5
+
+; 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/hwmon2/temp1_input
+
+; Threshold temperature to display warning label (in degrees celsius)
+; Default: 80
+warn-temperature = 60
+
+; Whether or not to show units next to the temperature tokens (°C, °F)
+; Default: true
+units = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+format = <ramp> <label>
+
+; Available tags:
+; <label-warn> (default)
+; <ramp>
+format-warn = <ramp> <label-warn>
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label = %temperature-c%
+
+; Available tokens:
+; %temperature% (deprecated)
+; %temperature-c% (default, temperature in °C)
+; %temperature-f% (temperature in °F)
+label-warn = "%temperature-c%"
+label-warn-foreground = #f00
+
+; Requires the <ramp> tag
+; The icon selection will range from 0 to `warn-temperature`
+; with the current temperature as index.
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-foreground = ${color.YELLOW}
+;;ramp-foreground = #55
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/keyboard]
+type = internal/xkeyboard
+
+; List of indicators to ignore
+blacklist-0 = num lock
+blacklist-1 = scroll lock
+
+; Available tags:
+; <label-layout> (default)
+; <label-indicator> (default)
+format = <label-layout> <label-indicator>
+format-prefix = " "
+format-prefix-foreground = ${color.MAGENTA}
+;;format-spacing = 0
+
+; Available tokens:
+; %layout%
+; %name%
+; %number%
+; Default: %layout%
+label-layout = %layout%
+;;label-layout-padding = 2
+;;label-layout-background = #bc99ed
+;;label-layout-foreground = #000
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-indicator-on = %name%
+;;label-indicator-padding = 2
+label-indicator-on-foreground = ${color.CYAN}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/title]
+type = internal/xwindow
+
+; Available tags:
+; <label> (default)
+format = <label>
+format-prefix = " "
+format-prefix-foreground = ${color.BLUE}
+;;format-background = ${color.BACKGROUND}
+;;format-foreground = ${color.CYAN}
+;;format-padding = 4
+
+; Available tokens:
+; %title%
+; Default: %title%
+label = %title%
+label-maxlen = 25
+
+; Used instead of label when there is no window title
+; Available tokens:
+; None
+;;label-empty = Archcraft
+;;label-empty-foreground = #707880
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/openbox]
+type = internal/xworkspaces
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = true
+
+; Create click handler used to focus desktop
+; Default: true
+enable-click = true
+
+; Create scroll handlers used to cycle desktops
+; Default: true
+enable-scroll = true
+
+; icon-[0-9]+ = <desktop-name>;<icon>
+; NOTE: The desktop name needs to match the name configured by the WM
+; You can get a list of the defined desktops using:
+; $ xprop -root _NET_DESKTOP_NAMES
+icon-0 = 1;
+icon-1 = 2;
+icon-2 = 3;
+icon-3 = 4;
+icon-4 = 5;
+icon-default = 
+
+; Available tags:
+; <label-monitor>
+; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
+; Default: <label-state>
+format = <label-state>
+format-padding = 0
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-monitor = %name%
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-active = 
+label-active-foreground = ${color.RED}
+label-active-background = ${color.BACKGROUND}
+;;label-active-underline = ${color.CYAN}
+;;label-active-overline = ${color.CYAN}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-occupied = 
+label-occupied-foreground = ${color.ACCENT}
+label-occupied-background = ${color.BACKGROUND}
+;;label-occupied-underline = ${color.CYAN}
+;;label-occupied-overline = ${color.CYAN}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-urgent = 
+label-urgent-foreground = ${color.GREEN}
+label-urgent-background = ${color.BACKGROUND}
+;;label-urgent-underline = ${color.CYAN}
+;;label-urgent-overline = ${color.CYAN}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-empty = %icon%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-background = ${color.BACKGROUND}
+;;label-empty-underline = ${color.CYAN}
+;;label-empty-overline = ${color.CYAN}
+
+label-active-padding = 1
+label-urgent-padding = 1
+label-occupied-padding = 1
+label-empty-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+content = |
+content-foreground = ${color.ALTBACKGROUND}
+
+[module/sep2]
+type = custom/text
+content = "| "
+content-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/slime/rofi/askpass.rasi b/dot-config/bspwm/themes/slime/rofi/askpass.rasi
new file mode 100644
index 00000000..0f94f4f5
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/askpass.rasi
@@ -0,0 +1,77 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px 15px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: @background;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/asroot.rasi b/dot-config/bspwm/themes/slime/rofi/asroot.rasi
new file mode 100644
index 00000000..3be45bd7
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/asroot.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: transparent;
+ text-color: @foreground;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/confirm.rasi b/dot-config/bspwm/themes/slime/rofi/confirm.rasi
new file mode 100644
index 00000000..5afa3b05
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/confirm.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 250px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 100%;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 20px;
+ background-color: @active;
+ text-color: @background;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: @background;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/launcher.rasi b/dot-config/bspwm/themes/slime/rofi/launcher.rasi
new file mode 100644
index 00000000..fbf091d7
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/launcher.rasi
@@ -0,0 +1,269 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 800px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ background-color: @background-colour;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 10px 10px 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "::";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 12;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 5px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(alternate-background);
+ text-color: var(foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/music.rasi b/dot-config/bspwm/themes/slime/rofi/music.rasi
new file mode 100644
index 00000000..2394ebfa
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/music.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: transparent;
+ text-color: @foreground;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/networkmenu.rasi b/dot-config/bspwm/themes/slime/rofi/networkmenu.rasi
new file mode 100644
index 00000000..f57a1084
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/networkmenu.rasi
@@ -0,0 +1,270 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun";
+ show-icons: false;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ height: 475px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ background-color: @background-colour;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 10px 10px 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "直";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(alternate-background);
+ text-color: var(foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/powermenu.rasi b/dot-config/bspwm/themes/slime/rofi/powermenu.rasi
new file mode 100644
index 00000000..5b439eb5
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/powermenu.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: transparent;
+ text-color: @foreground;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/runner.rasi b/dot-config/bspwm/themes/slime/rofi/runner.rasi
new file mode 100644
index 00000000..41b8f616
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/runner.rasi
@@ -0,0 +1,269 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ background-color: @background-colour;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 10px 10px 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "::";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Run...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 5px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(alternate-background);
+ text-color: var(foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/screenshot.rasi b/dot-config/bspwm/themes/slime/rofi/screenshot.rasi
new file mode 100644
index 00000000..5516d775
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/screenshot.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 450px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: transparent;
+ text-color: @foreground;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/shared/colors.rasi b/dot-config/bspwm/themes/slime/rofi/shared/colors.rasi
new file mode 100644
index 00000000..dc953783
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #ffffff;
+ background-alt: #e6e6e6;
+ foreground: #383a42;
+ selected: #0997B3;
+ active: #50a14f;
+ urgent: #e45649;
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/slime/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..d2af39fe
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/shared/fonts.rasi
@@ -0,0 +1,7 @@
+/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
+
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/themes.rasi b/dot-config/bspwm/themes/slime/rofi/themes.rasi
new file mode 100644
index 00000000..ec145eb1
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/themes.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: transparent;
+ text-color: @foreground;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 5;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 5px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/slime/rofi/windows.rasi b/dot-config/bspwm/themes/slime/rofi/windows.rasi
new file mode 100644
index 00000000..d49d980a
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/rofi/windows.rasi
@@ -0,0 +1,269 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: "";
+ display-run: "";
+ display-filebrowser: "";
+ display-window: "";
+ drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 0px;
+ y-offset: 0px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ background-color: @background-colour;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 30px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px 10px 10px 10px;
+ border: 0px 0px 2px dash 0px;
+ border-radius: 0px;
+ border-color: @urgent;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+ children: [ "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "::";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 0px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 0px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 5px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(alternate-background);
+ text-color: var(foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+textbox {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/slime/theme.bash b/dot-config/bspwm/themes/slime/theme.bash
new file mode 100644
index 00000000..94715ea6
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/theme.bash
@@ -0,0 +1,82 @@
+# ------------------------------------------------------------------------------
+# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+#
+# Slime Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#ffffff'
+foreground='#383a42'
+color0='#383a42'
+color1='#e45649'
+color2='#50a14f'
+color3='#c18401'
+color4='#0184bc'
+color5='#a626a4'
+color6='#0997b3'
+color7='#909090'
+color8='#383a42'
+color9='#e45649'
+color10='#50a14f'
+color11='#c18401'
+color12='#0184bc'
+color13='#a626a4'
+color14='#0997b3'
+color15='#909090'
+
+accent='#0997B3'
+light_value='0.40'
+dark_value='0.10'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='Iosevka Nerd Font:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Papirus-Apps'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='slime.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Slime'
+icon_theme='Luv-Folders'
+cursor_theme='Qogirr-Dark'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='10x40'
+dunst_origin='top-right'
+dunst_font='Iosevka Custom 9'
+dunst_border='0'
+dunst_separator='2'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$accent"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='2'
+bspwm_gap='10'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/slime/wallpaper b/dot-config/bspwm/themes/slime/wallpaper
new file mode 120000
index 00000000..2ac8dbbb
--- /dev/null
+++ b/dot-config/bspwm/themes/slime/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/slime.jpg \ No newline at end of file
diff --git a/dot-config/bspwm/themes/spark/apply.sh b/dot-config/bspwm/themes/spark/apply.sh
new file mode 100755
index 00000000..8f03cb9e
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/apply.sh
@@ -0,0 +1,278 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $element_bg | pastel darken $dark_value | pastel format hex`"
+altforeground="`pastel color $element_fg | pastel lighten $light_value | pastel format hex`"
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${element_bg}
+ FOREGROUND = ${element_fg}
+ ALTBACKGROUND = ${color15}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${accent}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${element_bg};
+ background-alt: ${color15};
+ foreground: ${element_fg};
+ selected: ${accent};
+ active: ${color10};
+ urgent: ${color9};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${element_bg}"
+ foreground = "${element_fg}"
+ frame_color = "${color15}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${element_bg}"
+ foreground = "${element_fg}"
+ frame_color = "${color15}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${element_bg}"
+ foreground = "${color9}"
+ frame_color = "${color9}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/spark/polybar/.module b/dot-config/bspwm/themes/spark/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/polybar/.module
diff --git a/dot-config/bspwm/themes/spark/polybar/colors.ini b/dot-config/bspwm/themes/spark/polybar/colors.ini
new file mode 100644
index 00000000..f8b4d748
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/polybar/colors.ini
@@ -0,0 +1,24 @@
+[color]
+
+BACKGROUND = #EEFFFF
+FOREGROUND = #303030
+ALTBACKGROUND = #dee6e7
+ALTFOREGROUND = #d3d3d3
+ACCENT = #F0719B
+
+BLACK = #1e2541
+RED = #f0719b
+GREEN = #5af7b0
+YELLOW = #ffa56b
+BLUE = #57c7ff
+MAGENTA = #c792ea
+CYAN = #89ddff
+WHITE = #eeffff
+ALTBLACK = #354274
+ALTRED = #f02e6e
+ALTGREEN = #2ce592
+ALTYELLOW = #ff8537
+ALTBLUE = #1da0e2
+ALTMAGENTA = #a742ea
+ALTCYAN = #47bae8
+ALTWHITE = #dee6e7
diff --git a/dot-config/bspwm/themes/spark/polybar/config.ini b/dot-config/bspwm/themes/spark/polybar/config.ini
new file mode 100644
index 00000000..14bc8206
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/polybar/config.ini
@@ -0,0 +1,320 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; 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 = ../../system.ini
+include-file = ./colors.ini
+include-file = ./modules.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 = ${env: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 = true
+
+; 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 = 70%
+height = 38
+
+; 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 = 15%
+offset-y = 15
+
+; 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 = 4.0
+radius-bottom = 4.0
+
+; Under-/overline pixel size and argb color
+; Individual values can be defined using:
+; {overline,underline}-size
+; {overline,underline}-color
+line-size = 2
+line-color = ${color.ACCENT}
+
+; 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-top-size = 0
+border-color = ${color.ACCENT}
+
+; 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 = "Iosevka Nerd Font:size=10;3"
+; 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 = "Iosevka Nerd Font:size=10;3"
+font-1 = "Iosevka Nerd Font:size=12;3"
+font-2 = "Iosevka Nerd Font:size=6;3"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbrightness
+; modules-right = ipc clock
+
+;; Available modules
+;;
+;alsa brightness battery
+;bspwm cpu date
+;filesystem github i3
+;subscriber demo memory
+;menu-apps mpd wired-network
+;wireless-network network pulseaudio
+;name_you_want temperature my-text-label
+;brightness keyboard title workspaces
+;;
+;; User modules
+;checknetwork updates window_switch launcher powermenu sysmenu menu
+;;
+;; Bars
+;cpu_bar memory_bar filesystem_bar mpd_bar
+;volume brightness battery_bar
+
+modules-left = bspwm sep mpd
+modules-center = mod
+modules-right = volume sep bna sep battery sep network sep date
+
+; The separator will be inserted between the output of each module
+separator =
+
+; This value is used to add extra spacing between elements
+; @deprecated: This parameter will be removed in an upcoming version
+spacing = 0
+
+; 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 = bspwm
+
+; 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
+
+; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
+; Enable pseudo transparency
+; Will automatically be enabled if a fully transparent
+; background color is defined using `tray-background`
+; tray-transparent = false
+
+; 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 = bspwm
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+; dpi =
+
+; 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 = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+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/dot-config/bspwm/themes/spark/polybar/launch.sh b/dot-config/bspwm/themes/spark/polybar/launch.sh
new file mode 100755
index 00000000..ae47b54c
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/polybar/launch.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/spark/polybar/modules.ini b/dot-config/bspwm/themes/spark/polybar/modules.ini
new file mode 100644
index 00000000..d2d3046b
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/polybar/modules.ini
@@ -0,0 +1,698 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bspwm]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-default = 
+
+format = <label-state>
+format-font = 2
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.ACCENT}
+;label-focused-underline = ${color.ACCENT}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.ALTCYAN}
+;label-occupied-underline = ${color.ALTCYAN}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.ALTGREEN}
+;label-urgent-underline = ${color.ALTGREEN}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = ""
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = [<label-mode>]
+format-foreground = ${color.FOREGROUND}
+format-padding = 1
+
+label-monocle = "Monocle"
+label-tiled = "Tiled"
+
+label-floating = ", Float"
+label-pseudotiled = ", Pseudo"
+label-fullscreen = ", Full"
+
+label-locked = " | Locked"
+label-sticky = " | Sticky"
+label-private = " | Private"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/volume]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; 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> <label-volume>
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+format-muted-prefix = 婢
+format-muted-prefix-foreground = ${color.FOREGROUND}
+format-muted-font = 2
+label-muted = " Mute"
+;label-muted-foreground = ${color.RED}
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奔
+ramp-volume-2 = 奔
+ramp-volume-3 = 墳
+ramp-volume-4 = 墳
+ramp-volume-foreground = ${color.ALTMAGENTA}
+ramp-volume-font = 2
+
+; 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 = 
+;;ramp-headphones-1 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-font = 2
+content-prefix-foreground = ${color.ALTRED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_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 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.ALTRED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; 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 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.ALTRED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = <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>
+
+; 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)
+format-full = <label-full>
+format-full-font = 2
+format-full-prefix = " "
+format-full-prefix-foreground = ${color.ALTGREEN}
+label-full = %percentage%%
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-foreground = ${color.ALTBLUE}
+ramp-capacity-font = 2
+; 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 = 
+animation-charging-foreground = ${color.ALTGREEN}
+animation-charging-font = 2
+; 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 = 
+;;animation-discharging-5 = 
+;;animation-discharging-6 = 
+;;animation-discharging-7 = 
+;;animation-discharging-8 = 
+
+; Framerate in milliseconds
+;animation-discharging-framerate = 500
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+; Seconds to sleep between updates
+interval = 1.0
+
+; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
+; NOTE: if you want to use syntax tags here you need to use %%{...}
+;;date = %Y-%m-%d%
+
+; Optional time format
+time = %I:%M %p
+
+; if `date-alt` or `time-alt` is defined, clicking
+; the module will toggle between formats
+;;date-alt = %A, %d %B %Y
+#time-alt = %d/%m/%Y%
+time-alt = %b %d, %G
+
+; Available tags:
+; <label> (default)
+
+format = <label>
+format-prefix = " "
+format-font = 2
+format-prefix-foreground = ${color.ALTCYAN}
+format-padding = 0
+
+; Available tokens:
+; %date%
+; %time%
+; Default: %date%
+label = %time%
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 127.0.0.1
+;;port = 6600
+;;password = mysecretpassword
+
+; Seconds to sleep between progressbar/song timer sync
+; Default: 1
+interval = 2
+
+; 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-prefix = " "
+;format-online-prefix-foreground = ${color.CYAN}
+;format-online = <toggle> <label-song>
+format-online = <icon-prev> <toggle> <icon-next> <label-song>
+;format-online-font = 2
+
+format-playing = ${self.format-online}
+format-paused = <toggle> <label-song>
+;format-stopped = ${self.format-online}
+
+; Available tags:
+; <label-offline>
+;format-offline = <label-offline>
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = "MPD is offline"
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-play-font = 2
+icon-play-foreground = ${color.ALTGREEN}
+icon-pause = 
+icon-pause-font = 2
+icon-pause-foreground = ${color.ALTYELLOW}
+icon-stop = 
+icon-stop-foreground = ${color.ALTRED}
+icon-prev = 玲
+icon-prev-font = 2
+icon-prev-foreground = ${color.ALTMAGENTA}
+icon-next = 怜
+icon-next-font = 2
+icon-next-foreground = ${color.ALTMAGENTA}
+icon-seekb = ⏪
+icon-seekf = ⏩
+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 = #ff
+;;toggle-off-foreground = #55
+
+; Only applies if <bar-progress> is used
+;;bar-progress-width = 45
+;;bar-progress-indicator = |
+;;bar-progress-fill = ─
+;;bar-progress-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; If you use both a wired and a wireless network, Add both modules in config.ini
+[module/ethernet]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <label-connected>
+format-connected-prefix = "歷 "
+format-connected-prefix-foreground = ${color.ALTYELLOW}
+format-connected-prefix-font = 2
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "轢 "
+format-disconnected-prefix-font = 2
+format-disconnected-prefix-foreground = ${color.FOREGROUND}
+
+label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}"
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; Normal Module
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <ramp-signal> <label-connected>
+
+; Available tags:
+; <label-disconnected> (default)
+
+format-disconnected-prefix = "睊 "
+format-disconnected-font = 2
+format-disconnected-prefix-foreground = ${color.FOREGROUND}
+format-disconnected = <label-disconnected>
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+;label-connected = "%essid% %downspeed:8% %upspeed:8%"
+label-connected = "%{A1:nmd &:}%essid% %downspeed%%{A}"
+;;label-connected-foreground = #eefafafa
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:}NA%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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-foreground = ${color.ALTYELLOW}
+ramp-signal-font = 2
+
+; 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/workspaces]
+type = internal/xworkspaces
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = true
+
+; Create click handler used to focus desktop
+; Default: true
+enable-click = true
+
+; Create scroll handlers used to cycle desktops
+; Default: true
+enable-scroll = true
+
+; icon-[0-9]+ = <desktop-name>;<icon>
+; NOTE: The desktop name needs to match the name configured by the WM
+; You can get a list of the defined desktops using:
+; $ xprop -root _NET_DESKTOP_NAMES
+icon-0 = 1;
+icon-1 = 2;
+icon-2 = 3;
+icon-3 = 4;
+icon-4 = 5;
+icon-default = 
+
+; Available tags:
+; <label-monitor>
+; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
+; Default: <label-state>
+format = <label-state>
+format-padding = 0
+format-font = 2
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-monitor = %name%
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-active = %icon%
+label-active-foreground = ${color.ACCENT}
+label-active-background = ${color.BACKGROUND}
+;;label-active-underline = ${color.RED}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-occupied = %icon%
+label-occupied-foreground = ${color.ALTCYAN}
+label-occupied-background = ${color.BACKGROUND}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-urgent = %icon%
+label-urgent-foreground = ${color.ALTGREEN}
+label-urgent-background = ${color.BACKGROUND}
+;;label-urgent-underline = ${color.red}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-empty = %icon%
+label-empty-foreground = ${color.ALTBACKGROUND}
+
+label-active-padding = 1
+label-urgent-padding = 1
+label-occupied-padding = 1
+label-empty-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+content = 
+content-font = 3
+
+content-foreground = ${color.ALTFOREGROUND}
+content-background = ${color.BACKGROUND}
+content-padding = 0
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/spark/rofi/askpass.rasi b/dot-config/bspwm/themes/spark/rofi/askpass.rasi
new file mode 100644
index 00000000..a76a5842
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/askpass.rasi
@@ -0,0 +1,75 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: -68px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 6px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 6px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px 15px;
+ border-radius: 6px;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/asroot.rasi b/dot-config/bspwm/themes/spark/rofi/asroot.rasi
new file mode 100644
index 00000000..9ef0326e
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/asroot.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: -68px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 6px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/confirm.rasi b/dot-config/bspwm/themes/spark/rofi/confirm.rasi
new file mode 100644
index 00000000..f66e9121
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/confirm.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 300px;
+ x-offset: -15%;
+ y-offset: -68px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 6px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 6;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/launcher.rasi b/dot-config/bspwm/themes/spark/rofi/launcher.rasi
new file mode 100644
index 00000000..682087f7
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/launcher.rasi
@@ -0,0 +1,301 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 15%;
+ y-offset: -68px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview", "message", "mode-switcher" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @background-alt;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected);
+ text-color: var(background);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/music.rasi b/dot-config/bspwm/themes/spark/rofi/music.rasi
new file mode 100644
index 00000000..aefac734
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/music.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 700px;
+ x-offset: -15%;
+ y-offset: -68px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 6px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 6;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/networkmenu.rasi b/dot-config/bspwm/themes/spark/rofi/networkmenu.rasi
new file mode 100644
index 00000000..cda88c9e
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/networkmenu.rasi
@@ -0,0 +1,302 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: false;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 400px;
+ height: 430px;
+ x-offset: -15%;
+ y-offset: -68px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @background-alt;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "直";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected);
+ text-color: var(foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/powermenu.rasi b/dot-config/bspwm/themes/spark/rofi/powermenu.rasi
new file mode 100644
index 00000000..d6972f15
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/powermenu.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 800px;
+ x-offset: -15%;
+ y-offset: -68px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 6px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 6;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/runner.rasi b/dot-config/bspwm/themes/spark/rofi/runner.rasi
new file mode 100644
index 00000000..69e7e454
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/runner.rasi
@@ -0,0 +1,301 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 15%;
+ y-offset: -68px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @background-alt;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Run...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected);
+ text-color: var(foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/screenshot.rasi b/dot-config/bspwm/themes/spark/rofi/screenshot.rasi
new file mode 100644
index 00000000..4ac14a9c
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/screenshot.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 600px;
+ x-offset: -15%;
+ y-offset: -68px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 6px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 2;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/shared/colors.rasi b/dot-config/bspwm/themes/spark/rofi/shared/colors.rasi
new file mode 100644
index 00000000..5ab278f7
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #EEFFFF;
+ background-alt: #dee6e7;
+ foreground: #303030;
+ selected: #F0719B;
+ active: #2ce592;
+ urgent: #f02e6e;
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/spark/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..d2af39fe
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/shared/fonts.rasi
@@ -0,0 +1,7 @@
+/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
+
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/themes.rasi b/dot-config/bspwm/themes/spark/rofi/themes.rasi
new file mode 100644
index 00000000..c230e92a
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/themes.rasi
@@ -0,0 +1,147 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: -68px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 0px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 14px;
+ border-radius: 6px;
+ background-color: @selected;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 3;
+ lines: 4;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/spark/rofi/windows.rasi b/dot-config/bspwm/themes/spark/rofi/windows.rasi
new file mode 100644
index 00000000..68814fc4
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/rofi/windows.rasi
@@ -0,0 +1,301 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 15%;
+ y-offset: -68px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 4px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @background-alt;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 6px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected);
+ text-color: var(foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 6px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/spark/theme.bash b/dot-config/bspwm/themes/spark/theme.bash
new file mode 100644
index 00000000..524b6610
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/theme.bash
@@ -0,0 +1,85 @@
+# ------------------------------------------------------------------------------
+# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+#
+# Spark Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#1e2541'
+foreground='#eeffff'
+color0='#1e2541'
+color1='#f0719b'
+color2='#5af7b0'
+color3='#ffa56b'
+color4='#57c7ff'
+color5='#c792ea'
+color6='#89ddff'
+color7='#eeffff'
+color8='#354274'
+color9='#f02e6e'
+color10='#2ce592'
+color11='#ff8537'
+color12='#1da0e2'
+color13='#a742ea'
+color14='#47bae8'
+color15='#dee6e7'
+
+accent='#F0719B'
+element_bg='#EEFFFF'
+element_fg='#303030'
+
+light_value='0.64'
+dark_value='0.08'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='Iosevka Nerd Font:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Papirus-Apps'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='spark.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Spark'
+icon_theme='Luv-Folders'
+cursor_theme='Vimix'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='30x30'
+dunst_origin='top-right'
+dunst_font='Iosevka Custom 9'
+dunst_border='0'
+dunst_separator='2'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$accent"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='2'
+bspwm_gap='15'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/spark/wallpaper b/dot-config/bspwm/themes/spark/wallpaper
new file mode 120000
index 00000000..0b57fe22
--- /dev/null
+++ b/dot-config/bspwm/themes/spark/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/spark.jpg \ No newline at end of file
diff --git a/dot-config/bspwm/themes/system.ini b/dot-config/bspwm/themes/system.ini
new file mode 100644
index 00000000..f4466105
--- /dev/null
+++ b/dot-config/bspwm/themes/system.ini
@@ -0,0 +1,25 @@
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;;
+;; System Variables (Edit according to your system)
+;;
+;; Warning : DO NOT DELETE THIS FILE
+;;
+;; Run `ls -1 /sys/class/power_supply/` to list list batteries and adapters.
+;;
+;; Run `ls -1 /sys/class/backlight/` to list available graphics cards.
+;;
+;; Run `ip link | awk '/state UP/ {print $2}' | tr -d :` to get active network interface.
+;;
+;; Polybar Variables For Modules :
+;; card = ${system.sys_graphics_card}
+;; battery = ${system.sys_battery}
+;; adapter = ${system.sys_adapter}
+;; interface = ${system.sys_network_interface}
+
+[system]
+sys_adapter = ACAD
+sys_battery = BAT1
+sys_graphics_card = amdgpu_bl0
+sys_network_interface = wlan0
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/wave/apply.sh b/dot-config/bspwm/themes/wave/apply.sh
new file mode 100755
index 00000000..83e008a5
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/apply.sh
@@ -0,0 +1,286 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+##
+## Script To Apply Themes
+
+## Theme ------------------------------------
+BDIR="$HOME/.config/bspwm"
+TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+THEME="${TDIR##*/}"
+
+source "$BDIR"/themes/"$THEME"/theme.bash
+altbackground="`pastel color $element_bg | pastel lighten $light_value | pastel format hex`"
+altforeground="`pastel color $element_fg | pastel darken $dark_value | pastel format hex`"
+modbackground=(`pastel gradient -n 7 $element_bg $altbackground | pastel format hex`)
+
+## Directories ------------------------------
+PATH_CONF="$HOME/.config"
+PATH_GEANY="$PATH_CONF/geany"
+PATH_BSPWM="$PATH_CONF/bspwm"
+PATH_TERM="$PATH_BSPWM/alacritty"
+PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar"
+PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi"
+
+## Wallpaper ---------------------------------
+apply_wallpaper() {
+ feh --bg-fill "$wallpaper"
+}
+
+## Polybar -----------------------------------
+apply_polybar() {
+ # modify polybar launch script
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh
+
+ # apply default theme fonts
+ sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
+
+ # rewrite colors file
+ cat > ${PATH_PBAR}/colors.ini <<- EOF
+ [color]
+
+ BACKGROUND = ${element_bg}
+ FOREGROUND = ${element_fg}
+ ALTBACKGROUND = ${altbackground}
+ ALTFOREGROUND = ${altforeground}
+ ACCENT = ${accent}
+
+ BLACK = ${color0}
+ RED = ${color1}
+ GREEN = ${color2}
+ YELLOW = ${color3}
+ BLUE = ${color4}
+ MAGENTA = ${color5}
+ CYAN = ${color6}
+ WHITE = ${color7}
+ ALTBLACK = ${color8}
+ ALTRED = ${color9}
+ ALTGREEN = ${color10}
+ ALTYELLOW = ${color11}
+ ALTBLUE = ${color12}
+ ALTMAGENTA = ${color13}
+ ALTCYAN = ${color14}
+ ALTWHITE = ${color15}
+
+ BACKGROUND1 = ${modbackground[1]}
+ BACKGROUND2 = ${modbackground[2]}
+ BACKGROUND3 = ${modbackground[3]}
+ BACKGROUND4 = ${modbackground[4]}
+ BACKGROUND5 = ${modbackground[5]}
+ BACKGROUND6 = ${modbackground[6]}
+ EOF
+}
+
+# Rofi --------------------------------------
+apply_rofi() {
+ # modify rofi scripts
+ sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
+ ${PATH_BSPWM}/scripts/rofi_askpass \
+ ${PATH_BSPWM}/scripts/rofi_asroot \
+ ${PATH_BSPWM}/scripts/rofi_launcher \
+ ${PATH_BSPWM}/scripts/rofi_music \
+ ${PATH_BSPWM}/scripts/rofi_powermenu \
+ ${PATH_BSPWM}/scripts/rofi_runner \
+ ${PATH_BSPWM}/scripts/rofi_screenshot \
+ ${PATH_BSPWM}/scripts/rofi_themes \
+ ${PATH_BSPWM}/scripts/rofi_windows
+
+ # apply default theme fonts
+ sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
+
+ # rewrite colors file
+ cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
+ * {
+ background: ${element_bg};
+ background-alt: ${modbackground[2]};
+ foreground: ${element_fg};
+ selected: ${accent};
+ active: ${color2};
+ urgent: ${color1};
+ }
+ EOF
+
+ # modify icon theme
+ if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
+ sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
+ fi
+}
+
+# Network Menu ------------------------------
+apply_netmenu() {
+ if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then
+ sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini
+ fi
+}
+
+# Terminal ----------------------------------
+apply_terminal() {
+ # alacritty : fonts
+ sed -i ${PATH_TERM}/fonts.yml \
+ -e "s/family: .*/family: \"$terminal_font_name\"/g" \
+ -e "s/size: .*/size: $terminal_font_size/g"
+
+ # alacritty : colors
+ cat > ${PATH_TERM}/colors.yml <<- _EOF_
+ ## Colors configuration
+ colors:
+ # Default colors
+ primary:
+ background: '${background}'
+ foreground: '${foreground}'
+
+ # Normal colors
+ normal:
+ black: '${color0}'
+ red: '${color1}'
+ green: '${color2}'
+ yellow: '${color3}'
+ blue: '${color4}'
+ magenta: '${color5}'
+ cyan: '${color6}'
+ white: '${color7}'
+
+ # Bright colors
+ bright:
+ black: '${color8}'
+ red: '${color9}'
+ green: '${color10}'
+ yellow: '${color11}'
+ blue: '${color12}'
+ magenta: '${color13}'
+ cyan: '${color14}'
+ white: '${color15}'
+ _EOF_
+}
+
+# Geany -------------------------------------
+apply_geany() {
+ sed -i ${PATH_GEANY}/geany.conf \
+ -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
+ -e "s/editor_font=.*/editor_font=$geany_font/g"
+}
+
+# Appearance --------------------------------
+apply_appearance() {
+ XFILE="$PATH_BSPWM/xsettingsd"
+ GTK2FILE="$HOME/.gtkrc-2.0"
+ GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
+
+ # apply gtk theme, icons, cursor & fonts
+ if [[ `pidof xsettingsd` ]]; then
+ sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
+ sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
+ sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
+ else
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
+
+ sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
+ sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
+ sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
+ fi
+
+ # inherit cursor theme
+ if [[ -f "$HOME"/.icons/default/index.theme ]]; then
+ sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
+ fi
+}
+
+# Dunst -------------------------------------
+apply_dunst() {
+ # modify dunst config
+ sed -i ${PATH_BSPWM}/dunstrc \
+ -e "s/width = .*/width = $dunst_width/g" \
+ -e "s/height = .*/height = $dunst_height/g" \
+ -e "s/offset = .*/offset = $dunst_offset/g" \
+ -e "s/origin = .*/origin = $dunst_origin/g" \
+ -e "s/font = .*/font = $dunst_font/g" \
+ -e "s/frame_width = .*/frame_width = $dunst_border/g" \
+ -e "s/separator_height = .*/separator_height = $dunst_separator/g" \
+ -e "s/line_height = .*/line_height = $dunst_separator/g"
+
+ # modify colors
+ sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc
+ cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_
+ [urgency_low]
+ timeout = 2
+ background = "${element_bg}"
+ foreground = "${element_fg}"
+ frame_color = "${altbackground}"
+
+ [urgency_normal]
+ timeout = 5
+ background = "${element_bg}"
+ foreground = "${element_fg}"
+ frame_color = "${altbackground}"
+
+ [urgency_critical]
+ timeout = 0
+ background = "${element_bg}"
+ foreground = "${color1}"
+ frame_color = "${color1}"
+ _EOF_
+}
+
+# Compositor --------------------------------
+apply_compositor() {
+ picom_cfg="$PATH_BSPWM/picom.conf"
+
+ # modify picom config
+ sed -i "$picom_cfg" \
+ -e "s/backend = .*/backend = \"$picom_backend\";/g" \
+ -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
+ -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
+ -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
+ -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
+ -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
+ -e "s/method = .*/method = \"$picom_blur_method\";/g" \
+ -e "s/strength = .*/strength = $picom_blur_strength;/g"
+}
+
+# BSPWM -------------------------------------
+apply_bspwm() {
+ # modify bspwmrc
+ sed -i ${PATH_BSPWM}/bspwmrc \
+ -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \
+ -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \
+ -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \
+ -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \
+ -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \
+ -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \
+ -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g"
+
+ # reload bspwm
+ bspc wm -r
+}
+
+# Create Theme File -------------------------
+create_file() {
+ theme_file="$PATH_BSPWM/themes/.current"
+ if [[ ! -f "$theme_file" ]]; then
+ touch ${theme_file}
+ fi
+ echo "$THEME" > ${theme_file}
+}
+
+# Notify User -------------------------------
+notify_user() {
+ dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
+}
+
+## Execute Script ---------------------------
+notify_user
+create_file
+apply_wallpaper
+apply_polybar
+apply_rofi
+apply_netmenu
+apply_terminal
+apply_geany
+apply_appearance
+apply_dunst
+apply_compositor
+apply_bspwm
diff --git a/dot-config/bspwm/themes/wave/polybar/.module b/dot-config/bspwm/themes/wave/polybar/.module
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/polybar/.module
diff --git a/dot-config/bspwm/themes/wave/polybar/colors.ini b/dot-config/bspwm/themes/wave/polybar/colors.ini
new file mode 100644
index 00000000..4bfb9b25
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/polybar/colors.ini
@@ -0,0 +1,31 @@
+[color]
+
+BACKGROUND = #3D4C5F
+FOREGROUND = #F8F8F8
+ALTBACKGROUND = #556984
+ALTFOREGROUND = #acacac
+ACCENT = #BD99FF
+
+BLACK = #3d4c5f
+RED = #f48fb1
+GREEN = #a1efd3
+YELLOW = #f1fa8c
+BLUE = #92b6f4
+MAGENTA = #bd99ff
+CYAN = #87dfeb
+WHITE = #f8f8f2
+ALTBLACK = #56687e
+ALTRED = #ee4f84
+ALTGREEN = #53e2ae
+ALTYELLOW = #f1ff52
+ALTBLUE = #6498ef
+ALTMAGENTA = #985eff
+ALTCYAN = #24d1e7
+ALTWHITE = #e5e5e5
+
+BACKGROUND1 = #415165
+BACKGROUND2 = #45556b
+BACKGROUND3 = #495a71
+BACKGROUND4 = #4d5f77
+BACKGROUND5 = #51647e
+BACKGROUND6 = #556984
diff --git a/dot-config/bspwm/themes/wave/polybar/config.ini b/dot-config/bspwm/themes/wave/polybar/config.ini
new file mode 100644
index 00000000..a01ce3d5
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/polybar/config.ini
@@ -0,0 +1,320 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+;; 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 = ../../system.ini
+include-file = ./colors.ini
+include-file = ./modules.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 = ${env: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 = true
+
+; 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 = 38
+
+; 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 = 4
+line-color = ${color.ACCENT}
+
+; 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-top-size = 0
+border-color = ${color.ACCENT}
+
+; Number of spaces to add at the beginning/end of the bar
+; Individual side values can be defined using:
+; padding-{left,right}
+padding = 0
+
+; Number of spaces to add before/after each module
+; Individual side values can be defined using:
+; module-margin-{left,right}
+module-margin-left = 0
+module-margin-right = 0
+
+; Fonts are defined using <font-name>;<vertical-offset>
+; Font names are specified using a fontconfig pattern.
+; font-0 = "Iosevka Nerd Font:size=10;3"
+; 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 = "Iosevka Nerd Font:size=10;3"
+font-1 = "Iosevka Nerd Font:size=12;3"
+font-2 = "Iosevka Nerd Font:size=6;3"
+
+; Modules are added to one of the available blocks
+; modules-left = cpu ram
+; modules-center = xwindow xbrightness
+; modules-right = ipc clock
+
+;; Available modules
+;;
+;alsa brightness battery
+;bspwm cpu date
+;filesystem github i3
+;subscriber demo memory
+;menu-apps mpd wired-network
+;wireless-network network pulseaudio
+;name_you_want temperature my-text-label
+;brightness keyboard title workspaces
+;;
+;; User modules
+;checknetwork updates window_switch launcher powermenu sysmenu menu
+;;
+;; Bars
+;cpu_bar memory_bar filesystem_bar mpd_bar
+;volume brightness battery_bar
+
+modules-left = menu mpd
+modules-center = mod sep bspwm
+modules-right = volume bna battery network date
+
+; The separator will be inserted between the output of each module
+separator =
+
+; This value is used to add extra spacing between elements
+; @deprecated: This parameter will be removed in an upcoming version
+spacing = 0
+
+; 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 = bspwm
+
+; 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 = right
+
+; If true, the bar will not shift its
+; contents when the tray changes
+tray-detached = false
+
+; Tray icon max size
+tray-maxsize = 16
+
+; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
+; Enable pseudo transparency
+; Will automatically be enabled if a fully transparent
+; background color is defined using `tray-background`
+; tray-transparent = false
+
+; 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.BACKGROUND6}
+
+; 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 = bspwm
+
+; Set a DPI values used when rendering text
+; This only affects scalable fonts
+; dpi =
+
+; 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 = bspc desktop -f prev.local
+scroll-down = bspc desktop -f next.local
+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/dot-config/bspwm/themes/wave/polybar/launch.sh b/dot-config/bspwm/themes/wave/polybar/launch.sh
new file mode 100755
index 00000000..ae47b54c
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/polybar/launch.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
+INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
+RFILE="$DIR/.module"
+
+# Fix backlight and network modules
+fix_modules() {
+ if [[ -z "$CARD" ]]; then
+ sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
+ elif [[ "$CARD" != *"intel_"* ]]; then
+ sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
+ fi
+
+ if [[ "$INTERFACE" == e* ]]; then
+ sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
+ fi
+}
+
+# Launch the bar
+launch_bar() {
+ # 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
+ for mon in $(polybar --list-monitors | cut -d":" -f1); do
+ MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
+ done
+}
+
+# Execute functions
+if [[ ! -f "$RFILE" ]]; then
+ fix_modules
+ touch "$RFILE"
+fi
+launch_bar
diff --git a/dot-config/bspwm/themes/wave/polybar/modules.ini b/dot-config/bspwm/themes/wave/polybar/modules.ini
new file mode 100644
index 00000000..f58e3d48
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/polybar/modules.ini
@@ -0,0 +1,734 @@
+## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bspwm]
+type = internal/bspwm
+
+pin-workspaces = true
+inline-mode = false
+
+enable-click = true
+enable-scroll = true
+reverse-scroll = true
+
+fuzzy-match = true
+
+; ws-icon-[0-9]+ = label;icon
+; Note that the label needs to correspond with the bspwm workspace name
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-default = 
+
+format = <label-state>
+format-font = 2
+
+label-monitor = %name%
+
+; If any values for label-dimmed-N are defined, the workspace/mode
+; colors will get overridden with those values if the monitor is out of focus
+; To only override workspaces in a specific state, use:
+; label-dimmed-focused
+; label-dimmed-occupied
+; label-dimmed-urgent
+; label-dimmed-empty
+;label-dimmed-foreground = ${color.FOREGROUND}
+;label-dimmed-underline = ${color.YELLOW}
+;label-dimmed-focused-background = ${color.BACKGROUND}
+
+label-focused = %name%
+label-focused-foreground = ${color.ACCENT}
+label-focused-padding = 1
+
+label-occupied = %name%
+label-occupied-foreground = ${color.CYAN}
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-foreground = ${color.RED}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${color.FOREGROUND}
+label-empty-padding = 1
+
+; Separator in between workspaces
+label-separator = ""
+label-separator-padding = 0
+label-separator-foreground = ${color.ALTBACKGROUND}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/mod]
+type = internal/bspwm
+
+format = <label-mode>
+format-background = ${color.BACKGROUND5}
+format-foreground = ${color.FOREGROUND}
+format-underline = ${color.BACKGROUND}
+format-overline = ${color.BACKGROUND}
+format-padding = 2
+
+label-monocle = "Monocle"
+label-tiled = "Tiled"
+
+label-floating = ", Float"
+label-pseudotiled = ", Pseudo"
+label-fullscreen = ", Full"
+
+label-locked = " | Locked"
+label-sticky = " | Sticky"
+label-private = " | Private"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/sep]
+type = custom/text
+content = ◆
+
+content-background = ${color.BACKGROUND}
+content-foreground = ${color.ALTBACKGROUND}
+content-padding = 2
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/volume]
+type = internal/pulseaudio
+
+; Sink to be used, if it exists (find using `pacmd list-sinks`, name field)
+; If not, uses default sink
+sink = alsa_output.pci-0000_12_00.3.analog-stereo
+
+; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false
+; Default: true
+use-ui-max = false
+
+; 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> <label-volume>
+format-volume-background = ${color.BACKGROUND1}
+format-volume-padding = 3
+
+; Available tags:
+; <label-muted> (default)
+; <ramp-volume>
+; <bar-volume>
+format-muted = <label-muted>
+format-muted-background = ${color.BACKGROUND1}
+format-muted-padding = 3
+
+; Available tokens:
+; %percentage% (default)
+label-volume = %percentage%%
+
+; Available tokens:
+; %percentage% (default
+format-muted-prefix = 婢
+format-muted-font = 2
+label-muted = " Mute"
+
+; Only applies if <ramp-volume> is used
+ramp-volume-0 = 奄
+ramp-volume-1 = 奔
+ramp-volume-2 = 奔
+ramp-volume-3 = 墳
+ramp-volume-4 = 墳
+ramp-volume-foreground = ${color.MAGENTA}
+ramp-volume-font = 2
+
+; 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 = 
+;;ramp-headphones-1 = 
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/bna]
+type = custom/text
+
+content = " NA"
+content-prefix = 
+content-prefix-font = 2
+content-prefix-foreground = ${color.RED}
+content-padding = 3
+content-background = ${color.BACKGROUND2}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/backlight]
+type = internal/xbacklight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = intel_backlight
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <ramp> <label>
+format-background = ${color.BACKGROUND2}
+format-padding = 3
+
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.RED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/brightness]
+type = internal/backlight
+
+; Use the following command to list available cards:
+; $ ls -1 /sys/class/backlight/
+card = ${system.sys_graphics_card}
+
+enable-scroll = true
+
+; Available tags:
+; <label> (default)
+; <ramp>
+; <bar>
+format = <ramp> <label>
+format-background = ${color.BACKGROUND2}
+format-padding = 3
+
+; Available tokens:
+; %percentage% (default)
+label = %percentage%%
+
+; Only applies if <ramp> is used
+
+ramp-0 = 
+ramp-1 = 
+ramp-2 = 
+ramp-3 = 
+ramp-4 = 
+ramp-5 = 
+ramp-6 = 
+ramp-7 = 
+ramp-8 = 
+ramp-9 = 
+ramp-font = 2
+ramp-foreground = ${color.RED}
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/battery]
+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 = ${system.sys_battery}
+adapter = ${system.sys_adapter}
+
+; 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 = <animation-charging> <label-charging>
+format-charging-background = ${color.BACKGROUND3}
+format-charging-padding = 3
+
+; Available tags:
+; <label-discharging> (default)
+; <bar-capacity>
+; <ramp-capacity>
+; <animation-discharging>
+format-discharging = <ramp-capacity> <label-discharging>
+format-discharging-background = ${color.BACKGROUND3}
+format-discharging-padding = 3
+
+; Available tags:
+; <label-full> (default)
+; <bar-capacity>
+; <ramp-capacity>
+;format-full = <ramp-capacity> <label-full>
+
+; 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)
+format-full = <label-full>
+format-full-background = ${color.BACKGROUND3}
+format-full-padding = 3
+format-full-font = 2
+format-full-prefix = " "
+format-full-prefix-foreground = ${color.GREEN}
+label-full = %percentage%%
+
+; Only applies if <ramp-capacity> is used
+ramp-capacity-0 = 
+ramp-capacity-1 = 
+ramp-capacity-2 = 
+ramp-capacity-3 = 
+ramp-capacity-4 = 
+ramp-capacity-foreground = ${color.YELLOW}
+ramp-capacity-font = 2
+; 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 = 
+animation-charging-foreground = ${color.GREEN}
+animation-charging-font = 2
+; 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 = 
+;;animation-discharging-5 = 
+;;animation-discharging-6 = 
+;;animation-discharging-7 = 
+;;animation-discharging-8 = 
+
+; Framerate in milliseconds
+;animation-discharging-framerate = 500
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/date]
+type = internal/date
+
+; Seconds to sleep between updates
+interval = 1.0
+
+; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
+; NOTE: if you want to use syntax tags here you need to use %%{...}
+;;date = %Y-%m-%d%
+
+; Optional time format
+time = %I:%M %p
+
+; if `date-alt` or `time-alt` is defined, clicking
+; the module will toggle between formats
+;;date-alt = %A, %d %B %Y
+#time-alt = %d/%m/%Y%
+time-alt = %b %d, %G
+
+; Available tags:
+; <label> (default)
+
+format = <label>
+format-background = ${color.BACKGROUND5}
+format-padding = 2
+format-prefix = " "
+format-font = 2
+format-prefix-foreground = ${color.CYAN}
+
+; Available tokens:
+; %date%
+; %time%
+; Default: %date%
+label = %time%
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[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 = 127.0.0.1
+;;port = 6600
+;;password = mysecretpassword
+
+; Seconds to sleep between progressbar/song timer sync
+; Default: 1
+interval = 2
+
+; 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-prefix = " "
+;;format-online-prefix-font = 2
+;;format-online-prefix-foreground = ${color.PURPLE}
+;format-online = <toggle> <label-song>
+format-online = <toggle> <label-song>
+;format-online-background = ${color.BACKGROUND2}
+format-online-padding = 2
+;format-online-font = 2
+
+format-playing = <icon-prev> <toggle> <icon-next> <label-song>
+format-paused = ${self.format-online}
+format-stopped = ${self.format-online}
+
+; Available tags:
+; <label-offline>
+;format-offline = <label-offline>
+
+; Available tokens:
+; %artist%
+; %album-artist%
+; %album%
+; %date%
+; %title%
+; Default: %artist% - %title%
+label-song = "%title%"
+label-song-maxlen = 25
+label-song-ellipsis = true
+
+; Available tokens:
+; %elapsed%
+; %total%
+; Default: %elapsed% / %total%
+;;abel-time = %elapsed% / %total%
+
+; Available tokens:
+; None
+label-offline = "Offline"
+
+; Only applies if <icon-X> is used
+icon-play = 
+icon-play-font = 2
+icon-play-foreground = ${color.GREEN}
+icon-pause = 
+icon-pause-font = 2
+icon-pause-foreground = ${color.RED}
+icon-stop = 
+icon-stop-foreground = ${color.RED}
+icon-prev = 玲
+icon-prev-foreground = ${color.YELLOW}
+icon-next = 怜
+icon-next-foreground = ${color.YELLOW}
+icon-seekb = ⏪
+icon-seekf = ⏩
+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 = #ff
+;;toggle-off-foreground = #55
+
+; Only applies if <bar-progress> is used
+;;bar-progress-width = 45
+;;bar-progress-indicator = |
+;;bar-progress-fill = ─
+;;bar-progress-empty = ─
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; If you use both a wired and a wireless network, Add both modules in config.ini
+[module/ethernet]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+interval = 1.0
+accumulate-stats = true
+unknown-as-up = true
+
+format-connected = <label-connected>
+format-connected-prefix = "歷 "
+format-connected-prefix-foreground = ${color.BLUE}
+format-connected-prefix-font = 2
+format-connected-background = ${color.BACKGROUND4}
+format-connected-padding = 3
+
+format-disconnected = <label-disconnected>
+format-disconnected-prefix = "轢 "
+format-disconnected-prefix-font = 2
+format-disconnected-background = ${color.BACKGROUND4}
+format-disconnected-padding = 3
+
+label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}"
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+; Normal Module
+[module/network]
+type = internal/network
+interface = ${system.sys_network_interface}
+
+; Seconds to sleep between updates
+; Default: 1
+interval = 1.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 have an unknown state, even when they're running
+; Default: false
+unknown-as-up = true
+
+; Available tags:
+; <label-connected> (default)
+; <ramp-signal>
+format-connected = <ramp-signal> <label-connected>
+format-connected-background = ${color.BACKGROUND4}
+format-connected-padding = 3
+
+; Available tags:
+; <label-disconnected> (default)
+
+format-disconnected-prefix = "睊 "
+format-disconnected-font = 2
+format-disconnected = <label-disconnected>
+format-disconnected-background = ${color.BACKGROUND4}
+format-disconnected-padding = 3
+
+; Available tags:
+; <label-connected> (default)
+; <label-packetloss>
+; <animation-packetloss>
+;;format-packetloss = <animation-packetloss> <label-connected>
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; Default: %ifname% %local_ip%
+;label-connected = "%essid% %downspeed:8% %upspeed:8%"
+label-connected = "%{A1:nmd &:}%essid%%{A}"
+;;label-connected-foreground = #eefafafa
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; Default: (none)
+label-disconnected = "%{A1:nmd &:}Offline%{A}"
+
+; Available tokens:
+; %ifname% [wireless+wired]
+; %local_ip% [wireless+wired]
+; %local_ip6% [wireless+wired]
+; %essid% [wireless]
+; %signal% [wireless]
+; %upspeed% [wireless+wired]
+; %downspeed% [wireless+wired]
+; %linkspeed% [wired]
+; 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-foreground = ${color.BLUE}
+ramp-signal-font = 2
+
+; 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/workspaces]
+type = internal/xworkspaces
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = true
+
+; Create click handler used to focus desktop
+; Default: true
+enable-click = true
+
+; Create scroll handlers used to cycle desktops
+; Default: true
+enable-scroll = true
+
+; icon-[0-9]+ = <desktop-name>;<icon>
+; NOTE: The desktop name needs to match the name configured by the WM
+; You can get a list of the defined desktops using:
+; $ xprop -root _NET_DESKTOP_NAMES
+icon-0 = 1;
+icon-1 = 2;
+icon-2 = 3;
+icon-3 = 4;
+icon-4 = 5;
+icon-default = 
+
+; Available tags:
+; <label-monitor>
+; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
+; Default: <label-state>
+format = <label-state>
+format-padding = 0
+format-font = 2
+
+; Available tokens:
+; %name%
+; Default: %name%
+label-monitor = %name%
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-active = 
+label-active-foreground = ${color.ACCENT}
+label-active-background = ${color.BACKGROUND}
+;;label-active-underline = ${color.RED}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-occupied = 
+label-occupied-foreground = ${color.CYAN}
+label-occupied-background = ${color.BACKGROUND}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-urgent = 
+label-urgent-foreground = ${color.RED}
+label-urgent-background = ${color.BACKGROUND}
+;;label-urgent-underline = ${color.red}
+
+; Available tokens:
+; %name%
+; %icon%
+; %index%
+; Default: %icon% %name%
+label-empty = %icon%
+label-empty-foreground = ${color.CYAN}
+
+label-active-padding = 1
+label-urgent-padding = 1
+label-occupied-padding = 1
+label-empty-padding = 1
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+
+[module/menu]
+type = custom/text
+
+content = גּ
+content-font = 2
+content-background = ${color.BACKGROUND1}
+content-foreground = ${color.ACCENT}
+content-padding = 4
+
+click-left = ~/.config/bspwm/scripts/rofi_launcher
+click-right = ~/.config/bspwm/scripts/rofi_runner
+
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
+;; __________ ______
+;; / ____/ __ \/ ____/
+;; / __/ / / / / /_
+;; / /___/ /_/ / __/
+;; /_____/\____/_/
+;;
+;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
diff --git a/dot-config/bspwm/themes/wave/rofi/askpass.rasi b/dot-config/bspwm/themes/wave/rofi/askpass.rasi
new file mode 100644
index 00000000..f8ec6288
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/askpass.rasi
@@ -0,0 +1,75 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*****----- Main Window -----*****/
+window {
+ location: center;
+ anchor: center;
+ fullscreen: false;
+ width: 350px;
+ x-offset: 0px;
+ y-offset: 0px;
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background;
+ cursor: "default";
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+dummy {
+ expand: false;
+ width: 10px;
+ background-color: transparent;
+}
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ padding: 10px 13px;
+ border-radius: 0px;
+ background-color: @urgent;
+ text-color: @background;
+}
+prompt {
+ enabled: true;
+ padding: 10px;
+ border-radius: 0px;
+ background-color: @selected;
+ text-color: @background;
+}
+entry {
+ enabled: true;
+ padding: 10px 15px;
+ border-radius: 0px;
+ background-color: @background-alt;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Password";
+ placeholder-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: false;
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/asroot.rasi b/dot-config/bspwm/themes/wave/rofi/asroot.rasi
new file mode 100644
index 00000000..4f8ccc31
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/asroot.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 3;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/confirm.rasi b/dot-config/bspwm/themes/wave/rofi/confirm.rasi
new file mode 100644
index 00000000..cb088a3c
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/confirm.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 250px;
+ x-offset: -10px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 1;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/launcher.rasi b/dot-config/bspwm/themes/wave/rofi/launcher.rasi
new file mode 100644
index 00000000..3958d958
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/launcher.rasi
@@ -0,0 +1,303 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "drun,run,filebrowser,window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 450px;
+ x-offset: 10px;
+ y-offset: -48px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "mode-switcher", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/music.rasi b/dot-config/bspwm/themes/wave/rofi/music.rasi
new file mode 100644
index 00000000..6aa9a05c
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/music.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 10px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 3;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/networkmenu.rasi b/dot-config/bspwm/themes/wave/rofi/networkmenu.rasi
new file mode 100644
index 00000000..982feb65
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/networkmenu.rasi
@@ -0,0 +1,305 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: false;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 450px;
+ height: 420px;
+ x-offset: -10px;
+ y-offset: -48px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "prompt", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "直";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/powermenu.rasi b/dot-config/bspwm/themes/wave/rofi/powermenu.rasi
new file mode 100644
index 00000000..011d9274
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/powermenu.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 400px;
+ x-offset: -10px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 3;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/runner.rasi b/dot-config/bspwm/themes/wave/rofi/runner.rasi
new file mode 100644
index 00000000..559e1718
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/runner.rasi
@@ -0,0 +1,303 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "run";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 450px;
+ x-offset: 10px;
+ y-offset: -48px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Run...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 8;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/screenshot.rasi b/dot-config/bspwm/themes/wave/rofi/screenshot.rasi
new file mode 100644
index 00000000..615f4244
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/screenshot.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: southeast;
+ anchor: southeast;
+ fullscreen: false;
+ width: 400px;
+ x-offset: -10px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 3;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/shared/colors.rasi b/dot-config/bspwm/themes/wave/rofi/shared/colors.rasi
new file mode 100644
index 00000000..aa66c804
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/shared/colors.rasi
@@ -0,0 +1,8 @@
+* {
+ background: #3D4C5F;
+ background-alt: #45556b;
+ foreground: #F8F8F8;
+ selected: #BD99FF;
+ active: #a1efd3;
+ urgent: #f48fb1;
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/wave/rofi/shared/fonts.rasi
new file mode 100644
index 00000000..d2af39fe
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/shared/fonts.rasi
@@ -0,0 +1,7 @@
+/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */
+
+/* Text Font */
+
+* {
+ font: "Iosevka 10";
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/themes.rasi b/dot-config/bspwm/themes/wave/rofi/themes.rasi
new file mode 100644
index 00000000..e0842174
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/themes.rasi
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ show-icons: false;
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+/*
+USE_ICON=NO
+*/
+
+/*****----- Main Window -----*****/
+window {
+ transparency: "real";
+ location: south;
+ anchor: south;
+ fullscreen: false;
+ width: 400px;
+ x-offset: 0px;
+ y-offset: -48px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ cursor: "default";
+ background-color: @background;
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ background-color: transparent;
+ children: [ "inputbar", "message", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ padding: 0px;
+ border: 0px;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ children: [ "textbox-prompt-colon", "prompt"];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ str: "";
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+prompt {
+ enabled: true;
+ border-radius: 0px;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+textbox {
+ background-color: inherit;
+ text-color: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 2;
+ lines: 4;
+ cycle: true;
+ scrollbar: false;
+ layout: vertical;
+
+ spacing: 10px;
+ background-color: transparent;
+ cursor: "default";
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @selected;
+ background-color: transparent;
+ text-color: @foreground;
+ cursor: pointer;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+element normal.normal,
+element alternate.normal {
+ background-color: var(background-alt);
+ text-color: var(foreground);
+}
+element normal.urgent,
+element alternate.urgent,
+element selected.active {
+ background-color: var(urgent);
+ text-color: var(background);
+}
+element normal.active,
+element alternate.active,
+element selected.urgent {
+ background-color: var(active);
+ text-color: var(background);
+}
+element selected.normal {
+ background-color: var(selected);
+ text-color: var(background);
+}
diff --git a/dot-config/bspwm/themes/wave/rofi/windows.rasi b/dot-config/bspwm/themes/wave/rofi/windows.rasi
new file mode 100644
index 00000000..80748b9b
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/rofi/windows.rasi
@@ -0,0 +1,303 @@
+/**
+ * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+ **/
+
+/*****----- Configuration -----*****/
+configuration {
+ modi: "window";
+ show-icons: true;
+ display-drun: " Apps";
+ display-run: " Run";
+ display-filebrowser: " Files";
+ display-window: " Windows";
+ drun-display-format: "{name}";
+ window-format: "{c} · {t}";
+}
+
+/*****----- Global Properties -----*****/
+@import "shared/colors.rasi"
+@import "shared/fonts.rasi"
+
+* {
+ border-colour: var(selected);
+ handle-colour: var(selected);
+ background-colour: var(background);
+ foreground-colour: var(foreground);
+ alternate-background: var(background-alt);
+ normal-background: var(background);
+ normal-foreground: var(foreground);
+ urgent-background: var(urgent);
+ urgent-foreground: var(background);
+ active-background: var(active);
+ active-foreground: var(background);
+ selected-normal-background: var(selected);
+ selected-normal-foreground: var(background);
+ selected-urgent-background: var(active);
+ selected-urgent-foreground: var(background);
+ selected-active-background: var(urgent);
+ selected-active-foreground: var(background);
+ alternate-normal-background: var(background);
+ alternate-normal-foreground: var(foreground);
+ alternate-urgent-background: var(urgent);
+ alternate-urgent-foreground: var(background);
+ alternate-active-background: var(active);
+ alternate-active-foreground: var(background);
+}
+
+/*****----- Main Window -----*****/
+window {
+ /* properties for window widget */
+ transparency: "real";
+ location: southwest;
+ anchor: southwest;
+ fullscreen: false;
+ width: 500px;
+ x-offset: 10px;
+ y-offset: -48px;
+
+ /* properties for all widgets */
+ enabled: true;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ cursor: "default";
+ /* Backgroud Colors */
+ background-color: @background-colour;
+ /* Backgroud Image */
+ //background-image: url("/path/to/image.png", none);
+ /* Simple Linear Gradient */
+ //background-image: linear-gradient(red, orange, pink, purple);
+ /* Directional Linear Gradient */
+ //background-image: linear-gradient(to bottom, pink, yellow, magenta);
+ /* Angle Linear Gradient */
+ //background-image: linear-gradient(45, cyan, purple, indigo);
+}
+
+/*****----- Main Box -----*****/
+mainbox {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 20px;
+ border: 0px solid;
+ border-radius: 0px 0px 0px 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ children: [ "inputbar", "listview" ];
+}
+
+/*****----- Inputbar -----*****/
+inputbar {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+prompt {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-prompt-colon {
+ enabled: true;
+ padding: 5px 0px;
+ expand: false;
+ str: "";
+ background-color: inherit;
+ text-color: inherit;
+}
+entry {
+ enabled: true;
+ padding: 5px 0px;
+ background-color: inherit;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Filter...";
+ placeholder-color: inherit;
+}
+num-filtered-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+textbox-num-sep {
+ enabled: true;
+ expand: false;
+ str: "/";
+ background-color: inherit;
+ text-color: inherit;
+}
+num-rows {
+ enabled: true;
+ expand: false;
+ background-color: inherit;
+ text-color: inherit;
+}
+case-indicator {
+ enabled: true;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+/*****----- Listview -----*****/
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 6;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+
+ spacing: 5px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: "default";
+}
+scrollbar {
+ handle-width: 5px ;
+ handle-color: @handle-colour;
+ border-radius: 10px;
+ background-color: @alternate-background;
+}
+
+/*****----- Elements -----*****/
+element {
+ enabled: true;
+ spacing: 10px;
+ margin: 0px;
+ padding: 8px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ cursor: pointer;
+}
+element normal.normal {
+ background-color: var(normal-background);
+ text-color: var(normal-foreground);
+}
+element normal.urgent {
+ background-color: var(urgent-background);
+ text-color: var(urgent-foreground);
+}
+element normal.active {
+ background-color: var(active-background);
+ text-color: var(active-foreground);
+}
+element selected.normal {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+element selected.urgent {
+ background-color: var(selected-urgent-background);
+ text-color: var(selected-urgent-foreground);
+}
+element selected.active {
+ background-color: var(selected-active-background);
+ text-color: var(selected-active-foreground);
+}
+element alternate.normal {
+ background-color: var(alternate-normal-background);
+ text-color: var(alternate-normal-foreground);
+}
+element alternate.urgent {
+ background-color: var(alternate-urgent-background);
+ text-color: var(alternate-urgent-foreground);
+}
+element alternate.active {
+ background-color: var(alternate-active-background);
+ text-color: var(alternate-active-foreground);
+}
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 24px;
+ cursor: inherit;
+}
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ highlight: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Mode Switcher -----*****/
+mode-switcher{
+ enabled: true;
+ expand: false;
+ spacing: 10px;
+ margin: 0px;
+ padding: 0px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+}
+button {
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: inherit;
+ cursor: pointer;
+}
+button selected {
+ background-color: var(selected-normal-background);
+ text-color: var(selected-normal-foreground);
+}
+
+/*****----- Message -----*****/
+message {
+ enabled: true;
+ margin: 0px;
+ padding: 10px;
+ border: 0px solid;
+ border-radius: 0px;
+ border-color: @border-colour;
+ background-color: @alternate-background;
+ text-color: @foreground-colour;
+}
+textbox {
+ border: 0px solid;
+ border-color: @border-colour;
+ background-color: transparent;
+ text-color: @foreground-colour;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+ highlight: none;
+ placeholder-color: @foreground-colour;
+ blink: true;
+ markup: true;
+}
+error-message {
+ padding: 15px;
+ border: 0px solid;
+ border-radius: 10px;
+ border-color: @border-colour;
+ background-color: @background-colour;
+ text-color: @foreground-colour;
+}
diff --git a/dot-config/bspwm/themes/wave/theme.bash b/dot-config/bspwm/themes/wave/theme.bash
new file mode 100644
index 00000000..2ce391ba
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/theme.bash
@@ -0,0 +1,85 @@
+# ------------------------------------------------------------------------------
+# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
+#
+# Wave Theme
+# ------------------------------------------------------------------------------
+
+# Colors
+background='#323f4e'
+foreground='#f8f8f2'
+color0='#3d4c5f'
+color1='#f48fb1'
+color2='#a1efd3'
+color3='#f1fa8c'
+color4='#92b6f4'
+color5='#bd99ff'
+color6='#87dfeb'
+color7='#f8f8f2'
+color8='#56687e'
+color9='#ee4f84'
+color10='#53e2ae'
+color11='#f1ff52'
+color12='#6498ef'
+color13='#985eff'
+color14='#24d1e7'
+color15='#e5e5e5'
+
+accent='#BD99FF'
+element_bg='#3D4C5F'
+element_fg='#F8F8F8'
+
+light_value='0.12'
+dark_value='0.30'
+
+# Wallpaper
+wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+wallpaper="$wdir/wallpaper"
+
+# Polybar
+polybar_font='Iosevka Nerd Font:size=10;3'
+
+# Rofi
+rofi_font='Iosevka 10'
+rofi_icon='Papirus-Apps'
+
+# Terminal
+terminal_font_name='JetBrainsMono Nerd Font'
+terminal_font_size='10'
+
+# Geany
+geany_colors='wave.conf'
+geany_font='JetBrains Mono 10'
+
+# Appearance
+gtk_font='Noto Sans 9'
+gtk_theme='Wave'
+icon_theme='Luv-Folders-Dark'
+cursor_theme='Vimix'
+
+# Dunst
+dunst_width='300'
+dunst_height='80'
+dunst_offset='20x58'
+dunst_origin='bottom-right'
+dunst_font='Iosevka Custom 9'
+dunst_border='0'
+dunst_separator='2'
+
+# Picom
+picom_backend='glx'
+picom_corner='0'
+picom_shadow_r='14'
+picom_shadow_o='0.30'
+picom_shadow_x='-12'
+picom_shadow_y='-12'
+picom_blur_method='none'
+picom_blur_strength='0'
+
+# Bspwm
+bspwm_fbc="$accent"
+bspwm_nbc="$background"
+bspwm_abc="$color5"
+bspwm_pfc="$color2"
+bspwm_border='2'
+bspwm_gap='10'
+bspwm_sratio='0.50'
diff --git a/dot-config/bspwm/themes/wave/wallpaper b/dot-config/bspwm/themes/wave/wallpaper
new file mode 120000
index 00000000..0776829b
--- /dev/null
+++ b/dot-config/bspwm/themes/wave/wallpaper
@@ -0,0 +1 @@
+/usr/share/backgrounds/wave.jpg \ No newline at end of file