From ca968c4e5040f1ff4b5b5e12d9312360d807dcc1 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Mon, 3 Jun 2024 19:56:39 +0800 Subject: added submodules, change . -> dot (see man stow --dotfiles) --- dot-config/bspwm/alacritty/alacritty.yml | 51 + dot-config/bspwm/alacritty/colors.yml | 28 + dot-config/bspwm/alacritty/fonts.yml | 37 + dot-config/bspwm/bspwmrc | 308 +++++ dot-config/bspwm/bspwmrc.bak | 190 +++ dot-config/bspwm/dunstrc | 69 ++ dot-config/bspwm/layout | 0 dot-config/bspwm/picom.conf | 417 +++++++ dot-config/bspwm/scripts/.zshenv | 8 + dot-config/bspwm/scripts/bspasfloat | 15 + dot-config/bspwm/scripts/bspasroot | 10 + dot-config/bspwm/scripts/bspbar | 11 + dot-config/bspwm/scripts/bspbrightness | 71 ++ dot-config/bspwm/scripts/bspcolorpicker | 20 + dot-config/bspwm/scripts/bspcomp | 13 + dot-config/bspwm/scripts/bspdunst | 11 + dot-config/bspwm/scripts/bspfloat | 10 + dot-config/bspwm/scripts/bspmusic | 13 + dot-config/bspwm/scripts/bspscreenshot | 93 ++ dot-config/bspwm/scripts/bspswallow | 53 + dot-config/bspwm/scripts/bspterm | 23 + dot-config/bspwm/scripts/bspvolume | 81 ++ dot-config/bspwm/scripts/bspwinmask | 9 + dot-config/bspwm/scripts/drag-to-float | 52 + dot-config/bspwm/scripts/keep_state | 2 + dot-config/bspwm/scripts/noswallow | 1 + dot-config/bspwm/scripts/noswallow_dmenu | 17 + dot-config/bspwm/scripts/noswallow_open | 7 + dot-config/bspwm/scripts/terminals | 3 + dot-config/bspwm/sxhkdrc | 268 +++++ dot-config/bspwm/themes/.current | 1 + dot-config/bspwm/themes/.system | 0 dot-config/bspwm/themes/adaptive/apply.sh | 286 +++++ dot-config/bspwm/themes/adaptive/polybar/.module | 0 .../bspwm/themes/adaptive/polybar/colors.ini | 31 + .../bspwm/themes/adaptive/polybar/config.ini | 307 +++++ dot-config/bspwm/themes/adaptive/polybar/decor.ini | 92 ++ dot-config/bspwm/themes/adaptive/polybar/launch.sh | 42 + .../bspwm/themes/adaptive/polybar/modules.ini | 1007 ++++++++++++++++ dot-config/bspwm/themes/adaptive/rofi/askpass.rasi | 75 ++ dot-config/bspwm/themes/adaptive/rofi/asroot.rasi | 147 +++ dot-config/bspwm/themes/adaptive/rofi/confirm.rasi | 147 +++ .../bspwm/themes/adaptive/rofi/launcher.rasi | 303 +++++ dot-config/bspwm/themes/adaptive/rofi/music.rasi | 147 +++ .../bspwm/themes/adaptive/rofi/networkmenu.rasi | 156 +++ .../bspwm/themes/adaptive/rofi/powermenu.rasi | 147 +++ dot-config/bspwm/themes/adaptive/rofi/runner.rasi | 303 +++++ .../bspwm/themes/adaptive/rofi/screenshot.rasi | 147 +++ .../bspwm/themes/adaptive/rofi/shared/colors.rasi | 8 + .../bspwm/themes/adaptive/rofi/shared/fonts.rasi | 7 + dot-config/bspwm/themes/adaptive/rofi/themes.rasi | 147 +++ dot-config/bspwm/themes/adaptive/rofi/windows.rasi | 303 +++++ dot-config/bspwm/themes/adaptive/theme.bash | 82 ++ dot-config/bspwm/themes/adaptive/wallpaper | 1 + dot-config/bspwm/themes/beach/apply.sh | 278 +++++ dot-config/bspwm/themes/beach/polybar/.module | 0 dot-config/bspwm/themes/beach/polybar/colors.ini | 24 + dot-config/bspwm/themes/beach/polybar/config.ini | 317 +++++ dot-config/bspwm/themes/beach/polybar/launch.sh | 42 + dot-config/bspwm/themes/beach/polybar/modules.ini | 1161 ++++++++++++++++++ dot-config/bspwm/themes/beach/rofi/askpass.rasi | 75 ++ dot-config/bspwm/themes/beach/rofi/asroot.rasi | 306 +++++ dot-config/bspwm/themes/beach/rofi/confirm.rasi | 306 +++++ dot-config/bspwm/themes/beach/rofi/launcher.rasi | 302 +++++ dot-config/bspwm/themes/beach/rofi/music.rasi | 306 +++++ .../bspwm/themes/beach/rofi/networkmenu.rasi | 303 +++++ dot-config/bspwm/themes/beach/rofi/powermenu.rasi | 306 +++++ dot-config/bspwm/themes/beach/rofi/runner.rasi | 302 +++++ dot-config/bspwm/themes/beach/rofi/screenshot.rasi | 306 +++++ .../bspwm/themes/beach/rofi/shared/colors.rasi | 8 + .../bspwm/themes/beach/rofi/shared/fonts.rasi | 7 + dot-config/bspwm/themes/beach/rofi/themes.rasi | 306 +++++ dot-config/bspwm/themes/beach/rofi/windows.rasi | 302 +++++ dot-config/bspwm/themes/beach/theme.bash | 82 ++ dot-config/bspwm/themes/beach/wallpaper | 1 + dot-config/bspwm/themes/default/apply.sh | 276 +++++ dot-config/bspwm/themes/default/archive.zip | Bin 0 -> 5083683 bytes dot-config/bspwm/themes/default/polybar/.module | 0 dot-config/bspwm/themes/default/polybar/colors.ini | 24 + dot-config/bspwm/themes/default/polybar/config.ini | 110 ++ dot-config/bspwm/themes/default/polybar/decor.ini | 43 + dot-config/bspwm/themes/default/polybar/launch.sh | 42 + .../bspwm/themes/default/polybar/modules.ini | 747 ++++++++++++ dot-config/bspwm/themes/default/rofi/askpass.rasi | 77 ++ dot-config/bspwm/themes/default/rofi/asroot.rasi | 151 +++ .../bspwm/themes/default/rofi/clipboard.rasi | 300 +++++ dot-config/bspwm/themes/default/rofi/configs.rasi | 286 +++++ dot-config/bspwm/themes/default/rofi/confirm.rasi | 148 +++ .../bspwm/themes/default/rofi/custom_command.rasi | 77 ++ dot-config/bspwm/themes/default/rofi/emoji.rasi | 300 +++++ .../bspwm/themes/default/rofi/filebrowser.rasi | 268 +++++ dot-config/bspwm/themes/default/rofi/launcher.rasi | 298 +++++ dot-config/bspwm/themes/default/rofi/music.rasi | 151 +++ .../bspwm/themes/default/rofi/networkmenu.rasi | 302 +++++ .../bspwm/themes/default/rofi/powermenu.rasi | 151 +++ dot-config/bspwm/themes/default/rofi/runner.rasi | 302 +++++ .../bspwm/themes/default/rofi/screenshot.rasi | 151 +++ .../bspwm/themes/default/rofi/shared/colors.rasi | 8 + .../bspwm/themes/default/rofi/shared/fonts.rasi | 5 + dot-config/bspwm/themes/default/rofi/themes.rasi | 305 +++++ .../bspwm/themes/default/rofi/wallpaper.rasi | 302 +++++ dot-config/bspwm/themes/default/rofi/windows.rasi | 302 +++++ dot-config/bspwm/themes/default/theme.bash | 80 ++ dot-config/bspwm/themes/default/wallpaper | 1 + dot-config/bspwm/themes/forest/apply.sh | 278 +++++ dot-config/bspwm/themes/forest/polybar/.module | 0 dot-config/bspwm/themes/forest/polybar/bars.ini | 645 ++++++++++ dot-config/bspwm/themes/forest/polybar/colors.ini | 24 + dot-config/bspwm/themes/forest/polybar/config.ini | 319 +++++ dot-config/bspwm/themes/forest/polybar/launch.sh | 42 + dot-config/bspwm/themes/forest/polybar/modules.ini | 1095 +++++++++++++++++ dot-config/bspwm/themes/forest/rofi/askpass.rasi | 75 ++ dot-config/bspwm/themes/forest/rofi/asroot.rasi | 147 +++ dot-config/bspwm/themes/forest/rofi/confirm.rasi | 147 +++ dot-config/bspwm/themes/forest/rofi/launcher.rasi | 166 +++ dot-config/bspwm/themes/forest/rofi/music.rasi | 147 +++ .../bspwm/themes/forest/rofi/networkmenu.rasi | 167 +++ dot-config/bspwm/themes/forest/rofi/powermenu.rasi | 147 +++ dot-config/bspwm/themes/forest/rofi/runner.rasi | 166 +++ .../bspwm/themes/forest/rofi/screenshot.rasi | 147 +++ .../bspwm/themes/forest/rofi/shared/colors.rasi | 8 + .../bspwm/themes/forest/rofi/shared/fonts.rasi | 7 + dot-config/bspwm/themes/forest/rofi/themes.rasi | 147 +++ dot-config/bspwm/themes/forest/rofi/windows.rasi | 180 +++ dot-config/bspwm/themes/forest/theme.bash | 82 ++ dot-config/bspwm/themes/forest/wallpaper | 1 + dot-config/bspwm/themes/hack/apply.sh | 282 +++++ dot-config/bspwm/themes/hack/polybar/.module | 0 dot-config/bspwm/themes/hack/polybar/bars.ini | 553 +++++++++ dot-config/bspwm/themes/hack/polybar/colors.ini | 28 + dot-config/bspwm/themes/hack/polybar/config.ini | 309 +++++ dot-config/bspwm/themes/hack/polybar/launch.sh | 43 + dot-config/bspwm/themes/hack/polybar/modules.ini | 1258 ++++++++++++++++++++ .../themes/hack/polybar/scripts/check-network | 21 + .../bspwm/themes/hack/polybar/scripts/checkupdates | 117 ++ .../bspwm/themes/hack/polybar/scripts/updates.sh | 47 + dot-config/bspwm/themes/hack/rofi/askpass.rasi | 77 ++ dot-config/bspwm/themes/hack/rofi/asroot.rasi | 147 +++ dot-config/bspwm/themes/hack/rofi/confirm.rasi | 147 +++ dot-config/bspwm/themes/hack/rofi/launcher.rasi | 308 +++++ dot-config/bspwm/themes/hack/rofi/music.rasi | 147 +++ dot-config/bspwm/themes/hack/rofi/networkmenu.rasi | 280 +++++ dot-config/bspwm/themes/hack/rofi/powermenu.rasi | 147 +++ dot-config/bspwm/themes/hack/rofi/runner.rasi | 279 +++++ dot-config/bspwm/themes/hack/rofi/screenshot.rasi | 147 +++ .../bspwm/themes/hack/rofi/shared/colors.rasi | 8 + .../bspwm/themes/hack/rofi/shared/fonts.rasi | 7 + dot-config/bspwm/themes/hack/rofi/themes.rasi | 147 +++ dot-config/bspwm/themes/hack/rofi/windows.rasi | 279 +++++ dot-config/bspwm/themes/hack/theme.bash | 86 ++ dot-config/bspwm/themes/hack/wallpaper | 1 + dot-config/bspwm/themes/manhattan/apply.sh | 278 +++++ dot-config/bspwm/themes/manhattan/polybar/.module | 0 .../bspwm/themes/manhattan/polybar/colors.ini | 24 + .../bspwm/themes/manhattan/polybar/config.ini | 320 +++++ .../bspwm/themes/manhattan/polybar/launch.sh | 42 + .../bspwm/themes/manhattan/polybar/modules.ini | 734 ++++++++++++ .../bspwm/themes/manhattan/rofi/askpass.rasi | 75 ++ dot-config/bspwm/themes/manhattan/rofi/asroot.rasi | 148 +++ .../bspwm/themes/manhattan/rofi/confirm.rasi | 148 +++ .../bspwm/themes/manhattan/rofi/launcher.rasi | 274 +++++ dot-config/bspwm/themes/manhattan/rofi/music.rasi | 148 +++ .../bspwm/themes/manhattan/rofi/networkmenu.rasi | 278 +++++ .../bspwm/themes/manhattan/rofi/powermenu.rasi | 148 +++ dot-config/bspwm/themes/manhattan/rofi/runner.rasi | 274 +++++ .../bspwm/themes/manhattan/rofi/screenshot.rasi | 148 +++ .../bspwm/themes/manhattan/rofi/shared/colors.rasi | 8 + .../bspwm/themes/manhattan/rofi/shared/fonts.rasi | 7 + dot-config/bspwm/themes/manhattan/rofi/themes.rasi | 275 +++++ .../bspwm/themes/manhattan/rofi/windows.rasi | 274 +++++ dot-config/bspwm/themes/manhattan/theme.bash | 85 ++ dot-config/bspwm/themes/manhattan/wallpaper | 1 + dot-config/bspwm/themes/onedark/apply.sh | 278 +++++ dot-config/bspwm/themes/onedark/polybar/.module | 0 dot-config/bspwm/themes/onedark/polybar/colors.ini | 24 + dot-config/bspwm/themes/onedark/polybar/config.ini | 318 +++++ dot-config/bspwm/themes/onedark/polybar/decor.ini | 43 + dot-config/bspwm/themes/onedark/polybar/launch.sh | 42 + .../bspwm/themes/onedark/polybar/modules.ini | 1061 +++++++++++++++++ dot-config/bspwm/themes/onedark/rofi/askpass.rasi | 75 ++ dot-config/bspwm/themes/onedark/rofi/asroot.rasi | 148 +++ dot-config/bspwm/themes/onedark/rofi/confirm.rasi | 148 +++ dot-config/bspwm/themes/onedark/rofi/launcher.rasi | 302 +++++ dot-config/bspwm/themes/onedark/rofi/music.rasi | 148 +++ .../bspwm/themes/onedark/rofi/networkmenu.rasi | 300 +++++ .../bspwm/themes/onedark/rofi/powermenu.rasi | 148 +++ dot-config/bspwm/themes/onedark/rofi/runner.rasi | 302 +++++ .../bspwm/themes/onedark/rofi/screenshot.rasi | 148 +++ .../bspwm/themes/onedark/rofi/shared/colors.rasi | 8 + .../bspwm/themes/onedark/rofi/shared/fonts.rasi | 7 + dot-config/bspwm/themes/onedark/rofi/themes.rasi | 299 +++++ dot-config/bspwm/themes/onedark/rofi/windows.rasi | 302 +++++ dot-config/bspwm/themes/onedark/theme.bash | 82 ++ dot-config/bspwm/themes/onedark/wallpaper | 1 + dot-config/bspwm/themes/polybar.sh | 44 + dot-config/bspwm/themes/slime/apply.sh | 278 +++++ dot-config/bspwm/themes/slime/polybar/.module | 0 dot-config/bspwm/themes/slime/polybar/bars.ini | 645 ++++++++++ dot-config/bspwm/themes/slime/polybar/colors.ini | 24 + dot-config/bspwm/themes/slime/polybar/config.ini | 319 +++++ dot-config/bspwm/themes/slime/polybar/launch.sh | 42 + dot-config/bspwm/themes/slime/polybar/modules.ini | 1095 +++++++++++++++++ dot-config/bspwm/themes/slime/rofi/askpass.rasi | 77 ++ dot-config/bspwm/themes/slime/rofi/asroot.rasi | 145 +++ dot-config/bspwm/themes/slime/rofi/confirm.rasi | 147 +++ dot-config/bspwm/themes/slime/rofi/launcher.rasi | 269 +++++ dot-config/bspwm/themes/slime/rofi/music.rasi | 145 +++ .../bspwm/themes/slime/rofi/networkmenu.rasi | 270 +++++ dot-config/bspwm/themes/slime/rofi/powermenu.rasi | 145 +++ dot-config/bspwm/themes/slime/rofi/runner.rasi | 269 +++++ dot-config/bspwm/themes/slime/rofi/screenshot.rasi | 145 +++ .../bspwm/themes/slime/rofi/shared/colors.rasi | 8 + .../bspwm/themes/slime/rofi/shared/fonts.rasi | 7 + dot-config/bspwm/themes/slime/rofi/themes.rasi | 145 +++ dot-config/bspwm/themes/slime/rofi/windows.rasi | 269 +++++ dot-config/bspwm/themes/slime/theme.bash | 82 ++ dot-config/bspwm/themes/slime/wallpaper | 1 + dot-config/bspwm/themes/spark/apply.sh | 278 +++++ dot-config/bspwm/themes/spark/polybar/.module | 0 dot-config/bspwm/themes/spark/polybar/colors.ini | 24 + dot-config/bspwm/themes/spark/polybar/config.ini | 320 +++++ dot-config/bspwm/themes/spark/polybar/launch.sh | 42 + dot-config/bspwm/themes/spark/polybar/modules.ini | 698 +++++++++++ dot-config/bspwm/themes/spark/rofi/askpass.rasi | 75 ++ dot-config/bspwm/themes/spark/rofi/asroot.rasi | 147 +++ dot-config/bspwm/themes/spark/rofi/confirm.rasi | 147 +++ dot-config/bspwm/themes/spark/rofi/launcher.rasi | 301 +++++ dot-config/bspwm/themes/spark/rofi/music.rasi | 147 +++ .../bspwm/themes/spark/rofi/networkmenu.rasi | 302 +++++ dot-config/bspwm/themes/spark/rofi/powermenu.rasi | 147 +++ dot-config/bspwm/themes/spark/rofi/runner.rasi | 301 +++++ dot-config/bspwm/themes/spark/rofi/screenshot.rasi | 147 +++ .../bspwm/themes/spark/rofi/shared/colors.rasi | 8 + .../bspwm/themes/spark/rofi/shared/fonts.rasi | 7 + dot-config/bspwm/themes/spark/rofi/themes.rasi | 147 +++ dot-config/bspwm/themes/spark/rofi/windows.rasi | 301 +++++ dot-config/bspwm/themes/spark/theme.bash | 85 ++ dot-config/bspwm/themes/spark/wallpaper | 1 + dot-config/bspwm/themes/system.ini | 25 + dot-config/bspwm/themes/wave/apply.sh | 286 +++++ dot-config/bspwm/themes/wave/polybar/.module | 0 dot-config/bspwm/themes/wave/polybar/colors.ini | 31 + dot-config/bspwm/themes/wave/polybar/config.ini | 320 +++++ dot-config/bspwm/themes/wave/polybar/launch.sh | 42 + dot-config/bspwm/themes/wave/polybar/modules.ini | 734 ++++++++++++ dot-config/bspwm/themes/wave/rofi/askpass.rasi | 75 ++ dot-config/bspwm/themes/wave/rofi/asroot.rasi | 145 +++ dot-config/bspwm/themes/wave/rofi/confirm.rasi | 145 +++ dot-config/bspwm/themes/wave/rofi/launcher.rasi | 303 +++++ dot-config/bspwm/themes/wave/rofi/music.rasi | 145 +++ dot-config/bspwm/themes/wave/rofi/networkmenu.rasi | 305 +++++ dot-config/bspwm/themes/wave/rofi/powermenu.rasi | 145 +++ dot-config/bspwm/themes/wave/rofi/runner.rasi | 303 +++++ dot-config/bspwm/themes/wave/rofi/screenshot.rasi | 145 +++ .../bspwm/themes/wave/rofi/shared/colors.rasi | 8 + .../bspwm/themes/wave/rofi/shared/fonts.rasi | 7 + dot-config/bspwm/themes/wave/rofi/themes.rasi | 145 +++ dot-config/bspwm/themes/wave/rofi/windows.rasi | 303 +++++ dot-config/bspwm/themes/wave/theme.bash | 85 ++ dot-config/bspwm/themes/wave/wallpaper | 1 + 260 files changed, 44793 insertions(+) create mode 100644 dot-config/bspwm/alacritty/alacritty.yml create mode 100644 dot-config/bspwm/alacritty/colors.yml create mode 100644 dot-config/bspwm/alacritty/fonts.yml create mode 100755 dot-config/bspwm/bspwmrc create mode 100755 dot-config/bspwm/bspwmrc.bak create mode 100644 dot-config/bspwm/dunstrc create mode 100644 dot-config/bspwm/layout create mode 100644 dot-config/bspwm/picom.conf create mode 100644 dot-config/bspwm/scripts/.zshenv create mode 100755 dot-config/bspwm/scripts/bspasfloat create mode 100755 dot-config/bspwm/scripts/bspasroot create mode 100755 dot-config/bspwm/scripts/bspbar create mode 100755 dot-config/bspwm/scripts/bspbrightness create mode 100755 dot-config/bspwm/scripts/bspcolorpicker create mode 100755 dot-config/bspwm/scripts/bspcomp create mode 100755 dot-config/bspwm/scripts/bspdunst create mode 100755 dot-config/bspwm/scripts/bspfloat create mode 100755 dot-config/bspwm/scripts/bspmusic create mode 100755 dot-config/bspwm/scripts/bspscreenshot create mode 100755 dot-config/bspwm/scripts/bspswallow create mode 100755 dot-config/bspwm/scripts/bspterm create mode 100755 dot-config/bspwm/scripts/bspvolume create mode 100755 dot-config/bspwm/scripts/bspwinmask create mode 100755 dot-config/bspwm/scripts/drag-to-float create mode 100755 dot-config/bspwm/scripts/keep_state create mode 100755 dot-config/bspwm/scripts/noswallow create mode 100755 dot-config/bspwm/scripts/noswallow_dmenu create mode 100755 dot-config/bspwm/scripts/noswallow_open create mode 100755 dot-config/bspwm/scripts/terminals create mode 100644 dot-config/bspwm/sxhkdrc create mode 100644 dot-config/bspwm/themes/.current create mode 100644 dot-config/bspwm/themes/.system create mode 100755 dot-config/bspwm/themes/adaptive/apply.sh create mode 100644 dot-config/bspwm/themes/adaptive/polybar/.module create mode 100644 dot-config/bspwm/themes/adaptive/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/adaptive/polybar/config.ini create mode 100644 dot-config/bspwm/themes/adaptive/polybar/decor.ini create mode 100755 dot-config/bspwm/themes/adaptive/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/adaptive/polybar/modules.ini create mode 100644 dot-config/bspwm/themes/adaptive/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/adaptive/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/adaptive/theme.bash create mode 120000 dot-config/bspwm/themes/adaptive/wallpaper create mode 100755 dot-config/bspwm/themes/beach/apply.sh create mode 100644 dot-config/bspwm/themes/beach/polybar/.module create mode 100644 dot-config/bspwm/themes/beach/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/beach/polybar/config.ini create mode 100755 dot-config/bspwm/themes/beach/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/beach/polybar/modules.ini create mode 100644 dot-config/bspwm/themes/beach/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/beach/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/beach/theme.bash create mode 120000 dot-config/bspwm/themes/beach/wallpaper create mode 100755 dot-config/bspwm/themes/default/apply.sh create mode 100644 dot-config/bspwm/themes/default/archive.zip create mode 100644 dot-config/bspwm/themes/default/polybar/.module create mode 100644 dot-config/bspwm/themes/default/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/default/polybar/config.ini create mode 100644 dot-config/bspwm/themes/default/polybar/decor.ini create mode 100755 dot-config/bspwm/themes/default/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/default/polybar/modules.ini create mode 100644 dot-config/bspwm/themes/default/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/clipboard.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/configs.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/custom_command.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/emoji.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/filebrowser.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/wallpaper.rasi create mode 100644 dot-config/bspwm/themes/default/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/default/theme.bash create mode 120000 dot-config/bspwm/themes/default/wallpaper create mode 100755 dot-config/bspwm/themes/forest/apply.sh create mode 100644 dot-config/bspwm/themes/forest/polybar/.module create mode 100644 dot-config/bspwm/themes/forest/polybar/bars.ini create mode 100644 dot-config/bspwm/themes/forest/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/forest/polybar/config.ini create mode 100755 dot-config/bspwm/themes/forest/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/forest/polybar/modules.ini create mode 100644 dot-config/bspwm/themes/forest/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/forest/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/forest/theme.bash create mode 120000 dot-config/bspwm/themes/forest/wallpaper create mode 100755 dot-config/bspwm/themes/hack/apply.sh create mode 100644 dot-config/bspwm/themes/hack/polybar/.module create mode 100644 dot-config/bspwm/themes/hack/polybar/bars.ini create mode 100644 dot-config/bspwm/themes/hack/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/hack/polybar/config.ini create mode 100755 dot-config/bspwm/themes/hack/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/hack/polybar/modules.ini create mode 100755 dot-config/bspwm/themes/hack/polybar/scripts/check-network create mode 100755 dot-config/bspwm/themes/hack/polybar/scripts/checkupdates create mode 100755 dot-config/bspwm/themes/hack/polybar/scripts/updates.sh create mode 100644 dot-config/bspwm/themes/hack/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/hack/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/hack/theme.bash create mode 120000 dot-config/bspwm/themes/hack/wallpaper create mode 100755 dot-config/bspwm/themes/manhattan/apply.sh create mode 100644 dot-config/bspwm/themes/manhattan/polybar/.module create mode 100644 dot-config/bspwm/themes/manhattan/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/manhattan/polybar/config.ini create mode 100755 dot-config/bspwm/themes/manhattan/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/manhattan/polybar/modules.ini create mode 100644 dot-config/bspwm/themes/manhattan/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/manhattan/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/manhattan/theme.bash create mode 120000 dot-config/bspwm/themes/manhattan/wallpaper create mode 100755 dot-config/bspwm/themes/onedark/apply.sh create mode 100644 dot-config/bspwm/themes/onedark/polybar/.module create mode 100644 dot-config/bspwm/themes/onedark/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/onedark/polybar/config.ini create mode 100644 dot-config/bspwm/themes/onedark/polybar/decor.ini create mode 100755 dot-config/bspwm/themes/onedark/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/onedark/polybar/modules.ini create mode 100644 dot-config/bspwm/themes/onedark/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/onedark/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/onedark/theme.bash create mode 120000 dot-config/bspwm/themes/onedark/wallpaper create mode 100755 dot-config/bspwm/themes/polybar.sh create mode 100755 dot-config/bspwm/themes/slime/apply.sh create mode 100644 dot-config/bspwm/themes/slime/polybar/.module create mode 100644 dot-config/bspwm/themes/slime/polybar/bars.ini create mode 100644 dot-config/bspwm/themes/slime/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/slime/polybar/config.ini create mode 100755 dot-config/bspwm/themes/slime/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/slime/polybar/modules.ini create mode 100644 dot-config/bspwm/themes/slime/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/slime/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/slime/theme.bash create mode 120000 dot-config/bspwm/themes/slime/wallpaper create mode 100755 dot-config/bspwm/themes/spark/apply.sh create mode 100644 dot-config/bspwm/themes/spark/polybar/.module create mode 100644 dot-config/bspwm/themes/spark/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/spark/polybar/config.ini create mode 100755 dot-config/bspwm/themes/spark/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/spark/polybar/modules.ini create mode 100644 dot-config/bspwm/themes/spark/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/spark/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/spark/theme.bash create mode 120000 dot-config/bspwm/themes/spark/wallpaper create mode 100644 dot-config/bspwm/themes/system.ini create mode 100755 dot-config/bspwm/themes/wave/apply.sh create mode 100644 dot-config/bspwm/themes/wave/polybar/.module create mode 100644 dot-config/bspwm/themes/wave/polybar/colors.ini create mode 100644 dot-config/bspwm/themes/wave/polybar/config.ini create mode 100755 dot-config/bspwm/themes/wave/polybar/launch.sh create mode 100644 dot-config/bspwm/themes/wave/polybar/modules.ini create mode 100644 dot-config/bspwm/themes/wave/rofi/askpass.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/asroot.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/confirm.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/launcher.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/music.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/networkmenu.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/powermenu.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/runner.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/screenshot.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/shared/colors.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/shared/fonts.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/themes.rasi create mode 100644 dot-config/bspwm/themes/wave/rofi/windows.rasi create mode 100644 dot-config/bspwm/themes/wave/theme.bash create mode 120000 dot-config/bspwm/themes/wave/wallpaper (limited to 'dot-config/bspwm') 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 +## +## 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 +## +## 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 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 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 +## +## 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 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 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; 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 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 + +;; 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 + +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 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[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 = +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 = () +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: +;