From cb90996fea0d8a02960f3d35f35541743b9374a9 Mon Sep 17 00:00:00 2001 From: adi1090x Date: Thu, 5 Oct 2023 15:39:04 +0530 Subject: [PATCH] Released Openbox 5.0 --- .gitignore | 5 + LICENSE | 674 ++++++++++ PKGBUILD | 93 ++ README.md | 2 + archcraft-openbox.install | 88 ++ build.sh | 32 + files/alacritty/alacritty.yml | 53 + files/alacritty/colors.yml | 30 + files/alacritty/colorschemes/Afterglow.yaml | 48 + files/alacritty/colorschemes/Argonaut.yaml | 32 + files/alacritty/colorschemes/Ayu_dark.yaml | 28 + .../colorschemes/Base16_default_dark.yaml | 33 + files/alacritty/colorschemes/Blood_moon.yaml | 28 + files/alacritty/colorschemes/Breeze.yaml | 44 + files/alacritty/colorschemes/Bright.yml | 27 + files/alacritty/colorschemes/Campbell.yaml | 28 + .../colorschemes/Challenger_deep.yaml | 31 + files/alacritty/colorschemes/Cobalt2.yaml | 34 + .../colorschemes/Cyber_punk_neon.yaml | 34 + .../alacritty/colorschemes/Dark_pastels.yaml | 29 + files/alacritty/colorschemes/Dawn.yml | 27 + files/alacritty/colorschemes/Doom_one.yml | 17 + files/alacritty/colorschemes/Dracula.yaml | 28 + files/alacritty/colorschemes/Erosion.yml | 27 + files/alacritty/colorschemes/Falcon.yaml | 34 + files/alacritty/colorschemes/Flat_remix.yml | 25 + files/alacritty/colorschemes/Gotham.yaml | 28 + .../alacritty/colorschemes/Gruvbox_dark.yaml | 30 + .../alacritty/colorschemes/Gruvbox_light.yaml | 30 + .../colorschemes/Gruvbox_material.yml | 26 + .../alacritty/colorschemes/High_contrast.yaml | 33 + .../alacritty/colorschemes/Horizon_dark.yaml | 28 + files/alacritty/colorschemes/Hund.yml | 27 + files/alacritty/colorschemes/Hybrid.yml | 27 + files/alacritty/colorschemes/Hyper.yaml | 31 + files/alacritty/colorschemes/Invisibone.yml | 27 + files/alacritty/colorschemes/Iterm.yaml | 28 + files/alacritty/colorschemes/Jmbi.yml | 27 + files/alacritty/colorschemes/Kasugano.yml | 27 + .../alacritty/colorschemes/Konsole_linux.yaml | 51 + .../alacritty/colorschemes/Low_contrast.yaml | 33 + .../colorschemes/Material_theme.yaml | 28 + .../colorschemes/Material_theme_mod.yaml | 28 + files/alacritty/colorschemes/Monokai.yml | 27 + files/alacritty/colorschemes/Navy.yml | 27 + files/alacritty/colorschemes/Nord.yaml | 28 + .../alacritty/colorschemes/Oceanic_next.yaml | 28 + files/alacritty/colorschemes/Omni.yml | 38 + files/alacritty/colorschemes/One_dark.yaml | 28 + files/alacritty/colorschemes/Palenight.yml | 30 + .../colorschemes/Papercolor_light.yaml | 32 + files/alacritty/colorschemes/Pastel.yml | 27 + files/alacritty/colorschemes/Pencil_dark.yaml | 26 + .../alacritty/colorschemes/Pencil_light.yaml | 26 + files/alacritty/colorschemes/Remedy_dark.yaml | 38 + files/alacritty/colorschemes/Snazzy.yaml | 28 + .../colorschemes/Solarized_dark.yaml | 28 + .../colorschemes/Solarized_light.yaml | 28 + files/alacritty/colorschemes/Sweetlove.yml | 27 + files/alacritty/colorschemes/Taerminal.yaml | 31 + files/alacritty/colorschemes/Tango_dark.yaml | 26 + files/alacritty/colorschemes/Tender.yaml | 27 + .../alacritty/colorschemes/Terminal_app.yaml | 28 + files/alacritty/colorschemes/Thelovelace.yaml | 27 + files/alacritty/colorschemes/Tokyo_night.yaml | 29 + .../colorschemes/Tokyo_night_storm.yaml | 29 + .../colorschemes/Tomorrow_night.yaml | 33 + .../colorschemes/Tomorrow_night_bright.yaml | 28 + files/alacritty/colorschemes/Vacuous.yml | 27 + files/alacritty/colorschemes/Visibone.yml | 27 + files/alacritty/colorschemes/Wombat.yaml | 28 + files/alacritty/colorschemes/Xterm.yaml | 27 + files/alacritty/colorschemes/Yousai.yml | 27 + files/alacritty/fonts.yml | 36 + files/autostart | 55 + files/environment | 5 + files/icons/apps.png | Bin 0 -> 4747 bytes files/icons/browser.png | Bin 0 -> 7615 bytes files/icons/cmd.png | Bin 0 -> 6692 bytes files/icons/editor.png | Bin 0 -> 1743 bytes files/icons/filemanager.png | Bin 0 -> 1552 bytes files/icons/keyboard.png | Bin 0 -> 5056 bytes files/icons/places.png | Bin 0 -> 2073 bytes files/icons/recents.png | Bin 0 -> 4904 bytes files/icons/record.png | Bin 0 -> 3471 bytes files/icons/root.png | Bin 0 -> 5458 bytes files/icons/settings.png | Bin 0 -> 8606 bytes files/icons/shots.png | Bin 0 -> 4235 bytes files/icons/stats.png | Bin 0 -> 7479 bytes files/icons/sys-exit.png | Bin 0 -> 5916 bytes files/icons/sys-lock.png | Bin 0 -> 3565 bytes files/icons/sys-poweroff-alt.png | Bin 0 -> 5798 bytes files/icons/sys-poweroff.png | Bin 0 -> 5831 bytes files/icons/sys-reboot.png | Bin 0 -> 8019 bytes files/icons/sys-sleep.png | Bin 0 -> 7175 bytes files/icons/terminal.png | Bin 0 -> 2089 bytes files/menu-glyphs.xml | 143 ++ files/menu-icons.xml | 163 +++ files/menu-minimal.xml | 134 ++ files/menu-simple.xml | 143 ++ files/menulib/archcraft.cfg | 237 ++++ files/networkmanager-dmenu/config.ini | 30 + files/nitrogen/bg-saved.cfg | 26 + files/nitrogen/nitrogen.cfg | 14 + files/ob-random/openbox-3/bullet.xbm | 4 + files/ob-random/openbox-3/close.xbm | 6 + files/ob-random/openbox-3/desk.xbm | 6 + files/ob-random/openbox-3/desk_toggled.xbm | 6 + files/ob-random/openbox-3/iconify.xbm | 6 + files/ob-random/openbox-3/max.xbm | 6 + files/ob-random/openbox-3/max_toggled.xbm | 6 + files/ob-random/openbox-3/shade.xbm | 6 + files/ob-random/openbox-3/shade_toggled.xbm | 6 + files/ob-random/openbox-3/themerc | 139 ++ files/obmenu-generator/config.pl | 82 ++ files/obmenu-generator/schema.pl | 31 + files/pipemenus/ac-asroot | 28 + files/pipemenus/ac-change-fonts | 164 +++ files/pipemenus/ac-change-scheme | 38 + files/pipemenus/ac-change-style | 45 + files/pipemenus/ac-compositor | 266 ++++ files/pipemenus/ac-kb | 141 ++ files/pipemenus/ac-kb-pipemenu | 85 ++ files/pipemenus/ac-ob-menu | 32 + files/pipemenus/ac-panel | 86 ++ files/pipemenus/ac-places | 150 +++ files/pipemenus/ac-powermenu | 65 + files/pipemenus/ac-randr | 247 ++++ files/pipemenus/ac-recent-files | 84 ++ files/pipemenus/ac-record | 90 ++ files/pipemenus/ac-shots | 100 ++ files/pipemenus/ac-sysinfo | 80 ++ .../plank/dock1/launchers/Alacritty.dockitem | 2 + files/plank/dock1/launchers/firefox.dockitem | 2 + files/plank/dock1/launchers/geany.dockitem | 2 + files/plank/dock1/launchers/thunar.dockitem | 2 + .../launchers/xfce-settings-manager.dockitem | 2 + .../dock1/launchers/xfce4-terminal.dockitem | 2 + files/rc.xml | 1165 ++++++++++++++++ files/scripts/ob-asroot | 11 + files/scripts/ob-brightness | 73 + files/scripts/ob-colorpicker | 22 + files/scripts/ob-furminal | 9 + files/scripts/ob-music | 12 + files/scripts/ob-screenshot | 87 ++ files/scripts/ob-volume | 83 ++ files/scripts/rofi-askpass | 15 + files/scripts/rofi-bluetooth | 322 +++++ files/scripts/rofi-launcher | 14 + files/scripts/rofi-music | 119 ++ files/scripts/rofi-powermenu | 116 ++ files/scripts/rofi-runner | 13 + files/scripts/rofi-screenshot | 142 ++ files/scripts/tint2-battery | 51 + files/scripts/tint2-bluetooth | 62 + files/scripts/tint2-brightness | 67 + files/scripts/tint2-network | 13 + files/scripts/tint2-volume | 68 + files/themes/.current | 1 + files/themes/.panel | 1 + files/themes/adaptive/apply.sh | 367 +++++ files/themes/adaptive/polybar/colors.ini | 35 + files/themes/adaptive/polybar/config.ini | 307 +++++ files/themes/adaptive/polybar/decor.ini | 92 ++ files/themes/adaptive/polybar/launch.sh | 42 + files/themes/adaptive/polybar/modules.ini | 938 +++++++++++++ .../adaptive/polybar/scripts/bluetooth.sh | 66 + files/themes/adaptive/rofi/askpass.rasi | 75 ++ files/themes/adaptive/rofi/bluetooth.rasi | 155 +++ files/themes/adaptive/rofi/confirm.rasi | 147 ++ files/themes/adaptive/rofi/launcher.rasi | 303 +++++ files/themes/adaptive/rofi/music.rasi | 147 ++ files/themes/adaptive/rofi/networkmenu.rasi | 156 +++ files/themes/adaptive/rofi/powermenu.rasi | 147 ++ files/themes/adaptive/rofi/runner.rasi | 303 +++++ files/themes/adaptive/rofi/screenshot.rasi | 147 ++ files/themes/adaptive/rofi/shared/colors.rasi | 12 + files/themes/adaptive/rofi/shared/fonts.rasi | 7 + files/themes/adaptive/theme.bash | 92 ++ files/themes/adaptive/tint2/tint2rc | 359 +++++ files/themes/adaptive/tint2/tint2rc.basic | 220 +++ files/themes/adaptive/wallpaper | 1 + files/themes/beach/apply.sh | 359 +++++ files/themes/beach/polybar/colors.ini | 28 + files/themes/beach/polybar/config.ini | 317 +++++ files/themes/beach/polybar/launch.sh | 42 + files/themes/beach/polybar/modules.ini | 1073 +++++++++++++++ .../themes/beach/polybar/scripts/bluetooth.sh | 66 + files/themes/beach/rofi/askpass.rasi | 75 ++ files/themes/beach/rofi/bluetooth.rasi | 302 +++++ files/themes/beach/rofi/confirm.rasi | 306 +++++ files/themes/beach/rofi/launcher.rasi | 302 +++++ files/themes/beach/rofi/music.rasi | 306 +++++ files/themes/beach/rofi/networkmenu.rasi | 303 +++++ files/themes/beach/rofi/powermenu.rasi | 306 +++++ files/themes/beach/rofi/runner.rasi | 302 +++++ files/themes/beach/rofi/screenshot.rasi | 306 +++++ files/themes/beach/rofi/shared/colors.rasi | 12 + files/themes/beach/rofi/shared/fonts.rasi | 7 + files/themes/beach/theme.bash | 92 ++ files/themes/beach/tint2/tint2rc | 359 +++++ files/themes/beach/tint2/tint2rc.basic | 220 +++ files/themes/beach/wallpaper | 1 + files/themes/default/apply.sh | 359 +++++ files/themes/default/polybar/colors.ini | 28 + files/themes/default/polybar/config.ini | 318 +++++ files/themes/default/polybar/decor.ini | 43 + files/themes/default/polybar/launch.sh | 42 + files/themes/default/polybar/modules.ini | 985 ++++++++++++++ .../default/polybar/scripts/bluetooth.sh | 66 + files/themes/default/rofi/askpass.rasi | 75 ++ files/themes/default/rofi/bluetooth.rasi | 299 +++++ files/themes/default/rofi/confirm.rasi | 148 +++ files/themes/default/rofi/launcher.rasi | 302 +++++ files/themes/default/rofi/music.rasi | 148 +++ files/themes/default/rofi/networkmenu.rasi | 300 +++++ files/themes/default/rofi/powermenu.rasi | 148 +++ files/themes/default/rofi/runner.rasi | 302 +++++ files/themes/default/rofi/screenshot.rasi | 148 +++ files/themes/default/rofi/shared/colors.rasi | 12 + files/themes/default/rofi/shared/fonts.rasi | 7 + files/themes/default/theme.bash | 92 ++ files/themes/default/tint2/tint2rc | 359 +++++ files/themes/default/tint2/tint2rc.basic | 220 +++ files/themes/default/wallpaper | 1 + files/themes/easy/apply.sh | 364 +++++ files/themes/easy/polybar/colors.ini | 28 + files/themes/easy/polybar/config.ini | 322 +++++ files/themes/easy/polybar/decor.ini | 43 + files/themes/easy/polybar/launch.sh | 42 + files/themes/easy/polybar/modules.ini | 994 ++++++++++++++ .../themes/easy/polybar/scripts/bluetooth.sh | 66 + files/themes/easy/polybar/scripts/polywins.sh | 237 ++++ files/themes/easy/rofi/askpass.rasi | 75 ++ files/themes/easy/rofi/bluetooth.rasi | 302 +++++ files/themes/easy/rofi/confirm.rasi | 148 +++ files/themes/easy/rofi/launcher.rasi | 170 +++ files/themes/easy/rofi/music.rasi | 148 +++ files/themes/easy/rofi/networkmenu.rasi | 303 +++++ files/themes/easy/rofi/powermenu.rasi | 148 +++ files/themes/easy/rofi/runner.rasi | 302 +++++ files/themes/easy/rofi/screenshot.rasi | 148 +++ files/themes/easy/rofi/shared/colors.rasi | 12 + files/themes/easy/rofi/shared/fonts.rasi | 7 + files/themes/easy/theme.bash | 92 ++ files/themes/easy/tint2/tint2rc | 359 +++++ files/themes/easy/tint2/tint2rc.basic | 220 +++ files/themes/easy/wallpaper | 1 + files/themes/forest/apply.sh | 359 +++++ files/themes/forest/polybar/bars.ini | 645 +++++++++ files/themes/forest/polybar/colors.ini | 28 + files/themes/forest/polybar/config.ini | 319 +++++ files/themes/forest/polybar/launch.sh | 42 + files/themes/forest/polybar/modules.ini | 1021 ++++++++++++++ .../forest/polybar/scripts/bluetooth.sh | 66 + files/themes/forest/rofi/askpass.rasi | 75 ++ files/themes/forest/rofi/bluetooth.rasi | 166 +++ files/themes/forest/rofi/confirm.rasi | 147 ++ files/themes/forest/rofi/launcher.rasi | 166 +++ files/themes/forest/rofi/music.rasi | 147 ++ files/themes/forest/rofi/networkmenu.rasi | 167 +++ files/themes/forest/rofi/powermenu.rasi | 147 ++ files/themes/forest/rofi/runner.rasi | 166 +++ files/themes/forest/rofi/screenshot.rasi | 147 ++ files/themes/forest/rofi/shared/colors.rasi | 12 + files/themes/forest/rofi/shared/fonts.rasi | 7 + files/themes/forest/theme.bash | 92 ++ files/themes/forest/tint2/tint2rc | 359 +++++ files/themes/forest/tint2/tint2rc.basic | 220 +++ files/themes/forest/wallpaper | 1 + files/themes/hack/apply.sh | 363 +++++ files/themes/hack/polybar/bars.ini | 553 ++++++++ files/themes/hack/polybar/colors.ini | 32 + files/themes/hack/polybar/config.ini | 309 +++++ files/themes/hack/polybar/launch.sh | 43 + files/themes/hack/polybar/modules.ini | 1181 +++++++++++++++++ .../themes/hack/polybar/scripts/bluetooth.sh | 66 + .../themes/hack/polybar/scripts/check-network | 21 + .../themes/hack/polybar/scripts/checkupdates | 117 ++ files/themes/hack/polybar/scripts/updates.sh | 47 + files/themes/hack/rofi/askpass.rasi | 77 ++ files/themes/hack/rofi/bluetooth.rasi | 279 ++++ files/themes/hack/rofi/confirm.rasi | 147 ++ files/themes/hack/rofi/launcher.rasi | 308 +++++ files/themes/hack/rofi/music.rasi | 147 ++ files/themes/hack/rofi/networkmenu.rasi | 280 ++++ files/themes/hack/rofi/powermenu.rasi | 147 ++ files/themes/hack/rofi/runner.rasi | 279 ++++ files/themes/hack/rofi/screenshot.rasi | 147 ++ files/themes/hack/rofi/shared/colors.rasi | 12 + files/themes/hack/rofi/shared/fonts.rasi | 7 + files/themes/hack/theme.bash | 96 ++ files/themes/hack/tint2/tint2rc | 359 +++++ files/themes/hack/tint2/tint2rc.basic | 220 +++ files/themes/hack/wallpaper | 1 + files/themes/launch-bar.sh | 23 + files/themes/manhattan/apply.sh | 359 +++++ files/themes/manhattan/polybar/colors.ini | 28 + files/themes/manhattan/polybar/config.ini | 320 +++++ files/themes/manhattan/polybar/launch.sh | 42 + files/themes/manhattan/polybar/modules.ini | 657 +++++++++ .../manhattan/polybar/scripts/bluetooth.sh | 66 + files/themes/manhattan/rofi/askpass.rasi | 75 ++ files/themes/manhattan/rofi/bluetooth.rasi | 277 ++++ files/themes/manhattan/rofi/confirm.rasi | 148 +++ files/themes/manhattan/rofi/launcher.rasi | 274 ++++ files/themes/manhattan/rofi/music.rasi | 148 +++ files/themes/manhattan/rofi/networkmenu.rasi | 278 ++++ files/themes/manhattan/rofi/powermenu.rasi | 148 +++ files/themes/manhattan/rofi/runner.rasi | 274 ++++ files/themes/manhattan/rofi/screenshot.rasi | 148 +++ .../themes/manhattan/rofi/shared/colors.rasi | 12 + files/themes/manhattan/rofi/shared/fonts.rasi | 7 + files/themes/manhattan/theme.bash | 95 ++ files/themes/manhattan/tint2/tint2rc | 359 +++++ files/themes/manhattan/tint2/tint2rc.basic | 220 +++ files/themes/manhattan/wallpaper | 1 + files/themes/polybar.sh | 46 + files/themes/slime/apply.sh | 359 +++++ files/themes/slime/polybar/bars.ini | 645 +++++++++ files/themes/slime/polybar/colors.ini | 28 + files/themes/slime/polybar/config.ini | 319 +++++ files/themes/slime/polybar/launch.sh | 42 + files/themes/slime/polybar/modules.ini | 1021 ++++++++++++++ .../themes/slime/polybar/scripts/bluetooth.sh | 66 + files/themes/slime/rofi/askpass.rasi | 77 ++ files/themes/slime/rofi/bluetooth.rasi | 269 ++++ files/themes/slime/rofi/confirm.rasi | 147 ++ files/themes/slime/rofi/launcher.rasi | 269 ++++ files/themes/slime/rofi/music.rasi | 145 ++ files/themes/slime/rofi/networkmenu.rasi | 270 ++++ files/themes/slime/rofi/powermenu.rasi | 145 ++ files/themes/slime/rofi/runner.rasi | 269 ++++ files/themes/slime/rofi/screenshot.rasi | 145 ++ files/themes/slime/rofi/shared/colors.rasi | 12 + files/themes/slime/rofi/shared/fonts.rasi | 7 + files/themes/slime/theme.bash | 92 ++ files/themes/slime/tint2/tint2rc | 359 +++++ files/themes/slime/tint2/tint2rc.basic | 220 +++ files/themes/slime/wallpaper | 1 + files/themes/spark/apply.sh | 359 +++++ files/themes/spark/polybar/colors.ini | 28 + files/themes/spark/polybar/config.ini | 320 +++++ files/themes/spark/polybar/launch.sh | 42 + files/themes/spark/polybar/modules.ini | 624 +++++++++ .../themes/spark/polybar/scripts/bluetooth.sh | 66 + files/themes/spark/rofi/askpass.rasi | 75 ++ files/themes/spark/rofi/bluetooth.rasi | 301 +++++ files/themes/spark/rofi/confirm.rasi | 147 ++ files/themes/spark/rofi/launcher.rasi | 301 +++++ files/themes/spark/rofi/music.rasi | 147 ++ files/themes/spark/rofi/networkmenu.rasi | 302 +++++ files/themes/spark/rofi/powermenu.rasi | 147 ++ files/themes/spark/rofi/runner.rasi | 301 +++++ files/themes/spark/rofi/screenshot.rasi | 147 ++ files/themes/spark/rofi/shared/colors.rasi | 12 + files/themes/spark/rofi/shared/fonts.rasi | 7 + files/themes/spark/theme.bash | 95 ++ files/themes/spark/tint2/tint2rc | 359 +++++ files/themes/spark/tint2/tint2rc.basic | 220 +++ files/themes/spark/wallpaper | 1 + files/themes/system.ini | 26 + files/themes/tint2.sh | 21 + files/themes/wave/apply.sh | 367 +++++ files/themes/wave/polybar/colors.ini | 35 + files/themes/wave/polybar/config.ini | 320 +++++ files/themes/wave/polybar/launch.sh | 42 + files/themes/wave/polybar/modules.ini | 651 +++++++++ .../themes/wave/polybar/scripts/bluetooth.sh | 66 + files/themes/wave/rofi/askpass.rasi | 75 ++ files/themes/wave/rofi/bluetooth.rasi | 304 +++++ files/themes/wave/rofi/confirm.rasi | 145 ++ files/themes/wave/rofi/launcher.rasi | 303 +++++ files/themes/wave/rofi/music.rasi | 145 ++ files/themes/wave/rofi/networkmenu.rasi | 305 +++++ files/themes/wave/rofi/powermenu.rasi | 145 ++ files/themes/wave/rofi/runner.rasi | 303 +++++ files/themes/wave/rofi/screenshot.rasi | 145 ++ files/themes/wave/rofi/shared/colors.rasi | 12 + files/themes/wave/rofi/shared/fonts.rasi | 7 + files/themes/wave/theme.bash | 95 ++ files/themes/wave/tint2/tint2rc | 359 +++++ files/themes/wave/tint2/tint2rc.basic | 220 +++ files/themes/wave/wallpaper | 1 + 384 files changed, 53246 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 PKGBUILD create mode 100644 README.md create mode 100644 archcraft-openbox.install create mode 100755 build.sh create mode 100644 files/alacritty/alacritty.yml create mode 100644 files/alacritty/colors.yml create mode 100644 files/alacritty/colorschemes/Afterglow.yaml create mode 100644 files/alacritty/colorschemes/Argonaut.yaml create mode 100644 files/alacritty/colorschemes/Ayu_dark.yaml create mode 100644 files/alacritty/colorschemes/Base16_default_dark.yaml create mode 100644 files/alacritty/colorschemes/Blood_moon.yaml create mode 100644 files/alacritty/colorschemes/Breeze.yaml create mode 100644 files/alacritty/colorschemes/Bright.yml create mode 100644 files/alacritty/colorschemes/Campbell.yaml create mode 100644 files/alacritty/colorschemes/Challenger_deep.yaml create mode 100644 files/alacritty/colorschemes/Cobalt2.yaml create mode 100644 files/alacritty/colorschemes/Cyber_punk_neon.yaml create mode 100644 files/alacritty/colorschemes/Dark_pastels.yaml create mode 100644 files/alacritty/colorschemes/Dawn.yml create mode 100644 files/alacritty/colorschemes/Doom_one.yml create mode 100644 files/alacritty/colorschemes/Dracula.yaml create mode 100644 files/alacritty/colorschemes/Erosion.yml create mode 100644 files/alacritty/colorschemes/Falcon.yaml create mode 100644 files/alacritty/colorschemes/Flat_remix.yml create mode 100644 files/alacritty/colorschemes/Gotham.yaml create mode 100644 files/alacritty/colorschemes/Gruvbox_dark.yaml create mode 100644 files/alacritty/colorschemes/Gruvbox_light.yaml create mode 100644 files/alacritty/colorschemes/Gruvbox_material.yml create mode 100644 files/alacritty/colorschemes/High_contrast.yaml create mode 100644 files/alacritty/colorschemes/Horizon_dark.yaml create mode 100644 files/alacritty/colorschemes/Hund.yml create mode 100644 files/alacritty/colorschemes/Hybrid.yml create mode 100644 files/alacritty/colorschemes/Hyper.yaml create mode 100644 files/alacritty/colorschemes/Invisibone.yml create mode 100644 files/alacritty/colorschemes/Iterm.yaml create mode 100644 files/alacritty/colorschemes/Jmbi.yml create mode 100644 files/alacritty/colorschemes/Kasugano.yml create mode 100644 files/alacritty/colorschemes/Konsole_linux.yaml create mode 100644 files/alacritty/colorschemes/Low_contrast.yaml create mode 100644 files/alacritty/colorschemes/Material_theme.yaml create mode 100644 files/alacritty/colorschemes/Material_theme_mod.yaml create mode 100644 files/alacritty/colorschemes/Monokai.yml create mode 100644 files/alacritty/colorschemes/Navy.yml create mode 100644 files/alacritty/colorschemes/Nord.yaml create mode 100644 files/alacritty/colorschemes/Oceanic_next.yaml create mode 100644 files/alacritty/colorschemes/Omni.yml create mode 100644 files/alacritty/colorschemes/One_dark.yaml create mode 100644 files/alacritty/colorschemes/Palenight.yml create mode 100644 files/alacritty/colorschemes/Papercolor_light.yaml create mode 100644 files/alacritty/colorschemes/Pastel.yml create mode 100644 files/alacritty/colorschemes/Pencil_dark.yaml create mode 100644 files/alacritty/colorschemes/Pencil_light.yaml create mode 100644 files/alacritty/colorschemes/Remedy_dark.yaml create mode 100644 files/alacritty/colorschemes/Snazzy.yaml create mode 100644 files/alacritty/colorschemes/Solarized_dark.yaml create mode 100644 files/alacritty/colorschemes/Solarized_light.yaml create mode 100644 files/alacritty/colorschemes/Sweetlove.yml create mode 100644 files/alacritty/colorschemes/Taerminal.yaml create mode 100644 files/alacritty/colorschemes/Tango_dark.yaml create mode 100644 files/alacritty/colorschemes/Tender.yaml create mode 100644 files/alacritty/colorschemes/Terminal_app.yaml create mode 100644 files/alacritty/colorschemes/Thelovelace.yaml create mode 100644 files/alacritty/colorschemes/Tokyo_night.yaml create mode 100644 files/alacritty/colorschemes/Tokyo_night_storm.yaml create mode 100644 files/alacritty/colorschemes/Tomorrow_night.yaml create mode 100644 files/alacritty/colorschemes/Tomorrow_night_bright.yaml create mode 100644 files/alacritty/colorschemes/Vacuous.yml create mode 100644 files/alacritty/colorschemes/Visibone.yml create mode 100644 files/alacritty/colorschemes/Wombat.yaml create mode 100644 files/alacritty/colorschemes/Xterm.yaml create mode 100644 files/alacritty/colorschemes/Yousai.yml create mode 100644 files/alacritty/fonts.yml create mode 100755 files/autostart create mode 100644 files/environment create mode 100644 files/icons/apps.png create mode 100644 files/icons/browser.png create mode 100644 files/icons/cmd.png create mode 100644 files/icons/editor.png create mode 100644 files/icons/filemanager.png create mode 100644 files/icons/keyboard.png create mode 100644 files/icons/places.png create mode 100644 files/icons/recents.png create mode 100644 files/icons/record.png create mode 100644 files/icons/root.png create mode 100644 files/icons/settings.png create mode 100644 files/icons/shots.png create mode 100644 files/icons/stats.png create mode 100644 files/icons/sys-exit.png create mode 100644 files/icons/sys-lock.png create mode 100644 files/icons/sys-poweroff-alt.png create mode 100644 files/icons/sys-poweroff.png create mode 100644 files/icons/sys-reboot.png create mode 100644 files/icons/sys-sleep.png create mode 100644 files/icons/terminal.png create mode 100644 files/menu-glyphs.xml create mode 100644 files/menu-icons.xml create mode 100644 files/menu-minimal.xml create mode 100644 files/menu-simple.xml create mode 100644 files/menulib/archcraft.cfg create mode 100644 files/networkmanager-dmenu/config.ini create mode 100644 files/nitrogen/bg-saved.cfg create mode 100644 files/nitrogen/nitrogen.cfg create mode 100644 files/ob-random/openbox-3/bullet.xbm create mode 100644 files/ob-random/openbox-3/close.xbm create mode 100644 files/ob-random/openbox-3/desk.xbm create mode 100644 files/ob-random/openbox-3/desk_toggled.xbm create mode 100644 files/ob-random/openbox-3/iconify.xbm create mode 100644 files/ob-random/openbox-3/max.xbm create mode 100644 files/ob-random/openbox-3/max_toggled.xbm create mode 100644 files/ob-random/openbox-3/shade.xbm create mode 100644 files/ob-random/openbox-3/shade_toggled.xbm create mode 100644 files/ob-random/openbox-3/themerc create mode 100644 files/obmenu-generator/config.pl create mode 100644 files/obmenu-generator/schema.pl create mode 100755 files/pipemenus/ac-asroot create mode 100755 files/pipemenus/ac-change-fonts create mode 100755 files/pipemenus/ac-change-scheme create mode 100755 files/pipemenus/ac-change-style create mode 100755 files/pipemenus/ac-compositor create mode 100755 files/pipemenus/ac-kb create mode 100755 files/pipemenus/ac-kb-pipemenu create mode 100755 files/pipemenus/ac-ob-menu create mode 100755 files/pipemenus/ac-panel create mode 100755 files/pipemenus/ac-places create mode 100755 files/pipemenus/ac-powermenu create mode 100755 files/pipemenus/ac-randr create mode 100755 files/pipemenus/ac-recent-files create mode 100755 files/pipemenus/ac-record create mode 100755 files/pipemenus/ac-shots create mode 100755 files/pipemenus/ac-sysinfo create mode 100644 files/plank/dock1/launchers/Alacritty.dockitem create mode 100644 files/plank/dock1/launchers/firefox.dockitem create mode 100644 files/plank/dock1/launchers/geany.dockitem create mode 100644 files/plank/dock1/launchers/thunar.dockitem create mode 100644 files/plank/dock1/launchers/xfce-settings-manager.dockitem create mode 100644 files/plank/dock1/launchers/xfce4-terminal.dockitem create mode 100644 files/rc.xml create mode 100755 files/scripts/ob-asroot create mode 100755 files/scripts/ob-brightness create mode 100755 files/scripts/ob-colorpicker create mode 100755 files/scripts/ob-furminal create mode 100755 files/scripts/ob-music create mode 100755 files/scripts/ob-screenshot create mode 100755 files/scripts/ob-volume create mode 100755 files/scripts/rofi-askpass create mode 100755 files/scripts/rofi-bluetooth create mode 100755 files/scripts/rofi-launcher create mode 100755 files/scripts/rofi-music create mode 100755 files/scripts/rofi-powermenu create mode 100755 files/scripts/rofi-runner create mode 100755 files/scripts/rofi-screenshot create mode 100755 files/scripts/tint2-battery create mode 100755 files/scripts/tint2-bluetooth create mode 100755 files/scripts/tint2-brightness create mode 100755 files/scripts/tint2-network create mode 100755 files/scripts/tint2-volume create mode 100644 files/themes/.current create mode 100644 files/themes/.panel create mode 100755 files/themes/adaptive/apply.sh create mode 100644 files/themes/adaptive/polybar/colors.ini create mode 100644 files/themes/adaptive/polybar/config.ini create mode 100644 files/themes/adaptive/polybar/decor.ini create mode 100755 files/themes/adaptive/polybar/launch.sh create mode 100644 files/themes/adaptive/polybar/modules.ini create mode 100755 files/themes/adaptive/polybar/scripts/bluetooth.sh create mode 100644 files/themes/adaptive/rofi/askpass.rasi create mode 100644 files/themes/adaptive/rofi/bluetooth.rasi create mode 100644 files/themes/adaptive/rofi/confirm.rasi create mode 100644 files/themes/adaptive/rofi/launcher.rasi create mode 100644 files/themes/adaptive/rofi/music.rasi create mode 100644 files/themes/adaptive/rofi/networkmenu.rasi create mode 100644 files/themes/adaptive/rofi/powermenu.rasi create mode 100644 files/themes/adaptive/rofi/runner.rasi create mode 100644 files/themes/adaptive/rofi/screenshot.rasi create mode 100644 files/themes/adaptive/rofi/shared/colors.rasi create mode 100644 files/themes/adaptive/rofi/shared/fonts.rasi create mode 100644 files/themes/adaptive/theme.bash create mode 100644 files/themes/adaptive/tint2/tint2rc create mode 100644 files/themes/adaptive/tint2/tint2rc.basic create mode 120000 files/themes/adaptive/wallpaper create mode 100755 files/themes/beach/apply.sh create mode 100644 files/themes/beach/polybar/colors.ini create mode 100644 files/themes/beach/polybar/config.ini create mode 100755 files/themes/beach/polybar/launch.sh create mode 100644 files/themes/beach/polybar/modules.ini create mode 100755 files/themes/beach/polybar/scripts/bluetooth.sh create mode 100644 files/themes/beach/rofi/askpass.rasi create mode 100644 files/themes/beach/rofi/bluetooth.rasi create mode 100644 files/themes/beach/rofi/confirm.rasi create mode 100644 files/themes/beach/rofi/launcher.rasi create mode 100644 files/themes/beach/rofi/music.rasi create mode 100644 files/themes/beach/rofi/networkmenu.rasi create mode 100644 files/themes/beach/rofi/powermenu.rasi create mode 100644 files/themes/beach/rofi/runner.rasi create mode 100644 files/themes/beach/rofi/screenshot.rasi create mode 100644 files/themes/beach/rofi/shared/colors.rasi create mode 100644 files/themes/beach/rofi/shared/fonts.rasi create mode 100644 files/themes/beach/theme.bash create mode 100644 files/themes/beach/tint2/tint2rc create mode 100644 files/themes/beach/tint2/tint2rc.basic create mode 120000 files/themes/beach/wallpaper create mode 100755 files/themes/default/apply.sh create mode 100644 files/themes/default/polybar/colors.ini create mode 100644 files/themes/default/polybar/config.ini create mode 100644 files/themes/default/polybar/decor.ini create mode 100755 files/themes/default/polybar/launch.sh create mode 100644 files/themes/default/polybar/modules.ini create mode 100755 files/themes/default/polybar/scripts/bluetooth.sh create mode 100644 files/themes/default/rofi/askpass.rasi create mode 100644 files/themes/default/rofi/bluetooth.rasi create mode 100644 files/themes/default/rofi/confirm.rasi create mode 100644 files/themes/default/rofi/launcher.rasi create mode 100644 files/themes/default/rofi/music.rasi create mode 100644 files/themes/default/rofi/networkmenu.rasi create mode 100644 files/themes/default/rofi/powermenu.rasi create mode 100644 files/themes/default/rofi/runner.rasi create mode 100644 files/themes/default/rofi/screenshot.rasi create mode 100644 files/themes/default/rofi/shared/colors.rasi create mode 100644 files/themes/default/rofi/shared/fonts.rasi create mode 100644 files/themes/default/theme.bash create mode 100644 files/themes/default/tint2/tint2rc create mode 100644 files/themes/default/tint2/tint2rc.basic create mode 120000 files/themes/default/wallpaper create mode 100755 files/themes/easy/apply.sh create mode 100644 files/themes/easy/polybar/colors.ini create mode 100644 files/themes/easy/polybar/config.ini create mode 100644 files/themes/easy/polybar/decor.ini create mode 100755 files/themes/easy/polybar/launch.sh create mode 100644 files/themes/easy/polybar/modules.ini create mode 100755 files/themes/easy/polybar/scripts/bluetooth.sh create mode 100755 files/themes/easy/polybar/scripts/polywins.sh create mode 100644 files/themes/easy/rofi/askpass.rasi create mode 100644 files/themes/easy/rofi/bluetooth.rasi create mode 100644 files/themes/easy/rofi/confirm.rasi create mode 100644 files/themes/easy/rofi/launcher.rasi create mode 100644 files/themes/easy/rofi/music.rasi create mode 100644 files/themes/easy/rofi/networkmenu.rasi create mode 100644 files/themes/easy/rofi/powermenu.rasi create mode 100644 files/themes/easy/rofi/runner.rasi create mode 100644 files/themes/easy/rofi/screenshot.rasi create mode 100644 files/themes/easy/rofi/shared/colors.rasi create mode 100644 files/themes/easy/rofi/shared/fonts.rasi create mode 100644 files/themes/easy/theme.bash create mode 100644 files/themes/easy/tint2/tint2rc create mode 100644 files/themes/easy/tint2/tint2rc.basic create mode 120000 files/themes/easy/wallpaper create mode 100755 files/themes/forest/apply.sh create mode 100644 files/themes/forest/polybar/bars.ini create mode 100644 files/themes/forest/polybar/colors.ini create mode 100644 files/themes/forest/polybar/config.ini create mode 100755 files/themes/forest/polybar/launch.sh create mode 100644 files/themes/forest/polybar/modules.ini create mode 100755 files/themes/forest/polybar/scripts/bluetooth.sh create mode 100644 files/themes/forest/rofi/askpass.rasi create mode 100644 files/themes/forest/rofi/bluetooth.rasi create mode 100644 files/themes/forest/rofi/confirm.rasi create mode 100644 files/themes/forest/rofi/launcher.rasi create mode 100644 files/themes/forest/rofi/music.rasi create mode 100644 files/themes/forest/rofi/networkmenu.rasi create mode 100644 files/themes/forest/rofi/powermenu.rasi create mode 100644 files/themes/forest/rofi/runner.rasi create mode 100644 files/themes/forest/rofi/screenshot.rasi create mode 100644 files/themes/forest/rofi/shared/colors.rasi create mode 100644 files/themes/forest/rofi/shared/fonts.rasi create mode 100644 files/themes/forest/theme.bash create mode 100644 files/themes/forest/tint2/tint2rc create mode 100644 files/themes/forest/tint2/tint2rc.basic create mode 120000 files/themes/forest/wallpaper create mode 100755 files/themes/hack/apply.sh create mode 100644 files/themes/hack/polybar/bars.ini create mode 100644 files/themes/hack/polybar/colors.ini create mode 100644 files/themes/hack/polybar/config.ini create mode 100755 files/themes/hack/polybar/launch.sh create mode 100644 files/themes/hack/polybar/modules.ini create mode 100755 files/themes/hack/polybar/scripts/bluetooth.sh create mode 100755 files/themes/hack/polybar/scripts/check-network create mode 100755 files/themes/hack/polybar/scripts/checkupdates create mode 100755 files/themes/hack/polybar/scripts/updates.sh create mode 100644 files/themes/hack/rofi/askpass.rasi create mode 100644 files/themes/hack/rofi/bluetooth.rasi create mode 100644 files/themes/hack/rofi/confirm.rasi create mode 100644 files/themes/hack/rofi/launcher.rasi create mode 100644 files/themes/hack/rofi/music.rasi create mode 100644 files/themes/hack/rofi/networkmenu.rasi create mode 100644 files/themes/hack/rofi/powermenu.rasi create mode 100644 files/themes/hack/rofi/runner.rasi create mode 100644 files/themes/hack/rofi/screenshot.rasi create mode 100644 files/themes/hack/rofi/shared/colors.rasi create mode 100644 files/themes/hack/rofi/shared/fonts.rasi create mode 100644 files/themes/hack/theme.bash create mode 100644 files/themes/hack/tint2/tint2rc create mode 100644 files/themes/hack/tint2/tint2rc.basic create mode 120000 files/themes/hack/wallpaper create mode 100755 files/themes/launch-bar.sh create mode 100755 files/themes/manhattan/apply.sh create mode 100644 files/themes/manhattan/polybar/colors.ini create mode 100644 files/themes/manhattan/polybar/config.ini create mode 100755 files/themes/manhattan/polybar/launch.sh create mode 100644 files/themes/manhattan/polybar/modules.ini create mode 100755 files/themes/manhattan/polybar/scripts/bluetooth.sh create mode 100644 files/themes/manhattan/rofi/askpass.rasi create mode 100644 files/themes/manhattan/rofi/bluetooth.rasi create mode 100644 files/themes/manhattan/rofi/confirm.rasi create mode 100644 files/themes/manhattan/rofi/launcher.rasi create mode 100644 files/themes/manhattan/rofi/music.rasi create mode 100644 files/themes/manhattan/rofi/networkmenu.rasi create mode 100644 files/themes/manhattan/rofi/powermenu.rasi create mode 100644 files/themes/manhattan/rofi/runner.rasi create mode 100644 files/themes/manhattan/rofi/screenshot.rasi create mode 100644 files/themes/manhattan/rofi/shared/colors.rasi create mode 100644 files/themes/manhattan/rofi/shared/fonts.rasi create mode 100644 files/themes/manhattan/theme.bash create mode 100644 files/themes/manhattan/tint2/tint2rc create mode 100644 files/themes/manhattan/tint2/tint2rc.basic create mode 120000 files/themes/manhattan/wallpaper create mode 100755 files/themes/polybar.sh create mode 100755 files/themes/slime/apply.sh create mode 100644 files/themes/slime/polybar/bars.ini create mode 100644 files/themes/slime/polybar/colors.ini create mode 100644 files/themes/slime/polybar/config.ini create mode 100755 files/themes/slime/polybar/launch.sh create mode 100644 files/themes/slime/polybar/modules.ini create mode 100755 files/themes/slime/polybar/scripts/bluetooth.sh create mode 100644 files/themes/slime/rofi/askpass.rasi create mode 100644 files/themes/slime/rofi/bluetooth.rasi create mode 100644 files/themes/slime/rofi/confirm.rasi create mode 100644 files/themes/slime/rofi/launcher.rasi create mode 100644 files/themes/slime/rofi/music.rasi create mode 100644 files/themes/slime/rofi/networkmenu.rasi create mode 100644 files/themes/slime/rofi/powermenu.rasi create mode 100644 files/themes/slime/rofi/runner.rasi create mode 100644 files/themes/slime/rofi/screenshot.rasi create mode 100644 files/themes/slime/rofi/shared/colors.rasi create mode 100644 files/themes/slime/rofi/shared/fonts.rasi create mode 100644 files/themes/slime/theme.bash create mode 100644 files/themes/slime/tint2/tint2rc create mode 100644 files/themes/slime/tint2/tint2rc.basic create mode 120000 files/themes/slime/wallpaper create mode 100755 files/themes/spark/apply.sh create mode 100644 files/themes/spark/polybar/colors.ini create mode 100644 files/themes/spark/polybar/config.ini create mode 100755 files/themes/spark/polybar/launch.sh create mode 100644 files/themes/spark/polybar/modules.ini create mode 100755 files/themes/spark/polybar/scripts/bluetooth.sh create mode 100644 files/themes/spark/rofi/askpass.rasi create mode 100644 files/themes/spark/rofi/bluetooth.rasi create mode 100644 files/themes/spark/rofi/confirm.rasi create mode 100644 files/themes/spark/rofi/launcher.rasi create mode 100644 files/themes/spark/rofi/music.rasi create mode 100644 files/themes/spark/rofi/networkmenu.rasi create mode 100644 files/themes/spark/rofi/powermenu.rasi create mode 100644 files/themes/spark/rofi/runner.rasi create mode 100644 files/themes/spark/rofi/screenshot.rasi create mode 100644 files/themes/spark/rofi/shared/colors.rasi create mode 100644 files/themes/spark/rofi/shared/fonts.rasi create mode 100644 files/themes/spark/theme.bash create mode 100644 files/themes/spark/tint2/tint2rc create mode 100644 files/themes/spark/tint2/tint2rc.basic create mode 120000 files/themes/spark/wallpaper create mode 100644 files/themes/system.ini create mode 100755 files/themes/tint2.sh create mode 100755 files/themes/wave/apply.sh create mode 100644 files/themes/wave/polybar/colors.ini create mode 100644 files/themes/wave/polybar/config.ini create mode 100755 files/themes/wave/polybar/launch.sh create mode 100644 files/themes/wave/polybar/modules.ini create mode 100755 files/themes/wave/polybar/scripts/bluetooth.sh create mode 100644 files/themes/wave/rofi/askpass.rasi create mode 100644 files/themes/wave/rofi/bluetooth.rasi create mode 100644 files/themes/wave/rofi/confirm.rasi create mode 100644 files/themes/wave/rofi/launcher.rasi create mode 100644 files/themes/wave/rofi/music.rasi create mode 100644 files/themes/wave/rofi/networkmenu.rasi create mode 100644 files/themes/wave/rofi/powermenu.rasi create mode 100644 files/themes/wave/rofi/runner.rasi create mode 100644 files/themes/wave/rofi/screenshot.rasi create mode 100644 files/themes/wave/rofi/shared/colors.rasi create mode 100644 files/themes/wave/rofi/shared/fonts.rasi create mode 100644 files/themes/wave/theme.bash create mode 100644 files/themes/wave/tint2/tint2rc create mode 100644 files/themes/wave/tint2/tint2rc.basic create mode 120000 files/themes/wave/wallpaper diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..af24f00 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/src +/pkg +*.pkg.tar.zst +cleanup.sh +push.sh diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..6b47223 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,93 @@ +# Maintainer: Aditya Shakya + +pkgname=archcraft-openbox +pkgver=5.0 +pkgrel=0 +pkgdesc="Openbox Configurations for Archcraft" +arch=('any') +url="https://github.com/archcraft-os/archcraft-openbox" +license=('GPL3') +depends=('openbox' 'obconf' 'obmenu-generator' 'perl-linux-desktopfiles' + 'pulsemixer' 'light' 'polybar' 'tint2' 'rofi' 'dunst' 'nitrogen' + 'pastel' 'python-pywal' 'xfce4-settings' 'xmlstarlet' 'python-lxml' +) +optdepends=('alacritty: default terminal emulator' + 'thunar: default file manager' + 'geany: default text editor' + 'firefox: default web browser' + 'viewnior: default image viewer' + 'betterlockscreen: default lockscreen' + 'ksuperkey: allows you to open the application launcher using the Super key' + 'networkmanager-dmenu-git: control NetworkManager via rofi' + 'mpd: server-side application for playing music, used in statusbars and scripts' + 'mpc: minimalist command line interface to MPD' + 'ffmpeg: complete solution to record, convert and stream audio and video, used in screenrecord scripts' + 'maim: utility to take a screenshot, used in screenshot scripts' + 'xclip: command line interface to the X11 clipboard' + 'xcolor: lightweight color picker for X11' + 'xfce4-power-manager: power manager' + 'xfce4-terminal: alternate terminal if alacritty does not work for you' + 'xorg-xsetroot: fix cursor theming, set root background' + 'yad: display graphical dialogs from shell scripts' +) +conflicts=('archcraft-openbox-premium') +options=(!strip !emptydirs) +install="${pkgname}.install" + +prepare() { + cp -af ../files/. "$srcdir" +} + +package() { + local _sharedir="$pkgdir"/usr/share/archcraft/openbox + local _configdir="$pkgdir"/etc/skel/.config + local _obdir="$_configdir"/openbox + + mkdir -p "$_sharedir" && mkdir -p "$_configdir" && mkdir -p "$_obdir" + + # Copy shared files & set permissions + cp -r "$srcdir"/icons "$_sharedir" + cp -r "$srcdir"/menulib "$_sharedir" + cp -r "$srcdir"/ob-random "$_sharedir" + cp -r "$srcdir"/pipemenus "$_sharedir" + chmod +x "$_sharedir"/pipemenus/* + + # Copy openbox specific configs + cp -r "$srcdir"/alacritty "$_configdir" + cp -r "$srcdir"/networkmanager-dmenu "$_configdir" + cp -r "$srcdir"/nitrogen "$_configdir" + cp -r "$srcdir"/obmenu-generator "$_configdir" + cp -r "$srcdir"/plank "$_configdir" + + # Copy window manager configs + install -Dm 755 autostart "$_obdir"/autostart + install -Dm 644 environment "$_obdir"/environment + install -Dm 644 menu-glyphs.xml "$_obdir"/menu-glyphs.xml + install -Dm 644 menu-icons.xml "$_obdir"/menu-icons.xml + install -Dm 644 menu-minimal.xml "$_obdir"/menu-minimal.xml + install -Dm 644 menu-simple.xml "$_obdir"/menu-simple.xml + install -Dm 644 rc.xml "$_obdir"/rc.xml + + # Copy openbox scripts + cp -r "$srcdir"/scripts "$_obdir" + chmod +x "$_obdir"/scripts/* + + # Copy openbox themes + cp -r "$srcdir"/themes "$_obdir" + chmod +x "$_obdir"/themes/{launch-bar,polybar,tint2}.sh + + apply_files=(`find ${_obdir}/themes -type f | grep apply.sh`) + for _afile in "${apply_files[@]}"; do + chmod +x ${_afile} + done + + launch_files=(`find ${_obdir}/themes -type f | grep launch.sh`) + for _lfile in "${launch_files[@]}"; do + chmod +x ${_lfile} + done + + scripts_dir=(`find ${_obdir}/themes -type d | grep scripts`) + for _script in "${scripts_dir[@]}"; do + chmod +x ${_script}/* + done +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..ed0dcc5 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# archcraft-openbox + // Configuration : Openbox diff --git a/archcraft-openbox.install b/archcraft-openbox.install new file mode 100644 index 0000000..bdb08ad --- /dev/null +++ b/archcraft-openbox.install @@ -0,0 +1,88 @@ +## Colors ---------------------------- + +# Text Reset +Color_Off='\033[0m' + +# Regular +Black='\033[0;30m' Red='\033[0;31m' Green='\033[0;32m' Yellow='\033[0;33m' +Blue='\033[0;34m' Purple='\033[0;35m' Cyan='\033[0;36m' White='\033[0;37m' + +# Bold +BBlack='\033[1;30m' BRed='\033[1;31m' BGreen='\033[1;32m' BYellow='\033[1;33m' +BBlue='\033[1;34m' BPurple='\033[1;35m' BCyan='\033[1;36m' BWhite='\033[1;37m' + +## ----------------------------------- + +## User info +user_name=`echo ${SUDO_USER:-$(whoami)}` +group_id=`echo ${SUDO_GID}` +user_group=`cat /etc/group | grep $group_id | cut -d: -f1 | head -1` + +## Packages specific +config_dir="/home/${user_name}/.config" +skel_dir='/etc/skel/.config' +wm_config='openbox' +wm_name='Openbox' +current_config="$config_dir/$wm_config" +updated_config="$config_dir/${wm_config}_pacnew_`date +%d-%m-%y`" + +## ----------------------------------- + +## Install Config files +install_wm_config() { + echo -e ${Blue}"\n[*] Copying ${BBlue}${wm_name}${Blue} config files into ${BBlue}${config_dir}" ${Color_Off} + mkdir -p "$current_config" + cp -rf "$skel_dir/$wm_config"/* "$current_config"/ + chown -R ${user_name}:${user_group} "$current_config" + + if [[ -d "$current_config" ]]; then + echo -e ${Green}"[*] Configuration files installed successfully!\n" ${Color_Off} + else + echo -e ${Red}"[!] Failed to install configuration files!\n" ${Color_Off} + fi +} + +## Update Config files +update_wm_config() { + echo -e ${Blue}"\n[*] Copying latest ${BBlue}${wm_name}${Blue} config files into ${BBlue}${config_dir}" ${Color_Off} + mkdir -p "$updated_config" + cp -rf "$skel_dir/$wm_config"/* "$updated_config"/ + chown -R ${user_name}:${user_group} "$updated_config" + + if [[ -d "$updated_config" ]]; then + echo -e ${Green}"[*] Latest configuration files installed successfully!" ${Color_Off} + echo -e ${Yellow}"[+] Latest config files are stored in : ${BYellow}${updated_config}${Yellow}" ${Color_Off} + echo -e ${Purple}"[*] To use latest config files, rename ${BPurple}${updated_config}${Purple} to ${BPurple}${current_config}${Purple}\n" ${Color_Off} + else + echo -e ${Red}"[!] Failed to install latest configuration files!\n" ${Color_Off} + fi +} + +## ----------------------------------- + +## Main +run_main() { + if [[ "$user_group" == 'liveuser' ]]; then + exit + else + if [[ ! -d "$current_config" ]]; then + install_wm_config + else + update_wm_config + fi + fi +} + +post_install() { + run_main +} + +post_upgrade() { + run_main +} + +post_remove() { + if [[ -d "$current_config" ]]; then + echo -e ${Red}"\n[*] Config files for ${BYellow}${wm_name}${Red} are still available in : ${BGreen}${current_config}${Red} directory. If you want to remove them, Do it manually.\n" ${Color_Off} + fi +} diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..1cec6ed --- /dev/null +++ b/build.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya + +## Script Termination +exit_on_signal_SIGINT () { + { printf "\n\n%s\n" "Script interrupted." 2>&1; echo; } + exit 0 +} + +exit_on_signal_SIGTERM () { + { printf "\n\n%s\n" "Script terminated." 2>&1; echo; } + exit 0 +} + +trap exit_on_signal_SIGINT SIGINT +trap exit_on_signal_SIGTERM SIGTERM + +## Build packages +build_pkg () { + echo -e "\nBuilding Package - \n" + makepkg -sc + + RDIR='../../pkgs/x86_64' + if [[ -d "$RDIR" ]]; then + mv -f *.pkg.tar.zst "$RDIR" + echo -e "\nPackage moved to Repository.\n[!] Don't forget to update the database.\n" + fi +} + +## Execute +build_pkg diff --git a/files/alacritty/alacritty.yml b/files/alacritty/alacritty.yml new file mode 100644 index 0000000..8296a06 --- /dev/null +++ b/files/alacritty/alacritty.yml @@ -0,0 +1,53 @@ +## Copyright (C) 2020-2023 Aditya Shakya + +## 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/alacritty/colors.yml + - ~/.config/alacritty/fonts.yml + +## Set environment variables +env: + TERM: alacritty + WINIT_X11_SCALE_FACTOR: '1.0' + +## Terminal window settings +window: + dimensions: + columns: 82 + lines: 24 + + padding: + x: 12 + y: 12 + + decorations: full + startup_mode: Windowed + dynamic_title: true + +## scrolling + history: 10000 + multiplier: 3 + +## Background opacity + opacity: 1.0 + +## 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/files/alacritty/colors.yml b/files/alacritty/colors.yml new file mode 100644 index 0000000..a2e1149 --- /dev/null +++ b/files/alacritty/colors.yml @@ -0,0 +1,30 @@ +## Copyright (C) 2020-2023 Aditya Shakya + +## Colors configuration +colors: + # Default colors + primary: + background: '#1E2128' + foreground: '#ABB2BF' + + # Normal colors + normal: + black: '#32363D' + red: '#E06B74' + green: '#98C379' + yellow: '#E5C07A' + blue: '#62AEEF' + magenta: '#C778DD' + cyan: '#55B6C2' + white: '#ABB2BF' + + # Bright colors + bright: + black: '#50545B' + red: '#EA757E' + green: '#A2CD83' + yellow: '#EFCA84' + blue: '#6CB8F9' + magenta: '#D282E7' + cyan: '#5FC0CC' + white: '#B5BCC9' diff --git a/files/alacritty/colorschemes/Afterglow.yaml b/files/alacritty/colorschemes/Afterglow.yaml new file mode 100644 index 0000000..44a97d8 --- /dev/null +++ b/files/alacritty/colorschemes/Afterglow.yaml @@ -0,0 +1,48 @@ +colors: + # Default colors + primary: + background: '0x2c2c2c' + foreground: '0xd6d6d6' + + dim_foreground: '0xdbdbdb' + bright_foreground: '0xd9d9d9' + dim_background: '0x202020' # not sure + bright_background: '0x3a3a3a' # not sure + + # Cursor colors + cursor: + text: '0x2c2c2c' + cursor: '0xd9d9d9' + + # Normal colors + normal: + black: '0x1c1c1c' + red: '0xbc5653' + green: '0x909d63' + yellow: '0xebc17a' + blue: '0x7eaac7' + magenta: '0xaa6292' + cyan: '0x86d3ce' + white: '0xcacaca' + + # Bright colors + bright: + black: '0x636363' + red: '0xbc5653' + green: '0x909d63' + yellow: '0xebc17a' + blue: '0x7eaac7' + magenta: '0xaa6292' + cyan: '0x86d3ce' + white: '0xf7f7f7' + + # Dim colors + dim: + black: '0x232323' + red: '0x74423f' + green: '0x5e6547' + yellow: '0x8b7653' + blue: '0x556b79' + magenta: '0x6e4962' + cyan: '0x5c8482' + white: '0x828282' diff --git a/files/alacritty/colorschemes/Argonaut.yaml b/files/alacritty/colorschemes/Argonaut.yaml new file mode 100644 index 0000000..db7678b --- /dev/null +++ b/files/alacritty/colorschemes/Argonaut.yaml @@ -0,0 +1,32 @@ +colors: + # Default colors + primary: + background: '0x292C3E' + foreground: '0xEBEBEB' + + # Cursor colors + cursor: + text: '0xFF261E' + cursor: '0xFF261E' + + # Normal colors + normal: + black: '0x0d0d0d' + red: '0xFF301B' + green: '0xA0E521' + yellow: '0xFFC620' + blue: '0x1BA6FA' + magenta: '0x8763B8' + cyan: '0x21DEEF' + white: '0xEBEBEB' + + # Bright colors + bright: + black: '0x6D7070' + red: '0xFF4352' + green: '0xB8E466' + yellow: '0xFFD750' + blue: '0x1BA6FA' + magenta: '0xA578EA' + cyan: '0x73FBF1' + white: '0xFEFEF8' diff --git a/files/alacritty/colorschemes/Ayu_dark.yaml b/files/alacritty/colorschemes/Ayu_dark.yaml new file mode 100644 index 0000000..c0fa142 --- /dev/null +++ b/files/alacritty/colorschemes/Ayu_dark.yaml @@ -0,0 +1,28 @@ +# Colors (Ayu Dark) +colors: + # Default colors + primary: + background: '0x0A0E14' + foreground: '0xB3B1AD' + + # Normal colors + normal: + black: '0x01060E' + red: '0xEA6C73' + green: '0x91B362' + yellow: '0xF9AF4F' + blue: '0x53BDFA' + magenta: '0xFAE994' + cyan: '0x90E1C6' + white: '0xC7C7C7' + + # Bright colors + bright: + black: '0x686868' + red: '0xF07178' + green: '0xC2D94C' + yellow: '0xFFB454' + blue: '0x59C2FF' + magenta: '0xFFEE99' + cyan: '0x95E6CB' + white: '0xFFFFFF' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Base16_default_dark.yaml b/files/alacritty/colorschemes/Base16_default_dark.yaml new file mode 100644 index 0000000..28aa143 --- /dev/null +++ b/files/alacritty/colorschemes/Base16_default_dark.yaml @@ -0,0 +1,33 @@ +# Colors (Base16 Default Dark) +colors: + # Default colors + primary: + background: '0x181818' + foreground: '0xd8d8d8' + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '0xd8d8d8' + cursor: '0xd8d8d8' + + # Normal colors + normal: + black: '0x181818' + red: '0xab4642' + green: '0xa1b56c' + yellow: '0xf7ca88' + blue: '0x7cafc2' + magenta: '0xba8baf' + cyan: '0x86c1b9' + white: '0xd8d8d8' + + # Bright colors + bright: + black: '0x585858' + red: '0xab4642' + green: '0xa1b56c' + yellow: '0xf7ca88' + blue: '0x7cafc2' + magenta: '0xba8baf' + cyan: '0x86c1b9' + white: '0xf8f8f8' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Blood_moon.yaml b/files/alacritty/colorschemes/Blood_moon.yaml new file mode 100644 index 0000000..9ae3be1 --- /dev/null +++ b/files/alacritty/colorschemes/Blood_moon.yaml @@ -0,0 +1,28 @@ +# Colors (Blood Moon) +colors: + # Default colors + primary: + background: '0x10100E' + foreground: '0xC6C6C4' + + # Normal colors + normal: + black: '0x10100E' + red: '0xC40233' + green: '0x009F6B' + yellow: '0xFFD700' + blue: '0x0087BD' + magenta: '0x9A4EAE' + cyan: '0x20B2AA' + white: '0xC6C6C4' + + # Bright colors + bright: + black: '0x696969' + red: '0xFF2400' + green: '0x03C03C' + yellow: '0xFDFF00' + blue: '0x007FFF' + magenta: '0xFF1493' + cyan: '0x00CCCC' + white: '0xFFFAFA' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Breeze.yaml b/files/alacritty/colorschemes/Breeze.yaml new file mode 100644 index 0000000..62bad22 --- /dev/null +++ b/files/alacritty/colorschemes/Breeze.yaml @@ -0,0 +1,44 @@ +# KDE Breeze (Ported from Konsole) +colors: + # Default colors + primary: + background: '0x232627' + foreground: '0xfcfcfc' + + dim_foreground: '0xeff0f1' + bright_foreground: '0xffffff' + dim_background: '0x31363b' + bright_background: '0x000000' + + # Normal colors + normal: + black: '0x232627' + red: '0xed1515' + green: '0x11d116' + yellow: '0xf67400' + blue: '0x1d99f3' + magenta: '0x9b59b6' + cyan: '0x1abc9c' + white: '0xfcfcfc' + + # Bright colors + bright: + black: '0x7f8c8d' + red: '0xc0392b' + green: '0x1cdc9a' + yellow: '0xfdbc4b' + blue: '0x3daee9' + magenta: '0x8e44ad' + cyan: '0x16a085' + white: '0xffffff' + + # Dim colors + dim: + black: '0x31363b' + red: '0x783228' + green: '0x17a262' + yellow: '0xb65619' + blue: '0x1b668f' + magenta: '0x614a73' + cyan: '0x186c60' + white: '0x63686d' diff --git a/files/alacritty/colorschemes/Bright.yml b/files/alacritty/colorschemes/Bright.yml new file mode 100644 index 0000000..6c2c0d2 --- /dev/null +++ b/files/alacritty/colorschemes/Bright.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0xf3f3f3' + foreground: '0x707070' + + # Normal colors + normal: + black: '0xd3d3d3' + red: '0xef6b7b' + green: '0xa1d569' + yellow: '0xf59335' + blue: '0x4ec2e8' + magenta: '0xfec7cd' + cyan: '0x95c1c0' + white: '0x707070' + + # Bright colors + bright: + black: '0xb3b3b3' + red: '0xed5466' + green: '0xafdb80' + yellow: '0xf59335' + blue: '0x5dc7ea' + magenta: '0xd2a4b4' + cyan: '0x75a1a0' + white: '0x909090' diff --git a/files/alacritty/colorschemes/Campbell.yaml b/files/alacritty/colorschemes/Campbell.yaml new file mode 100644 index 0000000..95dba05 --- /dev/null +++ b/files/alacritty/colorschemes/Campbell.yaml @@ -0,0 +1,28 @@ +# Campbell (Windows 10 default) +colors: + # Default colors + primary: + background: '0x0c0c0c' + foreground: '0xcccccc' + + # Normal colors + normal: + black: '0x0c0c0c' + red: '0xc50f1f' + green: '0x13a10e' + yellow: '0xc19c00' + blue: '0x0037da' + magenta: '0x881798' + cyan: '0x3a96dd' + white: '0xcccccc' + + # Bright colors + bright: + black: '0x767676' + red: '0xe74856' + green: '0x16c60c' + yellow: '0xf9f1a5' + blue: '0x3b78ff' + magenta: '0xb4009e' + cyan: '0x61d6d6' + white: '0xf2f2f2' diff --git a/files/alacritty/colorschemes/Challenger_deep.yaml b/files/alacritty/colorschemes/Challenger_deep.yaml new file mode 100644 index 0000000..4030163 --- /dev/null +++ b/files/alacritty/colorschemes/Challenger_deep.yaml @@ -0,0 +1,31 @@ +# Colors (Challenger Deep) +colors: + # Default colors + primary: + background: '0x1e1c31' + foreground: '0xcbe1e7' + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '0xff271d' + cursor: '0xfbfcfc' + # Normal colors + normal: + black: '0x141228' + red: '0xff5458' + green: '0x62d196' + yellow: '0xffb378' + blue: '0x65b2ff' + magenta: '0x906cff' + cyan: '0x63f2f1' + white: '0xa6b3cc' + # Bright colors + bright: + black: '0x565575' + red: '0xff8080' + green: '0x95ffa4' + yellow: '0xffe9aa' + blue: '0x91ddff' + magenta: '0xc991e1' + cyan: '0xaaffe4' + white: '0xcbe3e7' + diff --git a/files/alacritty/colorschemes/Cobalt2.yaml b/files/alacritty/colorschemes/Cobalt2.yaml new file mode 100644 index 0000000..576a502 --- /dev/null +++ b/files/alacritty/colorschemes/Cobalt2.yaml @@ -0,0 +1,34 @@ +# From the famous Cobalt2 sublime theme +# Source : https://github.com/wesbos/cobalt2/tree/master/Cobalt2 +colors: + # Default colors + primary: + background: '0x122637' + foreground: '0xffffff' + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '0x122637' + cursor: '0xf0cb09' + + # Normal colors + normal: + black: '0x000000' + red: '0xff0000' + green: '0x37dd21' + yellow: '0xfee409' + blue: '0x1460d2' + magenta: '0xff005d' + cyan: '0x00bbbb' + white: '0xbbbbbb' + + # Bright colors + bright: + black: '0x545454' + red: '0xf40d17' + green: '0x3bcf1d' + yellow: '0xecc809' + blue: '0x5555ff' + magenta: '0xff55ff' + cyan: '0x6ae3f9' + white: '0xffffff' diff --git a/files/alacritty/colorschemes/Cyber_punk_neon.yaml b/files/alacritty/colorschemes/Cyber_punk_neon.yaml new file mode 100644 index 0000000..5292ddd --- /dev/null +++ b/files/alacritty/colorschemes/Cyber_punk_neon.yaml @@ -0,0 +1,34 @@ +# Cyber Punk Neon +# Source: https://github.com/Roboron3042/Cyberpunk-Neon +colors: + # Default colors + primary: + background: "0x000b1e" + foreground: "0x0abdc6" + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: "0x000b1e" + cursor: "0x0abdc6" + + # Normal colors + normal: + black: "0x123e7c" + red: "0xff0000" + green: "0xd300c4" + yellow: "0xf57800" + blue: "0x123e7c" + magenta: "0x711c91" + cyan: "0x0abdc6" + white: "0xd7d7d5" + + # Bright colors + bright: + black: "0x1c61c2" + red: "0xff0000" + green: "0xd300c4" + yellow: "0xf57800" + blue: "0x00ff00" + magenta: "0x711c91" + cyan: "0x0abdc6" + white: "0xd7d7d5" diff --git a/files/alacritty/colorschemes/Dark_pastels.yaml b/files/alacritty/colorschemes/Dark_pastels.yaml new file mode 100644 index 0000000..97eb7f9 --- /dev/null +++ b/files/alacritty/colorschemes/Dark_pastels.yaml @@ -0,0 +1,29 @@ + +# Colors (Konsole's Dark Pastels) +colors: + # Default colors + primary: + background: '0x2C2C2C' + foreground: '0xDCDCCC' + + # Normal colors + normal: + black: '0x3F3F3F' + red: '0x705050' + green: '0x60B48A' + yellow: '0xDFAF8F' + blue: '0x9AB8D7' + magenta: '0xDC8CC3' + cyan: '0x8CD0D3' + white: '0xDCDCCC' + + # Bright colors + bright: + black: '0x709080' + red: '0xDCA3A3' + green: '0x72D5A3' + yellow: '0xF0DFAF' + blue: '0x94BFF3' + magenta: '0xEC93D3' + cyan: '0x93E0E3' + white: '0xFFFFFF' diff --git a/files/alacritty/colorschemes/Dawn.yml b/files/alacritty/colorschemes/Dawn.yml new file mode 100644 index 0000000..d6dab0a --- /dev/null +++ b/files/alacritty/colorschemes/Dawn.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x181b20' + foreground: '0x9b9081' + + # Normal colors + normal: + black: '0x353535' + red: '0x744b40' + green: '0x6d6137' + yellow: '0x765636' + blue: '0x61564b' + magenta: '0x6b4a49' + cyan: '0x435861' + white: '0xb3b3b3' + + # Bright colors + bright: + black: '0x5f5f5f' + red: '0x785850' + green: '0x6f6749' + yellow: '0x776049' + blue: '0x696057' + magenta: '0x6f5a59' + cyan: '0x525f66' + white: '0xcdcdcd' diff --git a/files/alacritty/colorschemes/Doom_one.yml b/files/alacritty/colorschemes/Doom_one.yml new file mode 100644 index 0000000..cdbdaf4 --- /dev/null +++ b/files/alacritty/colorschemes/Doom_one.yml @@ -0,0 +1,17 @@ +# Colors (Doom One) +colors: + # Default colors + primary: + background: '0x282c34' + foreground: '0xbbc2cf' + + # Normal colors + normal: + black: '0x282c34' + red: '0xff6c6b' + green: '0x98be65' + yellow: '0xecbe7b' + blue: '0x51afef' + magenta: '0xc678dd' + cyan: '0x46d9ff' + white: '0xbbc2cf' diff --git a/files/alacritty/colorschemes/Dracula.yaml b/files/alacritty/colorschemes/Dracula.yaml new file mode 100644 index 0000000..f5026c1 --- /dev/null +++ b/files/alacritty/colorschemes/Dracula.yaml @@ -0,0 +1,28 @@ +# Colors (Dracula) +colors: + # Default colors + primary: + background: '0x282a36' + foreground: '0xf8f8f2' + + # Normal colors + normal: + black: '0x000000' + red: '0xff5555' + green: '0x50fa7b' + yellow: '0xf1fa8c' + blue: '0xbd93f9' + magenta: '0xff79c6' + cyan: '0x8be9fd' + white: '0xbbbbbb' + + # Bright colors + bright: + black: '0x555555' + red: '0xff5555' + green: '0x50fa7b' + yellow: '0xf1fa8c' + blue: '0xcaa9fa' + magenta: '0xff79c6' + cyan: '0x8be9fd' + white: '0xffffff' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Erosion.yml b/files/alacritty/colorschemes/Erosion.yml new file mode 100644 index 0000000..133fc4c --- /dev/null +++ b/files/alacritty/colorschemes/Erosion.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x181512' + foreground: '0xbea492' + + # Normal colors + normal: + black: '0x332d29' + red: '0x8c644c' + green: '0x746c48' + yellow: '0x908a66' + blue: '0x646a6d' + magenta: '0x605655' + cyan: '0x4b5c5e' + white: '0x504339' + + # Bright colors + bright: + black: '0x817267' + red: '0x9f7155' + green: '0x857b52' + yellow: '0x9c956e' + blue: '0x71777a' + magenta: '0x656565' + cyan: '0x556d70' + white: '0x9a875f' diff --git a/files/alacritty/colorschemes/Falcon.yaml b/files/alacritty/colorschemes/Falcon.yaml new file mode 100644 index 0000000..33c267b --- /dev/null +++ b/files/alacritty/colorschemes/Falcon.yaml @@ -0,0 +1,34 @@ +# falcon colorscheme for alacritty +# by fenetikm, https://github.com/fenetikm/falcon +colors: + # Default colors + primary: + background: '0x020221' + foreground: '0xb4b4b9' + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '0x020221' + cursor: '0xffe8c0' + + # Normal colors + normal: + black: '0x000004' + red: '0xff3600' + green: '0x718e3f' + yellow: '0xffc552' + blue: '0x635196' + magenta: '0xff761a' + cyan: '0x34bfa4' + white: '0xb4b4b9' + + # Bright colors + bright: + black: '0x020221' + red: '0xff8e78' + green: '0xb1bf75' + yellow: '0xffd392' + blue: '0x99a4bc' + magenta: '0xffb07b' + cyan: '0x8bccbf' + white: '0xf8f8ff' diff --git a/files/alacritty/colorschemes/Flat_remix.yml b/files/alacritty/colorschemes/Flat_remix.yml new file mode 100644 index 0000000..5105553 --- /dev/null +++ b/files/alacritty/colorschemes/Flat_remix.yml @@ -0,0 +1,25 @@ +colors: + primary: + background: '0x272a34' + foreground: '0xFFFFFF' + + normal: + black: '0x1F2229' + red: '0xEC0101' + green: '0x47D4B9' + yellow: '0xFF8A18' + blue: '0x277FFF' + magenta: '0xD71655' + cyan: '0x05A1F7' + white: '0xFFFFFF' + + + bright: + black: '0x1F2229' + red: '0xD41919' + green: '0x5EBDAB' + yellow: '0xFEA44C' + blue: '0x367bf0' + magenta: '0xBF2E5D' + cyan: '0x49AEE6' + white: '0xFFFFFF' diff --git a/files/alacritty/colorschemes/Gotham.yaml b/files/alacritty/colorschemes/Gotham.yaml new file mode 100644 index 0000000..f58f9a3 --- /dev/null +++ b/files/alacritty/colorschemes/Gotham.yaml @@ -0,0 +1,28 @@ +# Colors (Gotham) +colors: + # Default colors + primary: + background: '0x0a0f14' + foreground: '0x98d1ce' + + # Normal colors + normal: + black: '0x0a0f14' + red: '0xc33027' + green: '0x26a98b' + yellow: '0xedb54b' + blue: '0x195465' + magenta: '0x4e5165' + cyan: '0x33859d' + white: '0x98d1ce' + + # Bright colors + bright: + black: '0x10151b' + red: '0xd26939' + green: '0x081f2d' + yellow: '0x245361' + blue: '0x093748' + magenta: '0x888ba5' + cyan: '0x599caa' + white: '0xd3ebe9' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Gruvbox_dark.yaml b/files/alacritty/colorschemes/Gruvbox_dark.yaml new file mode 100644 index 0000000..d9c604f --- /dev/null +++ b/files/alacritty/colorschemes/Gruvbox_dark.yaml @@ -0,0 +1,30 @@ +# Colors (Gruvbox dark) +colors: + # Default colors + primary: + # hard contrast: background = '0x1d2021' + background: '0x282828' + # soft contrast: background = '0x32302f' + foreground: '0xebdbb2' + + # Normal colors + normal: + black: '0x282828' + red: '0xcc241d' + green: '0x98971a' + yellow: '0xd79921' + blue: '0x458588' + magenta: '0xb16286' + cyan: '0x689d6a' + white: '0xa89984' + + # Bright colors + bright: + black: '0x928374' + red: '0xfb4934' + green: '0xb8bb26' + yellow: '0xfabd2f' + blue: '0x83a598' + magenta: '0xd3869b' + cyan: '0x8ec07c' + white: '0xebdbb2' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Gruvbox_light.yaml b/files/alacritty/colorschemes/Gruvbox_light.yaml new file mode 100644 index 0000000..d679c3c --- /dev/null +++ b/files/alacritty/colorschemes/Gruvbox_light.yaml @@ -0,0 +1,30 @@ +# Colors (Gruvbox light) +colors: + # Default colors + primary: + # hard contrast: background = '0xf9f5d7' + background: '0xfbf1c7' + # soft contrast: background = '0xf2e5bc' + foreground: '0x3c3836' + + # Normal colors + normal: + black: '0xfbf1c7' + red: '0xcc241d' + green: '0x98971a' + yellow: '0xd79921' + blue: '0x458588' + magenta: '0xb16286' + cyan: '0x689d6a' + white: '0x7c6f64' + + # Bright colors + bright: + black: '0x928374' + red: '0x9d0006' + green: '0x79740e' + yellow: '0xb57614' + blue: '0x076678' + magenta: '0x8f3f71' + cyan: '0x427b58' + white: '0x3c3836' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Gruvbox_material.yml b/files/alacritty/colorschemes/Gruvbox_material.yml new file mode 100644 index 0000000..397b03f --- /dev/null +++ b/files/alacritty/colorschemes/Gruvbox_material.yml @@ -0,0 +1,26 @@ +# Colors (Gruvbox Material Dark Medium) +colors: + primary: + background: '0x282828' + foreground: '0xdfbf8e' + + normal: + black: '0x665c54' + red: '0xea6962' + green: '0xa9b665' + yellow: '0xe78a4e' + blue: '0x7daea3' + magenta: '0xd3869b' + cyan: '0x89b482' + white: '0xdfbf8e' + + bright: + black: '0x928374' + red: '0xea6962' + green: '0xa9b665' + yellow: '0xe3a84e' + blue: '0x7daea3' + magenta: '0xd3869b' + cyan: '0x89b482' + white: '0xdfbf8e' + diff --git a/files/alacritty/colorschemes/High_contrast.yaml b/files/alacritty/colorschemes/High_contrast.yaml new file mode 100644 index 0000000..cd4cdb7 --- /dev/null +++ b/files/alacritty/colorschemes/High_contrast.yaml @@ -0,0 +1,33 @@ +# Colors (High Contrast) +colors: + # Default colors + primary: + background: '0x444444' + foreground: '0xdddddd' + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '0xaaaaaa' + cursor: '0xffffff' + + # Normal colors + normal: + black: '0x000000' + red: '0xff0000' + green: '0x00ff00' + yellow: '0xffff00' + blue: '0x0000ff' + magenta: '0xff00ff' + cyan: '0x00ffff' + white: '0xffffff' + + # Bright colors + bright: + black: '0x000000' + red: '0xff0000' + green: '0x00ff00' + yellow: '0xffff00' + blue: '0x0000ff' + magenta: '0xff00ff' + cyan: '0x00ffff' + white: '0xffffff' diff --git a/files/alacritty/colorschemes/Horizon_dark.yaml b/files/alacritty/colorschemes/Horizon_dark.yaml new file mode 100644 index 0000000..d6e29fd --- /dev/null +++ b/files/alacritty/colorschemes/Horizon_dark.yaml @@ -0,0 +1,28 @@ +# Colors (Horizon Dark) +colors: + # Primary colors + primary: + background: '0x1c1e26' + foreground: '0xe0e0e0' + + # Normal colors + normal: + black: '0x16161c' + red: '0xe95678' + green: '0x29d398' + yellow: '0xfab795' + blue: '0x26bbd9' + magenta: '0xee64ac' + cyan: '0x59e1e3' + white: '0xd5d8da' + + # Bright colors + bright: + black: '0x5b5858' + red: '0xec6a88' + green: '0x3fdaa4' + yellow: '0xfbc3a7' + blue: '0x3fc4de' + magenta: '0xf075b5' + cyan: '0x6be4e6' + white: '0xd5d8da' diff --git a/files/alacritty/colorschemes/Hund.yml b/files/alacritty/colorschemes/Hund.yml new file mode 100644 index 0000000..5713876 --- /dev/null +++ b/files/alacritty/colorschemes/Hund.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x161616' + foreground: '0xffffff' + + # Normal colors + normal: + black: '0x222222' + red: '0xe84f4f' + green: '0xb7ce42' + yellow: '0xfea63c' + blue: '0x66aabb' + magenta: '0xb7416e' + cyan: '0x6d878d' + white: '0xdddddd' + + # Bright colors + bright: + black: '0x666666' + red: '0xd23d3d' + green: '0xbde077' + yellow: '0xffe863' + blue: '0xaaccbb' + magenta: '0xe16a98' + cyan: '0x42717b' + white: '0xcccccc' diff --git a/files/alacritty/colorschemes/Hybrid.yml b/files/alacritty/colorschemes/Hybrid.yml new file mode 100644 index 0000000..ed246f6 --- /dev/null +++ b/files/alacritty/colorschemes/Hybrid.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x1d1f21' + foreground: '0xc5c8c6' + + # Normal colors + normal: + black: '0x282a2e' + red: '0xa54242' + green: '0x8c9440' + yellow: '0xde935f' + blue: '0x5f819d' + magenta: '0x85678f' + cyan: '0x5e8d87' + white: '0x707880' + + # Bright colors + bright: + black: '0x373b41' + red: '0xcc6666' + green: '0xb5bd68' + yellow: '0xf0c674' + blue: '0x81a2be' + magenta: '0xb294bb' + cyan: '0x8abeb7' + white: '0xc5c8c6' diff --git a/files/alacritty/colorschemes/Hyper.yaml b/files/alacritty/colorschemes/Hyper.yaml new file mode 100644 index 0000000..5b84d66 --- /dev/null +++ b/files/alacritty/colorschemes/Hyper.yaml @@ -0,0 +1,31 @@ +# Colors (Hyper) +colors: + # Default colors + primary: + background: '0x000000' + foreground: '0xffffff' + cursor: + text: '0xF81CE5' + cursor: '0xffffff' + + # Normal colors + normal: + black: '0x000000' + red: '0xfe0100' + green: '0x33ff00' + yellow: '0xfeff00' + blue: '0x0066ff' + magenta: '0xcc00ff' + cyan: '0x00ffff' + white: '0xd0d0d0' + + # Bright colors + bright: + black: '0x808080' + red: '0xfe0100' + green: '0x33ff00' + yellow: '0xfeff00' + blue: '0x0066ff' + magenta: '0xcc00ff' + cyan: '0x00ffff' + white: '0xFFFFFF' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Invisibone.yml b/files/alacritty/colorschemes/Invisibone.yml new file mode 100644 index 0000000..dfbf7c5 --- /dev/null +++ b/files/alacritty/colorschemes/Invisibone.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x232323' + foreground: '0xa0a0a0' + + # Normal colors + normal: + black: '0x303030' + red: '0xd370a3' + green: '0x6d9e3f' + yellow: '0xb58858' + blue: '0x6095c5' + magenta: '0xac7bde' + cyan: '0x3ba275' + white: '0xcfcfcf' + + # Bright colors + bright: + black: '0x686868' + red: '0xffa7da' + green: '0xa3d572' + yellow: '0xefbd8b' + blue: '0x98cbfe' + magenta: '0xe5b0ff' + cyan: '0x75daa9' + white: '0xffffff' diff --git a/files/alacritty/colorschemes/Iterm.yaml b/files/alacritty/colorschemes/Iterm.yaml new file mode 100644 index 0000000..2c31223 --- /dev/null +++ b/files/alacritty/colorschemes/Iterm.yaml @@ -0,0 +1,28 @@ +# Colors (iTerm 2 default theme) +colors: + # Default colors + primary: + background: '0x101421' + foreground: '0xfffbf6' + + # Normal colors + normal: + black: '0x2e2e2e' + red: '0xeb4129' + green: '0xabe047' + yellow: '0xf6c744' + blue: '0x47a0f3' + magenta: '0x7b5cb0' + cyan: '0x64dbed' + white: '0xe5e9f0' + + # Bright colors + bright: + black: '0x565656' + red: '0xec5357' + green: '0xc0e17d' + yellow: '0xf9da6a' + blue: '0x49a4f8' + magenta: '0xa47de9' + cyan: '0x99faf2' + white: '0xffffff' diff --git a/files/alacritty/colorschemes/Jmbi.yml b/files/alacritty/colorschemes/Jmbi.yml new file mode 100644 index 0000000..945a3ff --- /dev/null +++ b/files/alacritty/colorschemes/Jmbi.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x1e1e1e' + foreground: '0xffffff' + + # Normal colors + normal: + black: '0x5a7260' + red: '0x8f423c' + green: '0xbbbb88' + yellow: '0xf9d25b' + blue: '0xe0ba69' + magenta: '0x709289' + cyan: '0xd13516' + white: '0xefe2e0' + + # Bright colors + bright: + black: '0x8da691' + red: '0xeeaa88' + green: '0xccc68d' + yellow: '0xeedd99' + blue: '0xc9b957' + magenta: '0xffcbab' + cyan: '0xc25431' + white: '0xf9f1ed' diff --git a/files/alacritty/colorschemes/Kasugano.yml b/files/alacritty/colorschemes/Kasugano.yml new file mode 100644 index 0000000..33f3f67 --- /dev/null +++ b/files/alacritty/colorschemes/Kasugano.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x1b1b1b' + foreground: '0xffffff' + + # Normal colors + normal: + black: '0x3d3d3d' + red: '0x6673bf' + green: '0x3ea290' + yellow: '0xb0ead9' + blue: '0x31658c' + magenta: '0x596196' + cyan: '0x8292b2' + white: '0xc8cacc' + + # Bright colors + bright: + black: '0x4d4d4d' + red: '0x899aff' + green: '0x52ad91' + yellow: '0x98c9bb' + blue: '0x477ab3' + magenta: '0x7882bf' + cyan: '0x95a7cc' + white: '0xedeff2' diff --git a/files/alacritty/colorschemes/Konsole_linux.yaml b/files/alacritty/colorschemes/Konsole_linux.yaml new file mode 100644 index 0000000..b4f3e2f --- /dev/null +++ b/files/alacritty/colorschemes/Konsole_linux.yaml @@ -0,0 +1,51 @@ +# Color theme ported from Konsole: Linux colors +colors: + primary: + foreground: '0xe3e3e3' + bright_foreground: '0xffffff' + dim_foreground: '0xe3e3e3' + background: '0x1f1f1f' + bright_background: '0x686868' # not sure + dim_background: '0x1f1f1f' # not sure + + cursor: + text: '0x191622' + cursor: '0xf8f8f2' + + search: + matches: + foreground: '0xb2b2b2' + background: '0xb26818' + focused_match: + foreground: CellBackground + background: CellForeground + + normal: + black: '0x000000' + red: '0xb21818' + green: '0x18b218' + yellow: '0xb26818' + blue: '0x1818b2' + magenta: '0xb218b2' + cyan: '0x18b2b2' + white: '0xb2b2b2' + + bright: + black: '0x686868' + red: '0xff5454' + green: '0x54ff54' + yellow: '0xffff54' + blue: '0x5454ff' + magenta: '0xff54ff' + cyan: '0x54ffff' + white: '0xffffff' + + dim: + black: '0x000000' + red: '0xb21818' + green: '0x18b218' + yellow: '0xb26818' + blue: '0x1818b2' + magenta: '0xb218b2' + cyan: '0x18b2b2' + white: '0xb2b2b2' diff --git a/files/alacritty/colorschemes/Low_contrast.yaml b/files/alacritty/colorschemes/Low_contrast.yaml new file mode 100644 index 0000000..35bbb4e --- /dev/null +++ b/files/alacritty/colorschemes/Low_contrast.yaml @@ -0,0 +1,33 @@ +# Colors (Dim) +colors: + # Default colors + primary: + background: '0x333333' + foreground: '0xdddddd' + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '0xaaaaaa' + cursor: '0xffffff' + + # Normal colors + normal: + black: '0x000000' + red: '0xbb0000' + green: '0x00bb00' + yellow: '0xbbbb00' + blue: '0x0000bb' + magenta: '0xbb00bb' + cyan: '0x00bbbb' + white: '0xbbbbbb' + + # Bright colors + bright: + black: '0x000000' + red: '0xbb0000' + green: '0x00bb00' + yellow: '0xbbbb00' + blue: '0x0000bb' + magenta: '0xbb00bb' + cyan: '0x00bbbb' + white: '0xbbbbbb' diff --git a/files/alacritty/colorschemes/Material_theme.yaml b/files/alacritty/colorschemes/Material_theme.yaml new file mode 100644 index 0000000..400c5f6 --- /dev/null +++ b/files/alacritty/colorschemes/Material_theme.yaml @@ -0,0 +1,28 @@ +# Colors (Material Theme) +colors: + # Default colors + primary: + background: '0x1e282d' + foreground: '0xc4c7d1' + + # Normal colors + normal: + black: '0x666666' + red: '0xeb606b' + green: '0xc3e88d' + yellow: '0xf7eb95' + blue: '0x80cbc4' + magenta: '0xff2f90' + cyan: '0xaeddff' + white: '0xffffff' + + # Bright colors + bright: + black: '0xff262b' + red: '0xeb606b' + green: '0xc3e88d' + yellow: '0xf7eb95' + blue: '0x7dc6bf' + magenta: '0x6c71c4' + cyan: '0x35434d' + white: '0xffffff' diff --git a/files/alacritty/colorschemes/Material_theme_mod.yaml b/files/alacritty/colorschemes/Material_theme_mod.yaml new file mode 100644 index 0000000..cb68fbd --- /dev/null +++ b/files/alacritty/colorschemes/Material_theme_mod.yaml @@ -0,0 +1,28 @@ +# Colors (Material Theme) +colors: + # Default colors + primary: + background: '0x1e282d' + foreground: '0xc4c7d1' + + # Normal colors + normal: + black: '0x666666' + red: '0xeb606b' + green: '0xc3e88d' + yellow: '0xf7eb95' + blue: '0x80cbc4' + magenta: '0xff2f90' + cyan: '0xaeddff' + white: '0xffffff' + + # Bright colors + bright: + black: '0xa1a1a1' + red: '0xeb606b' + green: '0xc3e88d' + yellow: '0xf7eb95' + blue: '0x7dc6bf' + magenta: '0x6c71c4' + cyan: '0x35434d' + white: '0xffffff' diff --git a/files/alacritty/colorschemes/Monokai.yml b/files/alacritty/colorschemes/Monokai.yml new file mode 100644 index 0000000..7600a5f --- /dev/null +++ b/files/alacritty/colorschemes/Monokai.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x272822' + foreground: '0xf1ebeb' + + # Normal colors + normal: + black: '0x48483e' + red: '0xdc2566' + green: '0x8fc029' + yellow: '0xd4c96e' + blue: '0x55bcce' + magenta: '0x9358fe' + cyan: '0x56b7a5' + white: '0xacada1' + + # Bright colors + bright: + black: '0x76715e' + red: '0xfa2772' + green: '0xa7e22e' + yellow: '0xe7db75' + blue: '0x66d9ee' + magenta: '0xae82ff' + cyan: '0x66efd5' + white: '0xcfd0c2' diff --git a/files/alacritty/colorschemes/Navy.yml b/files/alacritty/colorschemes/Navy.yml new file mode 100644 index 0000000..07d2fe4 --- /dev/null +++ b/files/alacritty/colorschemes/Navy.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x021b21' + foreground: '0xe8dfd6' + + # Normal colors + normal: + black: '0x032c36' + red: '0xc2454e' + green: '0x7cbf9e' + yellow: '0x8a7a63' + blue: '0x2e3340' + magenta: '0xff5879' + cyan: '0x44b5b1' + white: '0xf2f1b9' + + # Bright colors + bright: + black: '0x065f73' + red: '0xef5847' + green: '0xa2d9b1' + yellow: '0xbeb090' + blue: '0x61778d' + magenta: '0xff99a1' + cyan: '0x9ed9d8' + white: '0xf6f6c9' diff --git a/files/alacritty/colorschemes/Nord.yaml b/files/alacritty/colorschemes/Nord.yaml new file mode 100644 index 0000000..4e8d093 --- /dev/null +++ b/files/alacritty/colorschemes/Nord.yaml @@ -0,0 +1,28 @@ +# Colors (Nord) +colors: + # Default colors + primary: + background: '0x2E3440' + foreground: '0xD8DEE9' + + # Normal colors + normal: + black: '0x3B4252' + red: '0xBF616A' + green: '0xA3BE8C' + yellow: '0xEBCB8B' + blue: '0x81A1C1' + magenta: '0xB48EAD' + cyan: '0x88C0D0' + white: '0xE5E9F0' + + # Bright colors + bright: + black: '0x4C566A' + red: '0xBF616A' + green: '0xA3BE8C' + yellow: '0xEBCB8B' + blue: '0x81A1C1' + magenta: '0xB48EAD' + cyan: '0x8FBCBB' + white: '0xECEFF4' diff --git a/files/alacritty/colorschemes/Oceanic_next.yaml b/files/alacritty/colorschemes/Oceanic_next.yaml new file mode 100644 index 0000000..9bad83f --- /dev/null +++ b/files/alacritty/colorschemes/Oceanic_next.yaml @@ -0,0 +1,28 @@ +# Colors (Oceanic Next) +colors: + # Default colors + primary: + background: '0x1b2b34' + foreground: '0xd8dee9' + + # Normal colors + normal: + black: '0x29414f' + red: '0xec5f67' + green: '0x99c794' + yellow: '0xfac863' + blue: '0x6699cc' + magenta: '0xc594c5' + cyan: '0x5fb3b3' + white: '0x65737e' + + # Bright colors + bright: + black: '0x405860' + red: '0xec5f67' + green: '0x99c794' + yellow: '0xfac863' + blue: '0x6699cc' + magenta: '0xc594c5' + cyan: '0x5fb3b3' + white: '0xadb5c0' diff --git a/files/alacritty/colorschemes/Omni.yml b/files/alacritty/colorschemes/Omni.yml new file mode 100644 index 0000000..91570e1 --- /dev/null +++ b/files/alacritty/colorschemes/Omni.yml @@ -0,0 +1,38 @@ +colors: + primary: + background: '0x191622' + foreground: '0xe1e1e6' + + cursor: + text: '0x191622' + cursor: '0xf8f8f2' + + normal: + black: '0x000000' + red: '0xff5555' + green: '0x50fa7b' + yellow: '0xeffa78' + blue: '0xbd93f9' + magenta: '0xff79c6' + cyan: '0x8d79ba' + white: '0xbfbfbf' + + bright: + black: '0x4d4d4d' + red: '0xff6e67' + green: '0x5af78e' + yellow: '0xeaf08d' + blue: '0xcaa9fa' + magenta: '0xff92d0' + cyan: '0xaa91e3' + white: '0xe6e6e6' + + dim: + black: '0x000000' + red: '0xa90000' + green: '0x049f2b' + yellow: '0xa3b106' + blue: '0x530aba' + magenta: '0xbb006b' + cyan: '0x433364' + white: '0x5f5f5f' diff --git a/files/alacritty/colorschemes/One_dark.yaml b/files/alacritty/colorschemes/One_dark.yaml new file mode 100644 index 0000000..a54e040 --- /dev/null +++ b/files/alacritty/colorschemes/One_dark.yaml @@ -0,0 +1,28 @@ +# Colors (One Dark) +colors: + # Default colors + primary: + background: '0x1e2127' + foreground: '0xabb2bf' + + # Normal colors + normal: + black: '0x1e2127' + red: '0xe06c75' + green: '0x98c379' + yellow: '0xd19a66' + blue: '0x61afef' + magenta: '0xc678dd' + cyan: '0x56b6c2' + white: '0xabb2bf' + + # Bright colors + bright: + black: '0x5c6370' + red: '0xe06c75' + green: '0x98c379' + yellow: '0xd19a66' + blue: '0x61afef' + magenta: '0xc678dd' + cyan: '0x56b6c2' + white: '0xffffff' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Palenight.yml b/files/alacritty/colorschemes/Palenight.yml new file mode 100644 index 0000000..f65206a --- /dev/null +++ b/files/alacritty/colorschemes/Palenight.yml @@ -0,0 +1,30 @@ +# iTerm2 Material Design - Palenight theme for Alacritty +# Source : https://github.com/JonathanSpeek/palenight-iterm2 + +colors: + # Default colors + primary: + background: '0x292d3e' + foreground: '0xd0d0d0' + + # Normal colors + normal: + black: '0x292d3e' + red: '0xf07178' + green: '0xc3e88d' + yellow: '0xffcb6b' + blue: '0x82aaff' + magenta: '0xc792ea' + cyan: '0x89ddff' + white: '0xd0d0d0' + + # Bright colors + bright: + black: '0x434758' + red: '0xff8b92' + green: '0xddffa7' + yellow: '0xffe585' + blue: '0x9cc4ff' + magenta: '0xe1acff' + cyan: '0xa3f7ff' + white: '0xffffff' diff --git a/files/alacritty/colorschemes/Papercolor_light.yaml b/files/alacritty/colorschemes/Papercolor_light.yaml new file mode 100644 index 0000000..5770b1d --- /dev/null +++ b/files/alacritty/colorschemes/Papercolor_light.yaml @@ -0,0 +1,32 @@ +# Colors (PaperColor - Light) +colors: + # Default colors + primary: + background: '0xeeeeee' + foreground: '0x878787' + + cursor: + text: '0xeeeeee' + cursor: '0x878787' + + # Normal colors + normal: + black: '0xeeeeee' + red: '0xaf0000' + green: '0x008700' + yellow: '0x5f8700' + blue: '0x0087af' + magenta: '0x878787' + cyan: '0x005f87' + white: '0x444444' + + # Bright colors + bright: + black: '0xbcbcbc' + red: '0xd70000' + green: '0xd70087' + yellow: '0x8700af' + blue: '0xd75f00' + magenta: '0xd75f00' + cyan: '0x005faf' + white: '0x005f87' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Pastel.yml b/files/alacritty/colorschemes/Pastel.yml new file mode 100644 index 0000000..f5fd63c --- /dev/null +++ b/files/alacritty/colorschemes/Pastel.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x151515' + foreground: '0x888888' + + # Normal colors + normal: + black: '0x292929' + red: '0xcf6a4c' + green: '0x19cb00' + yellow: '0xfad07a' + blue: '0x8197bf' + magenta: '0x8787af' + cyan: '0x668799' + white: '0x888888' + + # Bright colors + bright: + black: '0x525252' + red: '0xff9d80' + green: '0x23fd00' + yellow: '0xffefbf' + blue: '0xaccaff' + magenta: '0xc4c4ff' + cyan: '0x80bfaf' + white: '0xe8e8d3' diff --git a/files/alacritty/colorschemes/Pencil_dark.yaml b/files/alacritty/colorschemes/Pencil_dark.yaml new file mode 100644 index 0000000..9bb2a13 --- /dev/null +++ b/files/alacritty/colorschemes/Pencil_dark.yaml @@ -0,0 +1,26 @@ +# Colors (Pencil Dark) +colors: + # Default Colors + primary: + background: '0x212121' + foreground: '0xf1f1f1' + # Normal colors + normal: + black: '0x212121' + red: '0xc30771' + green: '0x10a778' + yellow: '0xa89c14' + blue: '0x008ec4' + magenta: '0x523c79' + cyan: '0x20a5ba' + white: '0xe0e0e0' + # Bright colors + bright: + black: '0x818181' + red: '0xfb007a' + green: '0x5fd7af' + yellow: '0xf3e430' + blue: '0x20bbfc' + magenta: '0x6855de' + cyan: '0x4fb8cc' + white: '0xf1f1f1' diff --git a/files/alacritty/colorschemes/Pencil_light.yaml b/files/alacritty/colorschemes/Pencil_light.yaml new file mode 100644 index 0000000..10db04d --- /dev/null +++ b/files/alacritty/colorschemes/Pencil_light.yaml @@ -0,0 +1,26 @@ +# Colors (Pencil Light) +colors: + # Default Colors + primary: + background: '0xf1f1f1' + foreground: '0x424242' + # Normal colors + normal: + black: '0x212121' + red: '0xc30771' + green: '0x10a778' + yellow: '0xa89c14' + blue: '0x008ec4' + magenta: '0x523c79' + cyan: '0x20a5ba' + white: '0xe0e0e0' + # Bright colors + bright: + black: '0x212121' + red: '0xfb007a' + green: '0x5fd7af' + yellow: '0xf3e430' + blue: '0x20bbfc' + magenta: '0x6855de' + cyan: '0x4fb8cc' + white: '0xf1f1f1' diff --git a/files/alacritty/colorschemes/Remedy_dark.yaml b/files/alacritty/colorschemes/Remedy_dark.yaml new file mode 100644 index 0000000..0cd339f --- /dev/null +++ b/files/alacritty/colorschemes/Remedy_dark.yaml @@ -0,0 +1,38 @@ +colors: + # Default colors + primary: + background: '0x2c2b2a' + foreground: '0xf9e7c4' + + dim_foreground: '0x685E4A' + bright_foreground: '0x1C1508' + dim_background: '0x202322' + bright_background: '0x353433' + + # Cursor colors + cursor: + text: '0xf9e7c4' + cursor: '0xf9e7c4' + + # Normal colors + normal: + black: '0x282a2e' + blue: '0x5f819d' + cyan: '0x5e8d87' + green: '0x8c9440' + magenta: '0x85678f' + orange: '0xcc6953' + red: '0xa54242' + white: '0x707880' + yellow: '0xde935f' + + # Bright colors + bright: + black: '0x373b41' + blue: '0x81a2be' + cyan: '0x8abeb7' + green: '0xb5bd68' + magenta: '0xb294bb' + red: '0xcc6666' + white: '0xc5c8c6' + yellow: '0xf0c674' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Snazzy.yaml b/files/alacritty/colorschemes/Snazzy.yaml new file mode 100644 index 0000000..aacebd0 --- /dev/null +++ b/files/alacritty/colorschemes/Snazzy.yaml @@ -0,0 +1,28 @@ +# Colors (Snazzy) +colors: + # Default colors + primary: + background: '0x282a36' + foreground: '0xeff0eb' + + # Normal colors + normal: + black: '0x282a36' + red: '0xff5c57' + green: '0x5af78e' + yellow: '0xf3f99d' + blue: '0x57c7ff' + magenta: '0xff6ac1' + cyan: '0x9aedfe' + white: '0xf1f1f0' + + # Bright colors + bright: + black: '0x686868' + red: '0xff5c57' + green: '0x5af78e' + yellow: '0xf3f99d' + blue: '0x57c7ff' + magenta: '0xff6ac1' + cyan: '0x9aedfe' + white: '0xf1f1f0' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Solarized_dark.yaml b/files/alacritty/colorschemes/Solarized_dark.yaml new file mode 100644 index 0000000..0055c81 --- /dev/null +++ b/files/alacritty/colorschemes/Solarized_dark.yaml @@ -0,0 +1,28 @@ +# Colors (Solarized Dark) +colors: + # Default colors + primary: + background: '0x002b36' + foreground: '0x839496' + + # Normal colors + normal: + black: '0x073642' + red: '0xdc322f' + green: '0x859900' + yellow: '0xb58900' + blue: '0x268bd2' + magenta: '0xd33682' + cyan: '0x2aa198' + white: '0xeee8d5' + + # Bright colors + bright: + black: '0x002b36' + red: '0xcb4b16' + green: '0x586e75' + yellow: '0x657b83' + blue: '0x839496' + magenta: '0x6c71c4' + cyan: '0x93a1a1' + white: '0xfdf6e3' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Solarized_light.yaml b/files/alacritty/colorschemes/Solarized_light.yaml new file mode 100644 index 0000000..6a5acd9 --- /dev/null +++ b/files/alacritty/colorschemes/Solarized_light.yaml @@ -0,0 +1,28 @@ +# Colors (Solarized Light) +colors: + # Default colors + primary: + background: '0xfdf6e3' + foreground: '0x586e75' + + # Normal colors + normal: + black: '0x073642' + red: '0xdc322f' + green: '0x859900' + yellow: '0xb58900' + blue: '0x268bd2' + magenta: '0xd33682' + cyan: '0x2aa198' + white: '0xeee8d5' + + # Bright colors + bright: + black: '0x002b36' + red: '0xcb4b16' + green: '0x586e75' + yellow: '0x657b83' + blue: '0x839496' + magenta: '0x6c71c4' + cyan: '0x93a1a1' + white: '0xfdf6e3' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Sweetlove.yml b/files/alacritty/colorschemes/Sweetlove.yml new file mode 100644 index 0000000..3233ecd --- /dev/null +++ b/files/alacritty/colorschemes/Sweetlove.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x1f1f1f' + foreground: '0xc0b18b' + + # Normal colors + normal: + black: '0x4a3637' + red: '0xd17b49' + green: '0x7b8748' + yellow: '0xaf865a' + blue: '0x535c5c' + magenta: '0x775759' + cyan: '0x6d715e' + white: '0xc0b18b' + + # Bright colors + bright: + black: '0x402e2e' + red: '0xac5d2f' + green: '0x647035' + yellow: '0x8f6840' + blue: '0x444b4b' + magenta: '0x614445' + cyan: '0x585c49' + white: '0x978965' diff --git a/files/alacritty/colorschemes/Taerminal.yaml b/files/alacritty/colorschemes/Taerminal.yaml new file mode 100644 index 0000000..9dc804c --- /dev/null +++ b/files/alacritty/colorschemes/Taerminal.yaml @@ -0,0 +1,31 @@ +# Colors (Taerminal) +colors: + # Default colors + primary: + background: '0x26282a' + foreground: '0xf0f0f0' + cursor: + background: '0xf0f0f0' + foreground: '0x26282a' + + # Normal colors + normal: + black: '0x26282a' + red: '0xff8878' + green: '0xb4fb73' + yellow: '0xfffcb7' + blue: '0x8bbce5' + magenta: '0xffb2fe' + cyan: '0xa2e1f8' + white: '0xf1f1f1' + + # Bright colors + bright: + black: '0x6f6f6f' + red: '0xfe978b' + green: '0xd6fcba' + yellow: '0xfffed5' + blue: '0xc2e3ff' + magenta: '0xffc6ff' + cyan: '0xc0e9f8' + white: '0xffffff' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Tango_dark.yaml b/files/alacritty/colorschemes/Tango_dark.yaml new file mode 100644 index 0000000..e91733d --- /dev/null +++ b/files/alacritty/colorschemes/Tango_dark.yaml @@ -0,0 +1,26 @@ +# GNOME Terminal Tango Dark +colors: + primary: + background: '0x2e3436' + foreground: '0xd3d7cf' + + normal: + black: '0x2e3436' + red: '0xcc0000' + green: '0x4e9a06' + yellow: '0xc4a000' + blue: '0x3465a4' + magenta: '0x75507b' + cyan: '0x06989a' + white: '0xd3d7cf' + + bright: + black: '0x555753' + red: '0xef2929' + green: '0x8ae234' + yellow: '0xfce94f' + blue: '0x729fcf' + magenta: '0xad7fa8' + cyan: '0x34e2e2' + white: '0xeeeeec' + diff --git a/files/alacritty/colorschemes/Tender.yaml b/files/alacritty/colorschemes/Tender.yaml new file mode 100644 index 0000000..ffcacf7 --- /dev/null +++ b/files/alacritty/colorschemes/Tender.yaml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x282828' + foreground: '0xeeeeee' + + # Normal colors + normal: + black: '0x282828' + red: '0xf43753' + green: '0xc9d05c' + yellow: '0xffc24b' + blue: '0xb3deef' + magenta: '0xd3b987' + cyan: '0x73cef4' + white: '0xeeeeee' + + # Bright colors + bright: + black: '0x4c4c4c' + red: '0xf43753' + green: '0xc9d05c' + yellow: '0xffc24b' + blue: '0xb3deef' + magenta: '0xd3b987' + cyan: '0x73cef4' + white: '0xfeffff' diff --git a/files/alacritty/colorschemes/Terminal_app.yaml b/files/alacritty/colorschemes/Terminal_app.yaml new file mode 100644 index 0000000..bc2c434 --- /dev/null +++ b/files/alacritty/colorschemes/Terminal_app.yaml @@ -0,0 +1,28 @@ +# Colors (Terminal.app) +colors: + # Default colors + primary: + background: '0x000000' + foreground: '0xb6b6b6' + + # Normal colors + normal: + black: '0x000000' + red: '0x990000' + green: '0x00a600' + yellow: '0x999900' + blue: '0x0000b2' + magenta: '0xb200b2' + cyan: '0x00a6b2' + white: '0xbfbfbf' + + # Bright colors + bright: + black: '0x666666' + red: '0xe50000' + green: '0x00d900' + yellow: '0xe5e500' + blue: '0x0000ff' + magenta: '0xe500e5' + cyan: '0x00e5e5' + white: '0xe5e5e5' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Thelovelace.yaml b/files/alacritty/colorschemes/Thelovelace.yaml new file mode 100644 index 0000000..4d73889 --- /dev/null +++ b/files/alacritty/colorschemes/Thelovelace.yaml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x1D1F28' + foreground: '0xFDFDFD' + + # Normal colors + normal: + # Bright colors + black: '0x282A36' + red: '0xF37F97' + green: '0x5ADECD' + yellow: '0xF2A272' + blue: '0x8897F4' + magenta: '0xC574DD' + cyan: '0x79E6F3' + white: '0xFDFDFD' + bright: + black: '0x414458' + red: '0xFF4971' + green: '0x18E3C8' + yellow: '0xEBCB8B' + blue: '0xFF8037' + magenta: '0x556FFF' + cyan: '0x3FDCEE' + white: '0xBEBEC1' + indexed_colors: [] diff --git a/files/alacritty/colorschemes/Tokyo_night.yaml b/files/alacritty/colorschemes/Tokyo_night.yaml new file mode 100644 index 0000000..a88fd9b --- /dev/null +++ b/files/alacritty/colorschemes/Tokyo_night.yaml @@ -0,0 +1,29 @@ +# Colors (Tokyo Night) +# Source: https://github.com/zatchheems/tokyo-night-alacritty-theme +colors: + # Default colors + primary: + background: '0x1a1b26' + foreground: '0xa9b1d6' + + # Normal colors + normal: + black: '0x32344a' + red: '0xf7768e' + green: '0x9ece6a' + yellow: '0xe0af68' + blue: '0x7aa2f7' + magenta: '0xad8ee6' + cyan: '0x449dab' + white: '0x787c99' + + # Bright colors + bright: + black: '0x444b6a' + red: '0xff7a93' + green: '0xb9f27c' + yellow: '0xff9e64' + blue: '0x7da6ff' + magenta: '0xbb9af7' + cyan: '0x0db9d7' + white: '0xacb0d0' diff --git a/files/alacritty/colorschemes/Tokyo_night_storm.yaml b/files/alacritty/colorschemes/Tokyo_night_storm.yaml new file mode 100644 index 0000000..a64cf4a --- /dev/null +++ b/files/alacritty/colorschemes/Tokyo_night_storm.yaml @@ -0,0 +1,29 @@ +# Colors (Tokyo Night: Storm variant) +# Source: https://github.com/zatchheems/tokyo-night-alacritty-theme +colors: + # Default colors + primary: + background: '0x24283b' + foreground: '0xa9b1d6' + + # Normal colors + normal: + black: '0x32344a' + red: '0xf7768e' + green: '0x9ece6a' + yellow: '0xe0af68' + blue: '0x7aa2f7' + magenta: '0xad8ee6' + cyan: '0x449dab' + white: '0x9699a8' + + # Bright colors + bright: + black: '0x444b6a' + red: '0xff7a93' + green: '0xb9f27c' + yellow: '0xff9e64' + blue: '0x7da6ff' + magenta: '0xbb9af7' + cyan: '0x0db9d7' + white: '0xacb0d0' diff --git a/files/alacritty/colorschemes/Tomorrow_night.yaml b/files/alacritty/colorschemes/Tomorrow_night.yaml new file mode 100644 index 0000000..36bafba --- /dev/null +++ b/files/alacritty/colorschemes/Tomorrow_night.yaml @@ -0,0 +1,33 @@ +# Colors (Tomorrow Night) +colors: + # Default colors + primary: + background: '0x1d1f21' + foreground: '0xc5c8c6' + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '0x1d1f21' + cursor: '0xffffff' + + # Normal colors + normal: + black: '0x1d1f21' + red: '0xcc6666' + green: '0xb5bd68' + yellow: '0xe6c547' + blue: '0x81a2be' + magenta: '0xb294bb' + cyan: '0x70c0ba' + white: '0x373b41' + + # Bright colors + bright: + black: '0x666666' + red: '0xff3334' + green: '0x9ec400' + yellow: '0xf0c674' + blue: '0x81a2be' + magenta: '0xb77ee0' + cyan: '0x54ced6' + white: '0x282a2e' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Tomorrow_night_bright.yaml b/files/alacritty/colorschemes/Tomorrow_night_bright.yaml new file mode 100644 index 0000000..55b25d0 --- /dev/null +++ b/files/alacritty/colorschemes/Tomorrow_night_bright.yaml @@ -0,0 +1,28 @@ +# Colors (Tomorrow Night Bright) +colors: + # Default colors + primary: + background: '0x000000' + foreground: '0xeaeaea' + + # Normal colors + normal: + black: '0x000000' + red: '0xd54e53' + green: '0xb9ca4a' + yellow: '0xe6c547' + blue: '0x7aa6da' + magenta: '0xc397d8' + cyan: '0x70c0ba' + white: '0x424242' + + # Bright colors + bright: + black: '0x666666' + red: '0xff3334' + green: '0x9ec400' + yellow: '0xe7c547' + blue: '0x7aa6da' + magenta: '0xb77ee0' + cyan: '0x54ced6' + white: '0x2a2a2a' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Vacuous.yml b/files/alacritty/colorschemes/Vacuous.yml new file mode 100644 index 0000000..022a7d0 --- /dev/null +++ b/files/alacritty/colorschemes/Vacuous.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x101010' + foreground: '0xd2c5bc' + + # Normal colors + normal: + black: '0x202020' + red: '0xb91e2e' + green: '0x81957c' + yellow: '0xf9bb80' + blue: '0x356579' + magenta: '0x2d2031' + cyan: '0x0b3452' + white: '0x909090' + + # Bright colors + bright: + black: '0x606060' + red: '0xd14548' + green: '0xa7b79a' + yellow: '0xfae3a0' + blue: '0x7491a1' + magenta: '0x87314e' + cyan: '0x0f829d' + white: '0xfff0f0' diff --git a/files/alacritty/colorschemes/Visibone.yml b/files/alacritty/colorschemes/Visibone.yml new file mode 100644 index 0000000..2315047 --- /dev/null +++ b/files/alacritty/colorschemes/Visibone.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0x333333' + foreground: '0xcccccc' + + # Normal colors + normal: + black: '0x666666' + red: '0xcc6699' + green: '0x99cc66' + yellow: '0xcc9966' + blue: '0x6699cc' + magenta: '0x9966cc' + cyan: '0x66cc99' + white: '0xcccccc' + + # Bright colors + bright: + black: '0x999999' + red: '0xff99cc' + green: '0xccff99' + yellow: '0xffcc99' + blue: '0x99ccff' + magenta: '0xcc99ff' + cyan: '0x99ffcc' + white: '0xffffff' diff --git a/files/alacritty/colorschemes/Wombat.yaml b/files/alacritty/colorschemes/Wombat.yaml new file mode 100644 index 0000000..844e65f --- /dev/null +++ b/files/alacritty/colorschemes/Wombat.yaml @@ -0,0 +1,28 @@ +# Colors (Wombat) +colors: + # Default colors + primary: + background: '0x1f1f1f' + foreground: '0xe5e1d8' + + # Normal colors + normal: + black: '0x000000' + red: '0xf7786d' + green: '0xbde97c' + yellow: '0xefdfac' + blue: '0x6ebaf8' + magenta: '0xef88ff' + cyan: '0x90fdf8' + white: '0xe5e1d8' + + # Bright colors + bright: + black: '0xb4b4b4' + red: '0xf99f92' + green: '0xe3f7a1' + yellow: '0xf2e9bf' + blue: '0xb3d2ff' + magenta: '0xe5bdff' + cyan: '0xc2fefa' + white: '0xffffff' \ No newline at end of file diff --git a/files/alacritty/colorschemes/Xterm.yaml b/files/alacritty/colorschemes/Xterm.yaml new file mode 100644 index 0000000..7f336e4 --- /dev/null +++ b/files/alacritty/colorschemes/Xterm.yaml @@ -0,0 +1,27 @@ +# XTerm's default colors +colors: + # Default colors + primary: + background: '0x000000' + foreground: '0xffffff' + # Normal colors + normal: + black: '0x000000' + red: '0xcd0000' + green: '0x00cd00' + yellow: '0xcdcd00' + blue: '0x0000ee' + magenta: '0xcd00cd' + cyan: '0x00cdcd' + white: '0xe5e5e5' + + # Bright colors + bright: + black: '0x7f7f7f' + red: '0xff0000' + green: '0x00ff00' + yellow: '0xffff00' + blue: '0x5c5cff' + magenta: '0xff00ff' + cyan: '0x00ffff' + white: '0xffffff' diff --git a/files/alacritty/colorschemes/Yousai.yml b/files/alacritty/colorschemes/Yousai.yml new file mode 100644 index 0000000..292bedf --- /dev/null +++ b/files/alacritty/colorschemes/Yousai.yml @@ -0,0 +1,27 @@ +colors: + # Default colors + primary: + background: '0xf5e7de' + foreground: '0x34302d' + + # Normal colors + normal: + black: '0x666661' + red: '0x992e2e' + green: '0x4c3226' + yellow: '0xa67c53' + blue: '0x4c7399' + magenta: '0xbf9986' + cyan: '0xd97742' + white: '0x34302d' + + # Bright colors + bright: + black: '0x7f7f7a' + red: '0xb23636' + green: '0x664233' + yellow: '0xbf8f60' + blue: '0x5986b2' + magenta: '0xd9ae98' + cyan: '0xf2854a' + white: '0x4c4742' diff --git a/files/alacritty/fonts.yml b/files/alacritty/fonts.yml new file mode 100644 index 0000000..a15d6c2 --- /dev/null +++ b/files/alacritty/fonts.yml @@ -0,0 +1,36 @@ +## Copyright (C) 2020-2023 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/files/autostart b/files/autostart new file mode 100755 index 0000000..5804ea0 --- /dev/null +++ b/files/autostart @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya + +## Kill if already running +killall -9 xfsettingsd picom polybar mpd dunst ksuperkey xfce4-power-manager + +## Restore Wallpaper +nitrogen --restore + +## xfce4-settings daemon +xfsettingsd & + +## polkit agent +if [[ ! `pidof xfce-polkit` ]]; then + /usr/lib/xfce-polkit/xfce-polkit & +fi + +## Enable power management +xfce4-power-manager & + +## Start Compositing Manager +exec picom & + +## Launch Polybar or Tint2 +bash ~/.config/openbox/themes/launch-bar.sh + +## Notification Daemon +exec dunst & + +## Start Music Player Daemon +exec mpd & + +## Launch Plank +exec plank & + +## Thunar Daemon +exec thunar --daemon & + +## Enable Super Keys For Menu +ksuperkey -e 'Super_L=Alt_L|F1' & +ksuperkey -e 'Super_R=Alt_L|F1' & + +## These applets are specifically for tint2 panel. +## If you're using tint2 as panel, Uncomment these applets. + +## User Friendly Network Menu +#nm-applet --indicator & + +## User Friendly Bluetooth Menu +#blueman-applet & + +## Welcome-App-Run-Once +archcraft-welcome & +sed -i -e '/## Welcome-App-Run-Once/Q' "$HOME"/.config/openbox/autostart diff --git a/files/environment b/files/environment new file mode 100644 index 0000000..f182bca --- /dev/null +++ b/files/environment @@ -0,0 +1,5 @@ +## User-Specific Variables +## ----------------------- + +## Openbox Scripts +PATH="$HOME/.config/openbox/scripts:$PATH"; export PATH diff --git a/files/icons/apps.png b/files/icons/apps.png new file mode 100644 index 0000000000000000000000000000000000000000..be3d5d4e070e4b4103362cfc1896e5f459778671 GIT binary patch literal 4747 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 literal 0 HcmV?d00001 diff --git a/files/icons/browser.png b/files/icons/browser.png new file mode 100644 index 0000000000000000000000000000000000000000..cbfd793eceb534480a062867eb6c47ceff001e9d GIT binary patch literal 7615 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 E58b1=mH+?% literal 0 HcmV?d00001 diff --git a/files/icons/cmd.png b/files/icons/cmd.png new file mode 100644 index 0000000000000000000000000000000000000000..cef1ad7caa8902271f7b1ecd0fd143d921204a07 GIT binary patch literal 6692 zcma)h^lRk){)XMVjv(0qeHqT z-Jmcw*mtkT_aFHD@O<9CU5|6$C$8(96K!Uy52oj)2LJ$ILjxTP@`?HHqopSQE#^IF z006EXLme%vz}dZ=fD|iOLofU~x(r>$`W=!`RQCZa-X$+cZK0%Q;OvGy7!-x1!0ZpssjkOOoYoH(#oqmfF3a(0Vzv`Ny5t!GU8CpHzkj3odG)^4yf5Fl%J@D2OayS z<{)d`x#Grdsu&sh2F6r3zpitrl=$}|#r3s9VhMFuEcl%}6Kmx+@h8pkW-zf)vk{N$ zAWWGspz{bPN0r+dekWAl{FbTML(z8yd_ABMX$$XBo1qvW}T3DWvhf!VHZ8FFxd_ z!KivAldsB=?cI;W(X=(moApJNqf_j0H*Ji4mb_|pTPcjKV8ue?1QTaOcS48DAg}zx zu&mg5E$t)I^teJxj)84%aGg2fFe$LFgFihRj7#GZyoHnd5c^>xqru-u-BNKO9!=7G zu)__e{%Y5dj>+Y7jydP#EJYdFHJs)R0*(@wfRaZEQ15fj)@0}BubV3*NI%ZHwXcSe zbTc|(5KZDag*eZr8W9rj0Kw!ur$ru!c!Ub?nkj*RJY2K9&}?rTs;X22C1vgdIL@JUjS_Eiq% z<&1F{1ffax+Ab_=mf1b_vyD0N9Xd99GkJSCH^dXZkCKB6QX1DhekD0xL6hS} z?DwS^FZT=7p19#VLnI&{Sixo{As1H8fJ#e>+SrG41~vN?vraCyBexj}YcKvP{| zf&--^lB3>d9Ao%~x$hfK(Nh9o%CDj42bBKa$~N7j zoOr0oGr~VWDliRxaxzjdvQU6Bs)do{0>U503-Aa*HCO7~DSh$us9_|lU|-)Yg3zDyv)Vf9AsJg-e8!ANTZi+<5O944K8MDg@l~W&w(FM0#YjCOXMNSGeXo zqA;eG(h)RHIFj&toB)IekKLy?J;M`&$e4bqd`)_1n+HBg(A8@LJCnzwXlMJfPl@o? z^mDJ-4u!={NBC*vzwUM!40$+?$b_; zn2^gEzhQ-~SI_%MSqaCWPeqRsNK(t@FW2#SI4*H%qBmuuz?==6&fp (PS7N?X;E(h=;pM5x~g!6w{l zA3A1V;qv<5^%3x0_S#8StuUyym4~Hr{c&V$iR(o+>%WJLf7HhJ!7%_C#C}#>*#oatKe}(Z7PEnW^l}CMz-T1w|@-LVpC5BlqpA)pAKU)Mci% zk9OZL`*e$hyPG7zg$}>C9mlt(bbXtyL%;Si1K2|lcSi2jiHl(NZakeo+qJxANMnmJ z${X&$2;!?~_~jp55zW^mvtLc#*ztJXV$nse4u+z0SKh;M|4eVUHLU^okMYFDEm1Nh zY8Xe3_6vlnF80^9+g0}}vAv|Orfp%K*ZGk@G3Q>`YcB7FasyMqPw>PJbuiwWdjFQm z)dTV69F?`xJuX)Ti{0-!_4zuH>X6tLDi+2P-S-SPvy2rvzieUC$W;zKym1i6j*#-< zJ=$|MtcJU%5~-XdEPR@W7%iS@M_m>O1Khu;Z@pGzGtM#!kuZ*OO(|)#SF-8;i!mVI zhx0eGK`2nf=X=mI(|pJ5E1pk@>*69k(=h;xdlYqwrLdkm3L-}1Httw-yc}Yb+4Crs)LTadA*Jd&`U89>HRwzaE*E4h~~%7ZQ5x*?1%VQ z{ySP5Ht=t;znw2ZSzxj`e(ihy^Atmd#y!Fika{Cm(Atl84Kat8qHkaLogOptr9uRp z2l|T-f6d^)0@~v?a^n|x{TBZ^Pg4oi4MrjO;Ps~9QzO?LP)Gp8&8?;!t^?@(4wend zu2d04=GffU12_Z(Pv8FNj4k!qzEkHpr?Whe^A06NH$APT7>?b?*gtt!`yhZ^|M1MHYvUovbY^|>b>9?c;_TcdRrKzQqSc_8@S^){6|bk)xIHr<$dX=xU0Ocs2Y39 z1Ra^#CrfBY;)FLCgOl3fI@79-i=2|vDD*_Hy!#yR6ed8n5Jv)53&AJOUz=V}TQavb zI-1W)N)-^~VIk|pXILjahq)N`h>2?k2RQ~rh35_HI)JP>lm4!`ukcr@ouTNCu%U&H z?A0=MM>&}!J%#5N#5FpF5OKH>Zl%$?Kzol8{@Gd|_Ssb(=Kvsnw(O<>!vsWa1K3r4k@8}tM&^8Cp}~R2FLt0H!qp`jq542CbBhz zEbec1zVTeg9UMGGGVeuV`W=Afe{7Bobt8~tW`DKfUHW>utQc6x%ET^AIbZ6B7H=2E z7zUH7s4TqqpdSuCR8q6ps`Feh@Hx2o%)OvrfYA)S${$WJUT`3lp`--F3Uh~KMB4ez z1(rGVh*=GLS-yYwCCW|M@HRGILj&oMawfWRGa#bc(>HINA@~?13?o{2z|A-yasDW) z13CLLhAtB=w?KUkgSlM?a*B`y>k4a1#$43s|HwQPX3+>vpZ)XTQ}4MdKlBmo&)SQr znG7o28BqFzh+84InijW-c;b-$DJc5~l8tI04YVbffL_ks%Yn=EwqXvBNHmW4nn z_wc0vX=GFDRO_?CBhxmuKhgWQnMNfmvNZBnie2cYt$x~AUzgW{ea`tt6t#(DS?cXL zhGi_a)~aR)R<%a9#&k%(P%^Y2_|9VY%2G96#jTw|icD2}Kp7Q|Um;*3?czTrL zbjEIedn5AG??d|ODe@yx@-p%2im7}wDrbJZ$bT?r?S?UPEm z>yJe5Uv6KodwbkIWM8|oYaLnk*kQiyVpV1*y4EIR)MIDXLHQ0#`Mkc*5aXqNxuvwXw{szpI(|GubM)D%(S6;* zS7MjSez%$5!%JByATE_hkXvkQ_I_Rcdjrb|_L-LT>e17p5*f9+%S`n-^aoLpN+Pl6 zJ1qBxudh%CVs*z0vv5{k*Laq-X#L#5+P&m& zlgtfCURNnm1*t2IAC4)^7+sYjvaDdLNkgCgO6c$#1$GZUNmDnvY|7KSoSV#a_3NE) zLbmxsMqIthjWzGg<|~P@O6?fmIb4|=tB zL!xn2_@nbs&-yDDV<#GakCK%GOFM>v^PU%bq=uvXk;BeE?bBT=<+-6 zP}eBrR7?ct&3c!C2V( zR;+FtCnsx{PaVKv0~FmfVaD+GQ);9iU$rUhvvmz`>H#I;?Uh3zpOaE->x$E%X|t5b z@PTrL&4V8dCH}$66e2L#H>e3=7P+XI_q&S5`s1|47r}q&H0Rqj``G7`X-dlKdHVvXA0Yh|;h$9eZE*s%#EWdnIpLWeuS4~#15 z87D58&t{M_XH{w^BN5C~S&_eQZmHg8?pT=sji6$gTM6wh_smrAk=K0;AFkQO_4@?x z463)0Dp0>(-^UK-0=;5XU8z0!dB|-NCIqio{n88fk6d)`b6!IuuUq6W6E7m*l!N}nC8XR{GF5?}vo=2}Q6Grn8k zsMYP0V8@mODBfVx#653#iKl7k33!)nxLIheziRJPgC%|(ZL*oZ0{Sp>73qBapgRMX zl9x6b%Sj$H*t`))6!#5QF9$qdq37TVk~nK+P*`UqHO|UCly?4sj2X|;)xhY8G;}N^ zKV11-i_PMFqff`Drdd=^6=HgG$m^wwQF30}_pQChu9t&W*G{mmhRX%_f9$d#@-^$J z)=Hlb%gO&^PNc;Ow40outMb^?X)rUz>Oo7*DXlSjVqyta*`^1KzQLC9?_?r+mD*7w zTt9y9%N7kh42!}RllHyNH=k|uH#?+#TiG6cpswPw@`;7~{_DBW^zVd1jN*4f?EsC6 z00pp|+%DYGyUP4AA#+*lrLImMD`kd|Qu=(tqWyy5BDi4asRs9h9j#4+`qXC8eA9z6 z=bS~^)l=sx0QF|*$fP!DYsghzbG+s8D(VUOcC4NcjK{RFTX)_xIQR$G+5+tUYHaQ< zjKS&8@@)V1N!swo z@wr=6U({!OeGa@nY@adY*bPW#-|Ktip=EAzNT)8E=9)P^g-x zn<+sCPoA)myCWW1r9WGwi5%^;Jd&J$^3F*<%E($d^nUd#fl*CBNEmQv$gclJ73Phe z_ZpR+FmLGcO;Cujm|TY??6U*iXSIKffJ4xsww<=~m)P|;?l(B$#mzy~U>O>ribB16uO|!`Io92q z@>HRrn1Hs8jeImKfZT1$b9z{H`{aKL^3usQLiDpyBIZ<{3oSy{_Vz14zm1z@ZGgZ= zq7P;aNryh6eD%zWFO^_h_hB%5_KQBoLzDTaRD_l?w?k-dD)W-zw!S`Dve~t#`?P(t zEC_gMbj?-knhWB$%!q}(eIoOxTgUcuQ{dkxZB4XE22YAWoL_c9J5X5d{Vhz)ecV zkj9l3ZtJP42uBu|_}nA0t~fonxrS)67e|k`2rReSo;Mpj$G?z}dGKTP1dj&h0T+xP z-;_w3Ke^ehfO{^hTx~ioIW}*w6B+Lob^sn1g2e^w!eCEDtsua3NT;i#>~dVA47!mv zAP?B|D|nTxVX(`2F?VOsmmK-l4n;*aNc8~x?<HF%VY z-azJ|P{;4hG$|9<$^3`MoQ+n(a-BLI6hYF6jxtn@VT*mjBhYyyryi&ld4toSeUxc? zWPeYC`9J!;we?DCmSLIa`6l=iC=&2T6I%C<*IrOgsYW2?k_nVG;_s^r*nz?543!!F juS=Bwzivs`I)_gk<^~Ui)Jv1MKLA5rQ=Q8Dj^Y0g5!L?) literal 0 HcmV?d00001 diff --git a/files/icons/editor.png b/files/icons/editor.png new file mode 100644 index 0000000000000000000000000000000000000000..eb4410e8b6d0372f57a01efeac12768b8900d32e GIT binary patch literal 1743 zcmcIkX;4#V6#YUHWD$xmRH&jT0xA}9LuwgcU|5xb5D?G=5|WUFEkr<;0?A_$YaI+? z3l^~iw4fBhrAPoVVN+CO(IS*ZP*8!e6d^1xzR=jtIQDnPnY)}{=gv8E?>$ZQbk))N zN(%s>4}Qg!Kv)WE80h+4ru05D3Thp)4j7y0u=0EzPX$p0s^%7>2(#7|79zQmyi z1`gCj5Q*gZ$5FW%%-TW@KRTEkK)H~~q#O-AlT5FPq*q7Kf6inc^`}tDfkjy%E9vZ& zGS2}Qej^~Ic?s_?5htSB~hyos9;M6Ku2s|wi7 zrJ*Ema#jlcE|;DjL=E)|yq(W3|A}=ihZRB%I?kagI(dye#$ZiELlk2`9MN17nh_t2 zbnwc~v%;7`{zoW+nBc05?3E05Wga^>gVB2@yrVKq0kbEQS<)!RlZvpcU@G00;!Px% za)MV<*~+IpmGJpTQAhnKNzAQ$l@a7vlBbX5^;K%NTQHM*u?1$_=^bwyU7T|N;&q7v zaQ90Z#Qrnsr^cv;J#qKW&(H46Ht9Aven~0YW^-d-)?29}AaOUn#4!#L}Q-g~>1`bB|XKycR757@j;e82C&SvVw zo8`s5+B64WrUhPArGrq8%`$&?9>v1o`v$dx z=>TU6Fd77)rU(BEMZA}f3Y;H1*4a)C>Uj`aJeBc9=H?C9$#2?5?o`=xVBWU<*CP^d zfaiSI)YSSRcbaG>Ue9PrF@<*lNF?4x51GQbm?Dul_2SYUBt)!IHxt_~cL+fK+SsUQm=F18tr;qk@ht{_b zZZHs`w1LY3t8cX5<||ujhBkAA&4rrH;9Gl{px>f1O8)|~yn2^3wi2nMYReyJwxP*) zjA&V|=*}R`g%yJUNQuUd(_;z3rVzRmDucB=%loQij`JC*Q9rb1aOK#KQ%=%14@-+@^BK$$F5iOn?<7s zu~!t23lJ3Vwm3)6)HEFuYJ)LXJUq`(gON2D8kzv4{Jnq!eF?-HHNguZ)^uCq;3RvLmpkQ=ul9 za0N?o3mu39Y7}&6OCb$926G@km!;=^?S;r_^ zm4hNLjzv^(?HGZBnwV6BT|igAAwbYjHz zdNz;E;r(G_E6K^j3v&Z%2_s)f6he~|2-M&S$DS9JAa19GNz{J*_z}GJCV2H()+!@h zcIGM@W88&|62WFHrqLjK{?z>@5V1~Q8laA2`W20NF^FKDPo_vPzts-TT3__7#5CM4 z219Gok}vq{gtQsLA)Z}Jl;7*=8Zp|m2wsS%OYO|mh@Z}*TqMm3;re~N+K(c55^yFf Vyo;sb(XIMRz}?x?slt(#_BV9P0oVWl literal 0 HcmV?d00001 diff --git a/files/icons/filemanager.png b/files/icons/filemanager.png new file mode 100644 index 0000000000000000000000000000000000000000..c1740b6f55719041e2878976173209da478331c9 GIT binary patch literal 1552 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE8Azrw%`s(QU&Lr@Svn=drj}D;{E4pdQU&y6%mtIU63C2 zd}HK`-4U18L?mbT{_0FjJNLRaKdO29or;cwsi&WXm9;1Dz5ZZZMC!>WpAUxz1%l!< zX4-0Cs3vYa84wVCrYb%tu^=EIHa9iu-+{=a-B$yn(jV`L*gH2OcirCDIhz7Plm4Fx zKffsI{Hlnu);)bSQD2XS2M0y}J{exxvNNJ-YFK1WRNtcPvIUJ(uC1ROxo%QqM8l-U z;;6(8CtmD{NZNUM&z#7l?H3<6CIDlK`{xXQU_ca>1o;K;e|^?>Z&Af{#_7@DjeZ{# zyjGCW!E(f7!eQeds;{K}y2T$@vUZw4)66sM@3ribh1dUiD|&0H?x&?T+vhhvZLt@- zT@{eV`dRP8*YjNZUpSeM=JGf!yzu0?QnTFM8aBh$mnu0kOnxqo*!kkhvVT!KYTq#& zQ>bbJrtY7fE{-7;x8B};Ud|IJ(eUxbqVh%MP6DwWE=odyVceWzjxJYv?zz5?EeU_0 z`t{!JKd~}>XJpPDn>jQ4-JRlj&wuav{hHcM|0)2xD7KzN7u{|Z?qteIy z+Ho5SD&&7QT$$;5Xg}Apr>9w4ruPZ_3p21)5xk(}{^R~1&PxoOcU!uS^-f~(kkGth z;>o9A@4Z4RmQ6u9`sP2S$~7zwvjT49yl=Q-sKt2m9%H3bX7FAnr<2<<{pIT`cbswM zU+41v-BSBs6%VJqJ#jRS(K+`p-<`f4ua8}P@z&)3swewO)4IYB2xMRTsxDa1@T~gv zg@bX7o~euV=6C*Jtw?2Lt77%hmj0^vNczDdmjex(0^k2(zO$L(?;fT#f#rXg=WO%S zox)!6TK<5|*WVZRNq%BjUCT0O@2}Tq?)~MhZ1_C?5AzK5_%)(R8^hNr3M%y3f96k^ zb$p-M3(d#!Gyj&KY%8{7@+qF6D6J5-)@IN93Eg~k-S_4RRh!#Kf9?1kn3k7yw<41v zH1%nTXa9A{51-qv?3{d$L9vU=l%3fw!gX9UpfwbL|4LOV~Tib}>)7 z!~AXjjn#|p?(U1(oO^NC)aV1J&6lpawejjU_vq~nZBTM6b!k z-eodd$+Bkqw~Upl36tOM_VGSobz2EF>L}$kBsmnn-t|0+X<5Ye+{;22&Xheorkg$G z>#Zo|i-HR>Kg^r*{EcL^ZxegQ8;%PZMGqKwWf^;ZH8P(mVCz^fzTxj{iE|8YF^&tq zt&csed0@pv2^EJ~4mJH}-#eQB?Nl zxb@FNQ`{nkC literal 0 HcmV?d00001 diff --git a/files/icons/keyboard.png b/files/icons/keyboard.png new file mode 100644 index 0000000000000000000000000000000000000000..4cb8f4f5b08521751ce6cd8fd6736473c074aa08 GIT binary patch literal 5056 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 MJl%ZowXSUOKbQ4d8~^|S literal 0 HcmV?d00001 diff --git a/files/icons/recents.png b/files/icons/recents.png new file mode 100644 index 0000000000000000000000000000000000000000..0724fded7602bb8e0a0be90cb9252cd4c6093806 GIT binary patch literal 4904 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 Vd`}gWgt-9&-pHxSmb`=q{SRhd9wYz& literal 0 HcmV?d00001 diff --git a/files/icons/record.png b/files/icons/record.png new file mode 100644 index 0000000000000000000000000000000000000000..125f63645cb0b18d2cf869bafe27e54152bdd157 GIT binary patch literal 3471 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 literal 0 HcmV?d00001 diff --git a/files/icons/settings.png b/files/icons/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..6e3ba13e532a82d4536ddf1e7c40efd86fb4fbbd GIT binary patch literal 8606 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 AzyJUM literal 0 HcmV?d00001 diff --git a/files/icons/shots.png b/files/icons/shots.png new file mode 100644 index 0000000000000000000000000000000000000000..77aca91866ccc3ae6c527b539d1f4e92bfe66ef4 GIT binary patch literal 4235 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 literal 0 HcmV?d00001 diff --git a/files/icons/stats.png b/files/icons/stats.png new file mode 100644 index 0000000000000000000000000000000000000000..8a86f8a38c1476ff0392f14707d002b0249f343a GIT binary patch literal 7479 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 literal 0 HcmV?d00001 diff --git a/files/icons/sys-lock.png b/files/icons/sys-lock.png new file mode 100644 index 0000000000000000000000000000000000000000..72530d68860672585423f3c5fbaece21ecec7e90 GIT binary patch literal 3565 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 literal 0 HcmV?d00001 diff --git a/files/icons/sys-poweroff-alt.png b/files/icons/sys-poweroff-alt.png new file mode 100644 index 0000000000000000000000000000000000000000..80e89d1d6041ac1e9ff62571fe206ea4325a9780 GIT binary patch literal 5798 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 literal 0 HcmV?d00001 diff --git a/files/icons/sys-reboot.png b/files/icons/sys-reboot.png new file mode 100644 index 0000000000000000000000000000000000000000..b433e24c331f29290fc0bce27a134e283532b455 GIT binary patch literal 8019 zcma)>^;=Y5w8n>-p@pGAKtQ^4KxrhTyGsxhL57m<0qHJ@p`?*UkZuV<8l}6D?uL85 z_x=O-JkL4jr?dC$J!|dvU7r=Mp(c-qLx}?df$$U+WVL{I$A32#2JqCHM___Lw3Ldn zuXH?S_cJ|{lK!SWO8(Gyb#)h9fGf+?2uh==e*XTA5K5|{fkUd0p(g`(Qe+N~A^yF*HlAnCxN2Gv1mL5H@e$EX{2B~Tip4=FEsD!K_;)OChrEaVY(RZ)0-{zhU7 zddG2eNq+U_7Kzv4wale@N~>$O-&Ixe{7PjtE#NnZ*72DJ$LRbMF=#DBa&M#52lEOO z;{SsA`Y>kw_7MFI`Wx`#1l-@mSN8{)BF&Bm^It$ZGNARYpN>~&;%-aJC;QVfug3iE z%a`aaATd0|-hN3wRKug27RQIQ;Tc8RBvaiZ(&3{0@zw!C+V9_k6u9(X{^R2V{sQHDl?K6(CEw{sRV+(8}n@)ANUAn|h=A#7s{B3lkwZ^y{4e0aNTqk0

O#*9P1DZaUyQv6?UT9iY#ZrIvU6-3K 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 literal 0 HcmV?d00001 diff --git a/files/icons/sys-sleep.png b/files/icons/sys-sleep.png new file mode 100644 index 0000000000000000000000000000000000000000..a425d19b7f843b4e555d3b389c926fb9db223b46 GIT binary patch literal 7175 zcma)B^;=Y37o8az1nF*ukP?ut0R#z2=?3X;86;*1;Uz>`k#6afj-jOy>6)P>q>+Yi z{13kKJonsR?mcIpeRr(2ZnU)YgT5pFUAWlj`OUH`4gf$muBs@n z2VMM=72s<&lX?gfF;p!IVC0>6b;`^e)jcp;%*4{IhiI4M$`r=S0=Did8BFC_V(0mC zW+_jR8D|~(!ZmYaec^!5zOllIxgms+veA#GNKCv8eT>{z{o7 z(!}J{^QhFvI7SU_@Bs_}BXEvf+HW{za5V&W3VTQ!SyMke zx-SO6E@NYDnh+6*!CV8M&9VvYk}onCR1P%uadF zv1AE@NF0Ykl^2=&jEI?Ox;+4gn6gjFw}yRM%(q*O9Bv_?=fEzpCO>uDTFOAUE*6aD z*bilo$aa}%s_Pz-fz3ist4XYIj-MQ-v{c&U5T8i1!v{AiF*@;r_^GfS!R@Bp%@6r6 z-rHXSy8t29?)&24KAESus1xW4!W{9r9%_?8J{((dcRZ27<@qJK>{Hy1e~%F-qXgVRSQ{NnO6bwsWrl4$#f-K6Cs0>|7K zl>LGpW640BL`E4`XU+((NK;k>tLiBO73So_sVN+W!9V`vwXnQj>Bk#G7GPNya zKNjUO{|oetpGCQ_Zv`w_Q5PU*BmDrC9`_Z9gizaX6Wawz4jG9j$F3o`({l zU13_{G);kM`B61H8<9J=d$j;b0V5g00DBQILT_pH;d>NCzkz54SFWEi(BZj{j-D0E zoPaQ6bjQ>d?7H^zD z1T&?yR{P$h%?x79tK4HlP?wUX_}pJlO0qdiy@AHq;TjWfspIc?LOf$F59(S7XMwe9 zU`SNZ`Zqj24Ndp1Vo6i1mx5{2^MV;Hlp|$Mm-wLe=XZp7YaX*g@ng>G#Unh&uH5}8 z$}|(2ZRrDQQXS!W6^pI7pdUS!SkjgHS9IKeg0^mG)21bVDDzhP*wO)4ht4rav56l@ zQC*2_1o|6cBJLr_*8}YoAqn-pbx)K}O)$V_S)VX=N*Q|Jiq_u8;8zX3Naj?=75LJG zsY35912C(4_vCZ$sAX_n+QkR~F`WJTJ68j;HI=>iFg{AM*DeRVWsUWhD>Ri}N`q%< zfFFW)7T?7T(~PbMG%k3nY6*rQ*LEiAXlp!=9krVT_lMmoTs`aRy1R$5IY;*BkNRKV zA2jt!x7e6D0w~HKKgzW&-qMvHEO&Hd$Gp{9IPq-|ZqXylZAP4C=jM>#TocU~+Y8^C z;he?;7(e;*d0S<0#|9f`h5!9?LB3=4CWdjop*4Zig3>E-5zS^3+s3v%2wOJdkz>2?fZf1IY$H?F!Vy{xa9 zTO@9n)IWGYQ0dhPjHQP8JB6!c<+J?hR>k{n>h6SM8M!W!)no~co-U9?l%XJZOy$4R zt}9rd(c#e=!UW`~6-{sxxXe#;+L3fTPUPZaLBDv~WhB(#HrM&U&L^4G(6{ziBQ7ox zImldUN=y~!3(I&lSl8t#{`=Aencvgwi*@Ca*zG=Tq65vES5LZ?pgzGm524Q(JwT|LGnK+IGX=7r1rybk&Wx+;cMWT@ckY>cat zOxAzJ9IG?`yp!UBNH!q4=C&T#onSU@&Zp_)Vo9^_`UvHBg12e^K5P1-5#;0|LRl|x z=M#L96Al1867Rb<*~tJ&qyOX>zDLe}WS20m;5N*=c#>PT`4ZFU!}5{%z6ipypk~&_ zE;^NtpO5NIss`qlNplQ95Zmm+;iw4++$ywMcHWuMq=#xCsMeBAN1N?qBK6U^0*B2B zz9jDRvY|z+laPqt!VnDRM&fD*4Il>Erh>(b34qd!)dW}hQ@0Q2F#Q;eYH2q3FZY2z zl5D`e1gT*AEbMtAJ?<9kl{Zu_lx-2hc5J}n{P#K#Dezf@L5!i zV{`~S9=ByKq6MG`77Bsnfgz3V zykn|s)H(5|$hLui(=9;@$mUL;k@(Ug1s`rD|KxB|A#RPx?1DvB{Lar5=hXST5Vav0 zzb(=6v2O9lyc1l@hZCJ*2ia!HMK_MGWe2>KJ~a)q-KUZ*n5vEL54xVXqErWn9MC28 zR{&xVpcFD%N#|1^xl<3zyh}I^U*76ygQXolT)swCIC>s;Oo-Uq{Z_{BVIGgj_$3dh z)p$-f=1HSM`@lOG^8ZrM=_E)~o{zUco| zt?5V^0>|i(e>m*I77i?GAkH-l2*~iO9skSGOTw(P^r*&uX;!nCb!Pok35$~7)UuBu z=bQB|jpWR9%0kjA&aUw`eJ%_?nTz&j)9p6p zD&2EFt;O4dEyQk|Wpktw7wN|rYle`LVN!j}=BfWMwWkq_e}sNbr9iwOPa$GLC8a<0 z+zdCdezi5#j#w9$DF(04%Y43Uwdx^- z7aA!RJEPXl8N!@QJayI3Wuc8)B2f9~aPm`V0Vkrf_l3^`@-N?Tfn`$z#Tb=TH7*BP zkZn;Taf)yb@SBBas@z!Ixc<$gh+ShQ)dQ5CF(l+Xj^~J$f*`&qgAr^KxHL%vk{60=6`fXVWcVxSG-Q zZ6X*A)|wA{uJ_r49}_nY<{>giB0FL(PvxfHf)*+`)TS??j`4ntOK9}O!gc^8CqY$6 zvml;ZdBn1_2&h-ch=m>Ac|6~7+l1wFvgVRMw6YUxooU~^x4qkqTV$IO= z{+6XAi^fhBs_u-ZZA9vvwKp!1h`9buAHW5z+?jpI2NGeqX(A~qX7~_h#+%^-DDrCw-VHYFSyX@)zi%JHp&v zp*z@3e0*H@Q(A7Rd^In^I3X)yjglEtPb`% zB1ePN){uvBj5Angzw6sG+Tbu^!dxJCoE$)@zuMazqmMjtci)&L-(Nrxd3;x_zc2Ke z5_yXwAYIBQ^xX^xRLIJuxeM1v=b!i1U+k+gpVvm8ZNEgJL%3DF3yX#3=u@_z;de(s zGT!jYSG(>Me7@XsIvu@1vubI*f_#M2_EL@$>NuJhC(vP2KLD(V^t^frIy*Ug?OO?| zbpf6Y+KcRZ-<0D3)m996ZzA5c)x`jmu&zlkItmBIlYY^@#|aa>d8MF!Q;?cDg zD@eJ$vTUNK4B#2b>GLj3V8b{}Y zKWsPSt_L{1{?>ua_n$kx3#HtB1$QjQV@|L>ko|2rnN{Ww3|kw`0cI+y5HlmkaIM!HbDXT_BF`_Dg84`O~D7Y34d;PGW+gi4I&U}?g}?0seKrosUqH0v$4 z%vrY^TTY2skqAoL7380ibDTO7#L=xW@;1)VPlB5uO z_`&z$7oe2{HKr$>qmKn#|FIxJ@Ya!4fth+_VF0>|$T%7&Hp&%TjerdMGct-7v{(zJ z8(Hk2P8(VKfic)Dh$oX-ULchukJ*hAMy0B!Ddh1_A|0K)@l_3?ZQniuEuxlngU=HSPzsG zq_pxW?fj(v0KTW^~#c3%0rukCz4*_&CW;oRY- zx}{9NIe&`yK4h`Hz(9_Z zY&n%%PXMTriTIi`c+Nv2v2v6`q4>*pS+t;UGWo#_)Oy~%@%O(JzSci6G5lRyii@t) zzofo+ui>O-f%Qq`l7a+LG)khsWaZ&OY;vu90}Uk1p-8Tlt1HJZ*&$xsytoNM6=>*I z)Kn46zk=KL?1oZ#o$aBIlw*kA^(yo`SW3;=BHQK3BGRe47Vi# z4sv}sG!)ppww~nk!NU_w>_a6ImU>NB>S%88{FqAZP$Dn@=Et$4q~lX}i=kBvt;oJZV3JJ%*( za(-YCPxw#lwS@1-$xCQE1jk*^Tg&{zN7%y~GSPAsN&!+L27=S?xAD8O?r2o6PpD}i zDrr1}vOpA?t zjab_&b%g7G)HME0N1qZbuJh2Xj@NZa%bbVBh}p=~f^H!vpDfK3Uly6GWQTelC38YU zCiJF?NAsPf97Kl0I??h}KKHGHG28~>j22N&)MW}pux#D|a^48N6DQrV%%gfT0a;P$x!>SNrM}R z%vzgk8;tJHD_xY$c~(F^fnhr8#&BW=mZLcq&E+Ckau)QO$PuY)Fvuj_6fX|FKo{<8 zbuBP^XH`{INB8#j>@(Dc+F@+JH8PRebTOvZB!Vxc_bRNVawC9E9h^EC43U>DGl;Nx z$r5s2F3-Z+5<7_A03tGM`=)jDz4YoQW+qpzS>c>}M|M-On0vWKYkScFG!Q;sWP$W1 zlbF4GF&3L?7NCjukDmi}zAQ-&oQ47LNQ0QJV%{!|y5d>TcMu0L#Z@Z z+AVMmSVxcLQUoApIJasuHde`j5)u*JLgSrgsCnXlR6@+fAf3aIZ#kixbgYta40H29 zq(INzFPigv22B^=T*Z!%rMc=-<8b%`E~d@$y*5NylWY9Y)FZ_~h3;SWXdGZg>NzDA z$Uh8-F{@Y!tic@Q^uI%1uaYp!huI)Ff%@z?f0@$r?z=;Z9We2P-2OH|<_DL8%gO@} z#D?n&v!c;kJ{1#d(!?+zfym{j+X6IHC~*q__G9%ZedRwVigbi&|BUqK4>C^*nxNfE7ix(Jp=>FP z;ihLI^qIRKgq~&5u%tU7(2^MJ9wCT5D1z7Z^eQwlo5yCv0qr73AD{9FdI7@%`#5dz z_-hXh-Oak1I(gp$EsBtiz_7p^>S>etD;kt8p2L6E30{M(gBxy&vS8CPyUbYA*sG}- z{kN96Y+-rSkeeCe=YO)MB&Xd`-e@s7?r&VAxbZ2peI)b|N7$LBq;zrobJI*+^Q%IG zJ?kUn*$=OqND;&1KpvL6m#=~}d+96Dv9}$;@onm#n$;5+fHmjJO|hHGP5ddm!6!2+ zhmM6ldZ*!-E(RTI4S+5TVZ#xV`o4ZN!7HtXuFDBq7aW2WzdD%ES{gB@$HE2Cn*S2i>tZqS1ES9$ovK0^N$Rme+HRLaK_k5EdP z0aHD@oirXECsQ5f!h2y~wCslx>!qigsx-Ou2z5)^9EmZIi!`Ssi@x}T@p(_geklgz zzWRm*|CAMn`r%-~TC&a0Z&dopGOKE5MQN~yV;f@QWHHev7E-x{kzr*Mn?c9_Y~rFS;#J}lW9cEVy?4=g7B zNM5Z2YMY%0r;fHpElz{`!Mc+U+p+P!0s+NttaOI>R5Bq(o;WCe zIQBN}7l%&*--FN`%aKq=lM;q0%ck1dKs0|aY6}1DjljPr*VlVtI8TWT5Q_t z7bN$K5K$T~>9+dgDzDQs;CpQ<{ui$7AU-Yj`Uu5ad(J+9MP_nCpD5|uzEC5vuW zz~dvtSM{Kf{IO4Wy7onlqpwPr)Y6v}yz;P`e#MPB4{Qlo3wAvYv;7qB*3Q%h51gyV zmCB_I$))5)|^1%y^;S1K6! zGbrG9Ce;%(uV!osK+c5W`mloTcv-HZ&i<^Oy<$egGFp@-%6{`S=sI2%6=Dl}SPKfq z3ut0R=Zp#JZyzHI)6#TT?DF&-Q1w(}`<6SQi6eAy<2!gX-!!ybK)a=r+|89qYyN7Y zsGOjUS?+H_9!ITlC$KqT`IzxT!an~!DO4{hh-^Irtrtc@hW#xPWK!`DzV&28s}jAyEc|Qz=os;Ka(&Bv!!acweQF` zQ~D{$9AS}52F03pXi#$r16;R78F>$DVR$DW<8MkT7exmv4LLQvN?b|g9Q#c6R;S-V>5v0-EWe}|{!1LUx6j9g49K@KA%_D1 literal 0 HcmV?d00001 diff --git a/files/icons/terminal.png b/files/icons/terminal.png new file mode 100644 index 0000000000000000000000000000000000000000..f16934a1637917d6594c1aa8e81703326e379aec GIT binary patch literal 2089 zcmc(f={MVn8pnUXL{MQyS5>;{oig3%be+;_wYm)&1hIrvDt1Av5t4|Vplw3!1RX|bXe`&fxbx!v1NWR~d-I&z4cfH#YQy6Ug=so@wb!R%KIdU0X~{QUW=X z$Ct=PUrGm_;c(#%jgQ$i+nSK? zCnevN^o|VR9^9LVCY4UWc0B>D(;a-N7LdH zGQz^*M`RO~Rn44we(v3pjLdw5J(@ru#}ZS5gJb*ppAO3=MB)(#2Tzo%PkKgPVNnf( zS;6nlTWJd;6XY zjf{I^@g5$2e*Te7EnT#v+}qwE?(V+6ei1{%3hbRwG}`|`LAA59cP)q4*xZ?!^?($g z9u<|CNXto0V+?L6?;YzD4z=+m8(up(d)IJy6|BbY9=UYzIW;lc(=#9-FxtuKHZzYE z5lIaRArj+KW%9{ZuE@dBtG%O7C?2_m@E9H$?;m*Ph{RB+^u{K^qqZJ;cA>pJ+68qd z1Rv+;7ttY*qCEp#T(I};x3%}Wy5Srhy^4x!-P~}P+rfn=M)4bdABk|VbF5{m z{=F=%2tUm@RgjBYctzX4M~TCaFYyI)N6tLu>$MEDb&1R{d7*n6#Uc=hndf^ zZU(#E*c$o8xz|nib)AUw>9^9@X_6Qmvfi}TjN=ud715OWIir`PZS?QrpeB1mRNE!P8sC}h^ik11j__CMD??P^W}_)@HT$W-FCNgV**uyq_S$1LhBlYBS#t9gm@;`Oy`m9dR#QQS z^J73;&Zli%rY(Sfu8PhuQ38ccgKZV@!+Yv!Oz{`JUg8n%ldXhfm&1-b&S-FxrlCM2V#Wm0(RjCph*D^r(L2 z>btBLd2`S0-D2ht{rm+8kzrwVj$-j{b^4DJj8R%q1VDSbSWSXeJx$ks3VP%VP2U{e zch|1UMkCbvn@|xCE4DShR}V$>%fq}tDbwcfKZ%pC%gqThGt>i07UZkp+M;ySmZ}ys z8UE(|^l2l=IR^YI6v8e+!1t);0dzKNLh;KCFePvGS_nCLQRBz11giQ{R-VY10!G=3 z<^C9a z2XXphGcd@nEnnAZ_~BiK4ssr6uuV)%)uEYo?^p;NH;Yk+=VsY=f1{&(n6@HBcb9R? zN2|RhtVEY?E%%xUv!!kDTvCCSb5rl3qw)zGn5+r&{3Q+-ks3TF zPwK;U@$AHhgyuHa`dNodM>fHlXIsLt@E!Y>HH#dIlOQNd?s}q~$wgH_A^FscvN5B= zb&j$e_@1jjbs2%LB-u?FUW3d#$zC0*z4g{-;>V_)(0OLp8Q3vL%K0KL()*;^%=4p7 z8J#IW4c8fW20F9-wMNCzq0asbBArdS7QLrcdnk1yE%66UMKL%)9Q_S6vBfP}Jd@%e z#--}wrWKYzS=hC559_appi!oRZiRy)zmFxvqcH*QGH};iCOK3?fP44z=VMlZS>V_E zE*Hq=A{;BhpsLcq7MweTb53zXcV%9+vv;K2kSoxo{(P~maa}qako(Um3xsyDMF!&i zj+8#$5Ul>EsGJW3D9ZPD!oE6><^x}@jh)t`D6+t}W$Q{lIqH=Edy#ksX_WA3iTolL zy}o?*k|b8Pf~8-r`PJ#+ZoW-`YuMe`k*t5|{AT*IY5{KikN9a$s@wPfC50~LqONKL z-3Zn6t`QmS21rfTOCkC5t5@Hc3wst{(LK~(FYFX4PmIo-H1ZaN+S(DeW#vApVuhei+~usc zX3;8wtXydqDKz>jIy3fnq&ST34kvilj!RA~Lw5f!z5W6jaB>acO&I4H?$z?&KrnE_ L+U`oD6(;dN{m<#{ literal 0 HcmV?d00001 diff --git a/files/menu-glyphs.xml b/files/menu-glyphs.xml new file mode 100644 index 0000000..8a949a6 --- /dev/null +++ b/files/menu-glyphs.xml @@ -0,0 +1,143 @@ + + + +]> + +

+ + + + alacritty + + + + + thunar + + + + + firefox + + + + + geany + + + + + + + + + + + + + + + + obconf + + + + + + exo-open ~/.config/openbox/menu-glyphs.xml + + + + + exo-open ~/.config/openbox/rc.xml + + + + + exo-open ~/.config/openbox/autostart + + + + + + + + + + + + + + + + + + + + + nitrogen + + + + + xfce4-appearance-settings + + + + + qt5ct + + + + + kvantummanager + + + + + + xfce4-power-manager-settings + + + + + xfce4-settings-manager + + + + + + + + betterlockscreen --lock + + + + + + + + &pipes;/ac-powermenu --logout + + + + + &pipes;/ac-powermenu --suspend + + + + + &pipes;/ac-powermenu --reboot + + + + + &pipes;/ac-powermenu --shutdown + + + + + + diff --git a/files/menu-icons.xml b/files/menu-icons.xml new file mode 100644 index 0000000..c00030e --- /dev/null +++ b/files/menu-icons.xml @@ -0,0 +1,163 @@ + + + + +]> + + + + + + alacritty + + + + + + thunar + + + + + + firefox + + + + + + geany + + + + + + + + + + + + + + + + + + + + + + + + + obconf + + + + + + exo-open ~/.config/openbox/menu-icons.xml + + + + + exo-open ~/.config/openbox/rc.xml + + + + + exo-open ~/.config/openbox/autostart + + + + + + + + + + + + + + + + + + + + + nitrogen + + + + + xfce4-appearance-settings + + + + + qt5ct + + + + + kvantummanager + + + + + + xfce4-power-manager-settings + + + + + xfce4-settings-manager + + + + + + + + + + + betterlockscreen --lock + + + + + + + + + &pipes;/ac-powermenu --logout + + + + + + &pipes;/ac-powermenu --suspend + + + + + + &pipes;/ac-powermenu --reboot + + + + + + &pipes;/ac-powermenu --shutdown + + + + + + diff --git a/files/menu-minimal.xml b/files/menu-minimal.xml new file mode 100644 index 0000000..697ea27 --- /dev/null +++ b/files/menu-minimal.xml @@ -0,0 +1,134 @@ + + + +]> + + + + + + alacritty + + + + + thunar + + + + + firefox + + + + + geany + + + + + + + + + + obconf + + + + + + exo-open ~/.config/openbox/menu-minimal.xml + + + + + exo-open ~/.config/openbox/rc.xml + + + + + exo-open ~/.config/openbox/autostart + + + + + + + + + + + + + + + + + + + + + nitrogen + + + + + xfce4-appearance-settings + + + + + qt5ct + + + + + kvantummanager + + + + + + xfce4-power-manager-settings + + + + + xfce4-settings-manager + + + + + + + + betterlockscreen --lock + + + + + &pipes;/ac-powermenu --logout + + + + + &pipes;/ac-powermenu --suspend + + + + + &pipes;/ac-powermenu --reboot + + + + + &pipes;/ac-powermenu --shutdown + + + + + + diff --git a/files/menu-simple.xml b/files/menu-simple.xml new file mode 100644 index 0000000..0b935a5 --- /dev/null +++ b/files/menu-simple.xml @@ -0,0 +1,143 @@ + + + +]> + + + + + + alacritty + + + + + thunar + + + + + firefox + + + + + geany + + + + + + + + + + + + + + + + obconf + + + + + + exo-open ~/.config/openbox/menu-simple.xml + + + + + exo-open ~/.config/openbox/rc.xml + + + + + exo-open ~/.config/openbox/autostart + + + + + + + + + + + + + + + + + + + + + nitrogen + + + + + xfce4-appearance-settings + + + + + qt5ct + + + + + kvantummanager + + + + + + xfce4-power-manager-settings + + + + + xfce4-settings-manager + + + + + + + + betterlockscreen --lock + + + + + + + + &pipes;/ac-powermenu --logout + + + + + &pipes;/ac-powermenu --suspend + + + + + &pipes;/ac-powermenu --reboot + + + + + &pipes;/ac-powermenu --shutdown + + + + + + diff --git a/files/menulib/archcraft.cfg b/files/menulib/archcraft.cfg new file mode 100644 index 0000000..3d69bed --- /dev/null +++ b/files/menulib/archcraft.cfg @@ -0,0 +1,237 @@ +# vim:ft=sh + +## Copyright (C) 2020-2023 Aditya Shakya + +# archcraft.cfg - Variables and functions commonly used in custom scripts + +# Copyright (C) 2012 Philip Newborough +# Copyright (C) 2013 Aleks-Daniel Jakimenko +# Copyright (C) 2015-2016 John Crawley +# Copyright (C) 2016 xaos52 +# Copyright (C) 2021 Aditya Shakya +# +# These functions can be used in user scripts too, by first sourcing this file, eg: +# MENUS_LIBDIR='/usr/share/archcraft/openbox/menulib' +# if ! . "$MENUS_LIBDIR/archcraft.cfg" 2> /dev/null; then +# echo $"Error: Failed to locate archcraft.cfg in $MENUS_LIBDIR" >&2 +# exit 1 +# fi + +# NOTE: Do not source this file in non-Bash shell scripts. +# It uses some "bashisms". + +######################################################################## +# Functions to generate Openbox menus. + +menuStart() { + echo ' ' +} + +# Usage: menuItem label command +menuItem() { + echo " " + echo ' ' + echo " $(XMLescape "$2")" + echo ' ' + echo ' ' +} + +# Usage: menuSeparator [label] +menuSeparator() { + if [[ ${1-} ]]; then + echo " " + else + echo ' ' + fi +} + +# Usage menuSubmenu id label # http://openbox.org/wiki/Help:Menus +menuSubmenu() { + echo " " +} + +menuSubmenuEnd() { + echo ' ' +} + +menuEnd() { + echo ' ' +} + +# escape special characters +XMLescape() { + local string="${1//&/&}" + string="${string///>}" + string="${string//\"/"}" + string="${string//\'/'}" + printf '%s' "$string" +} + +OBlabelEscape() { + printf '%s' "${1//_/__}" +} + +######################################################################## + +# rerun script in terminal if necessary +# Usage: terminalCheck [ -T title ] [arguments...] +terminalCheck() { + if ! [[ -t 0 && -t 1 && -t 2 ]]; then # not attached to terminal + if [[ -n $DISPLAY ]]; then # running X + if [[ ${1-} = '-T' ]]; then + local title=${2-} + shift 2 + exec exo-open --launch TerminalEmulator -T "$title" -e "$0" "$@" + else + exec exo-open --launch TerminalEmulator -e "$0" "$@" + fi + else + echo "$0: no terminal" >&2 + exit 1 + fi + fi +} + +# Usage: createFlag filename +createFlag() { + mkdir -p "$HOME/.config/archcraft" + touch "$HOME/.config/archcraft/$1" +} + +# Check the connection by downloading a file from ftp.debian.org. No disk space used. +# Usage: connectiontest [attempts] +# If attempt count is not specified or 0, then it will loop forever and exit(!) your main program with 1 exit status. +connectiontest() { + local TEXT_CHECKING='Checking internet connection...' + local TEXT_FAILED='Internet connection test failed!' + local TEXT_ASK_RETRY=$'\n\nThis script requires a working internet connection. Please configure your internet connection, then hit "Enter" to continue, else hit "q" to quit.' + local TEXT_ABORT='Script aborted.' + local TEXT_OK='Internet connection test passed!' + + local -i i attempts=${1-0} + for (( i=0; i < attempts || attempts == 0; i++ )); do + say "$TEXT_CHECKING" + if wget -O - 'http://ftp.debian.org/debian/README' &> /dev/null; then + say "$TEXT_OK" 1 + return 0 + fi + say "$TEXT_FAILED" + if (( i == attempts - 1 )); then # if last attempt + return 1 + elif prompt "$TEXT_ASK_RETRY" Q; then # if user wants to quit + say "$TEXT_ABORT" 2 + (( attempts == 0 )) && exit 1 || return 1 + fi + tput clear + done +} + +# Check for availability of commands used in script. +# Usage: declareDependencies command [command...] +declareDependencies(){ + local missing_commands=() i= + for i in "$@"; do + hash "$i" 2>/dev/null || missing_commands+=(" $i") + done + [[ ${missing_commands[0]} ]] && errorExit "This script requires the following commands: ${missing_commands[*]} +Please install the packages containing the missing commands +and rerun the script." +} + +######################################################################## +# User interface functions. + +# Usage: say text [delayAfterText|pause] +say() { + local width=$(tput cols 2>/dev/tty) + fold -s -w $((width - 3)) <<< "${1-}" | sed 's/^/ /' # wraps text nicely and adds two leading spaces + if [[ ${2-} = 'pause' ]]; then + echo $'\nPress any key to continue.' + read -srn1 + else + sleep "${2:-0}" + fi +} + +# Usage errorExit message [details] +errorExit() { + say $'\n'"$1"$'\n' '1' >&2 + [[ ${2-} ]] && { + while true; do + local REPLY + read -rn1 -p ' Press "d" for details (q to quit) ' + [[ ${REPLY^} = Q ]] && exit 1 + [[ ${REPLY^} = D ]] && { + echo $'\n\n' + tput setaf 1 + echo "$2" >&2 + tput sgr0 + say " +Would you like to quit now, or continue anyway? +(Be careful!) +Press \"q\" to quit, \"c\" to continue: +" + read -r + [[ ${REPLY^} = Q ]] && exit 1 + [[ ${REPLY^} = C ]] && return 0 + } + done + } + say 'Press any key to exit.' + read -srn1 + exit 1 +} + +# Usage: prompt text [ Y | N | Q | ] +prompt() { + local answer prompt default + if [[ ${2-} && ${2^} = Q ]]; then + while true; do + read -srn1 -p "$1" answer + echo + [[ ${answer^} = Q ]] && return 0 + [[ ! $answer ]] && return 1 + done + fi + + if [[ ! ${2-} || ${2^} = Y ]]; then + prompt='Y/n' + default='Y' + elif [[ ${2^} = N ]]; then + prompt='y/N' + default='N' + else + prompt= + default= + fi + + while true; do + read -r -p "$1 ${prompt:+[$prompt] }" answer + + if [[ ! $prompt && ! $default ]]; then + if [[ $answer = ${2-} ]]; then + echo + return 0 + elif [[ ${answer^} = Q ]]; then + echo + return 1 + else + continue + fi + fi + + [[ ! $answer ]] && + answer=$default + + if [[ ${answer^} = Y || ${answer^^} = YES ]]; then + echo + return 0 + elif [[ ${answer^} = N || ${answer^^} = NO ]]; then + echo + return 1 + fi + done +} + +######################################################################## diff --git a/files/networkmanager-dmenu/config.ini b/files/networkmanager-dmenu/config.ini new file mode 100644 index 0000000..d09b8ab --- /dev/null +++ b/files/networkmanager-dmenu/config.ini @@ -0,0 +1,30 @@ +## Copyright (C) 2020-2023 Aditya Shakya + +[dmenu] +dmenu_command = rofi -dmenu -theme ~/.config/openbox/themes/default/rofi/networkmenu.rasi +# # Note that dmenu_command can contain arguments as well like `rofi -width 30` +# # Rofi and dmenu are set to case insensitive by default `-i` +# l = number of lines to display, defaults to number of total network options +# fn = font string +# nb = normal background (name, #RGB, or #RRGGBB) +# nf = normal foreground +# sb = selected background +# sf = selected foreground +# b = (just set to empty value and menu will appear at the bottom +# m = number of monitor to display on +# p = Custom Prompt for the networks menu +# pinentry = Pinentry command +# rofi_highlight = # (Default: False) use rofi highlighting instead of '**' + +# # override normal foreground and background colors (dmenu) or use the +# # -password option (rofi) to obscure passphrase entry +# [dmenu_passphrase] +# nf = #222222 +# nb = #222222 +# rofi_obscure = True + +[editor] +terminal = alacritty +gui_if_available = True +# terminal = +# gui_if_available = diff --git a/files/nitrogen/bg-saved.cfg b/files/nitrogen/bg-saved.cfg new file mode 100644 index 0000000..7c6e905 --- /dev/null +++ b/files/nitrogen/bg-saved.cfg @@ -0,0 +1,26 @@ +## Copyright (C) 2020-2023 Aditya Shakya + +[xin_0] +file=/usr/share/backgrounds/default.jpg +mode=5 +bgcolor=#000000 + +[xin_1] +file=/usr/share/backgrounds/default.jpg +mode=5 +bgcolor=#000000 + +[xin_2] +file=/usr/share/backgrounds/default.jpg +mode=5 +bgcolor=#000000 + +[xin_3] +file=/usr/share/backgrounds/default.jpg +mode=5 +bgcolor=#000000 + +[xin_4] +file=/usr/share/backgrounds/default.jpg +mode=5 +bgcolor=#000000 diff --git a/files/nitrogen/nitrogen.cfg b/files/nitrogen/nitrogen.cfg new file mode 100644 index 0000000..3fb56ab --- /dev/null +++ b/files/nitrogen/nitrogen.cfg @@ -0,0 +1,14 @@ +## Copyright (C) 2020-2023 Aditya Shakya + +[geometry] +posx=25 +posy=45 +sizex=495 +sizey=450 + +[nitrogen] +view=icon +recurse=true +sort=alpha +icon_caps=false +dirs=/usr/share/backgrounds; diff --git a/files/ob-random/openbox-3/bullet.xbm b/files/ob-random/openbox-3/bullet.xbm new file mode 100644 index 0000000..9f82843 --- /dev/null +++ b/files/ob-random/openbox-3/bullet.xbm @@ -0,0 +1,4 @@ +#define shade_width 8 +#define shade_height 8 +static unsigned char shade_bits[] = { + 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00}; diff --git a/files/ob-random/openbox-3/close.xbm b/files/ob-random/openbox-3/close.xbm new file mode 100644 index 0000000..625906a --- /dev/null +++ b/files/ob-random/openbox-3/close.xbm @@ -0,0 +1,6 @@ +#define close_width 14 +#define close_height 14 +static unsigned char close_bits[] = { + 0x00,0xc0,0x00,0xc0,0x00,0xc0,0x18,0xc6,0x38,0xc7,0xf0,0xc3, + 0xe0,0xc1,0xe0,0xc1,0xf0,0xc3,0x38,0xc7,0x18,0xc6,0x00,0xc0, + 0x00,0xc0,0x00,0xc0}; diff --git a/files/ob-random/openbox-3/desk.xbm b/files/ob-random/openbox-3/desk.xbm new file mode 100644 index 0000000..b749dfe --- /dev/null +++ b/files/ob-random/openbox-3/desk.xbm @@ -0,0 +1,6 @@ +#define desk_width 14 +#define desk_height 14 +static unsigned char desk_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, + 0xf8, 0x07, 0xf8, 0x07, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 }; diff --git a/files/ob-random/openbox-3/desk_toggled.xbm b/files/ob-random/openbox-3/desk_toggled.xbm new file mode 100644 index 0000000..8fce06c --- /dev/null +++ b/files/ob-random/openbox-3/desk_toggled.xbm @@ -0,0 +1,6 @@ +#define desk_width 14 +#define desk_height 14 +static unsigned char desk_bits[] = { + 0x00,0xc0,0x00,0xc0,0x00,0xc0,0x38,0xc7,0x38,0xc7,0x38,0xc7, + 0x00,0xc0,0x00,0xc0,0x38,0xc7,0x38,0xc7,0x38,0xc7,0x00,0xc0, + 0x00,0xc0,0x00,0xc0}; diff --git a/files/ob-random/openbox-3/iconify.xbm b/files/ob-random/openbox-3/iconify.xbm new file mode 100644 index 0000000..d673c92 --- /dev/null +++ b/files/ob-random/openbox-3/iconify.xbm @@ -0,0 +1,6 @@ +#define iconify_width 14 +#define iconify_height 14 +static unsigned char iconify_bits[] = { + 0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0, + 0xf0,0xc3,0xf0,0xc3,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0, + 0x00,0xc0,0x00,0xc0}; diff --git a/files/ob-random/openbox-3/max.xbm b/files/ob-random/openbox-3/max.xbm new file mode 100644 index 0000000..0a7a8f2 --- /dev/null +++ b/files/ob-random/openbox-3/max.xbm @@ -0,0 +1,6 @@ +#define max_width 14 +#define max_height 14 +static unsigned char max_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x80, 0x03, + 0x10, 0x03, 0x30, 0x02, 0x70, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 }; diff --git a/files/ob-random/openbox-3/max_toggled.xbm b/files/ob-random/openbox-3/max_toggled.xbm new file mode 100644 index 0000000..1b79325 --- /dev/null +++ b/files/ob-random/openbox-3/max_toggled.xbm @@ -0,0 +1,6 @@ +#define max_width 14 +#define max_height 14 +static unsigned char max_bits[] = { + 0x00,0xc0,0x00,0xc0,0x00,0xc1,0x00,0xc3,0x00,0xc7,0x00,0xcf, + 0x00,0xc0,0x00,0xc0,0x3c,0xc0,0x38,0xc0,0x30,0xc0,0x20,0xc0, + 0x00,0xc0,0x00,0xc0}; diff --git a/files/ob-random/openbox-3/shade.xbm b/files/ob-random/openbox-3/shade.xbm new file mode 100644 index 0000000..9b025b3 --- /dev/null +++ b/files/ob-random/openbox-3/shade.xbm @@ -0,0 +1,6 @@ +#define shade_width 14 +#define shade_height 14 +static unsigned char shade_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xe0, 0x01, + 0xf0, 0x03, 0xf8, 0x07, 0x00, 0x00, 0xf8, 0x07, 0xf8, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 }; diff --git a/files/ob-random/openbox-3/shade_toggled.xbm b/files/ob-random/openbox-3/shade_toggled.xbm new file mode 100644 index 0000000..aa05b3c --- /dev/null +++ b/files/ob-random/openbox-3/shade_toggled.xbm @@ -0,0 +1,6 @@ +#define shade_width 14 +#define shade_height 14 +static unsigned char shade_bits[] = { + 0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0xf8,0xc7,0xf8,0xc7, + 0x00,0xc0,0xf8,0xc7,0xf0,0xc3,0xe0,0xc1,0xc0,0xc0,0x00,0xc0, + 0x00,0xc0,0x00,0xc0}; diff --git a/files/ob-random/openbox-3/themerc b/files/ob-random/openbox-3/themerc new file mode 100644 index 0000000..d7c4387 --- /dev/null +++ b/files/ob-random/openbox-3/themerc @@ -0,0 +1,139 @@ +## Openbox Theme ################################################## +## Created by : Aditya Shakya <@adi1090x> For Archcraft # +## ############# ################################################## + +#-- Window geometry ----------------------------------------------- +padding.width: 10 +padding.height: 10 +window.client.padding.width: 0 +window.client.padding.height: 0 +window.handle.width: 5 + +border.width: 0 +osd.border.width: 5 +menu.border.width: 10 + +menu.overlap.x: -15 +menu.overlap.y: 10 +menu.separator.width: 0 +menu.separator.padding.width: 0 +menu.separator.padding.height: 2 + +window.active.label.text.font: shadow=n +window.inactive.label.text.font: shadow=n +menu.items.font: shadow=n +menu.title.text.font: shadow=n +osd.label.text.font: shadow=n + +window.label.text.justify: Center +menu.title.text.justify: Center + +#-- Border colors ------------------------------------------------- +window.active.border.color: #1E2128 +window.inactive.border.color: #1E2128 +window.active.client.color: #1E2128 +window.inactive.client.color: #1E2128 +window.active.title.separator.color: #1E2128 +window.inactive.title.separator.color: #1E2128 + +#-- Active window ------------------------------------------------- +window.active.title.bg: Flat Solid +window.active.title.bg.color: #1E2128 +window.active.label.bg: Parentrelative +window.active.label.text.color: #ABB2BF +window.active.handle.bg: Flat Solid +window.active.handle.bg.color: #1E2128 +window.active.grip.bg: Flat Solid +window.active.grip.bg.color: #1E2128 +window.active.button.unpressed.bg: Flat Solid +window.active.button.unpressed.bg.color: #1E2128 +window.active.button.unpressed.image.color: #ABB2BF +window.active.button.pressed.bg: Flat Solid +window.active.button.pressed.bg.color: #1E2128 +window.active.button.pressed.image.color: #62AEEF +window.active.button.disabled.bg: Flat Solid +window.active.button.disabled.bg.color: #1E2128 +window.active.button.disabled.image.color: #292d37 +window.active.button.hover.bg: Flat Solid +window.active.button.hover.bg.color: #1E2128 +window.active.button.hover.image.color: #98C379 +window.active.button.toggled.unpressed.bg: Flat Solid +window.active.button.toggled.unpressed.bg.color: #1E2128 +window.active.button.toggled.unpressed.image.color: #ABB2BF +window.active.button.toggled.pressed.bg: Flat Solid +window.active.button.toggled.pressed.bg.color: #1E2128 +window.active.button.toggled.pressed.image.color: #62AEEF +window.active.button.toggled.hover.bg: Flat Solid +window.active.button.toggled.hover.bg.color: #1E2128 +window.active.button.toggled.hover.image.color: #98C379 + +#-- Inactive windows ----------------------------------------------- +window.inactive.title.bg: Flat Solid +window.inactive.title.bg.color: #1E2128 +window.inactive.label.bg: Parentrelative +window.inactive.label.text.color: #5a6477 +window.inactive.handle.bg: Flat Solid +window.inactive.handle.bg.color: #1E2128 +window.inactive.grip.bg: Flat Solid +window.inactive.grip.bg.color: #1E2128 +window.inactive.button.unpressed.bg: Flat Solid +window.inactive.button.unpressed.bg.color: #1E2128 +window.inactive.button.unpressed.image.color: #5a6477 +window.inactive.button.pressed.bg: Flat Solid +window.inactive.button.pressed.bg.color: #1E2128 +window.inactive.button.pressed.image.color: #62AEEF +window.inactive.button.disabled.bg: Flat Solid +window.inactive.button.disabled.bg.color: #1E2128 +window.inactive.button.disabled.image.color: #292d37 +window.inactive.button.hover.bg: Flat Solid +window.inactive.button.hover.bg.color: #1E2128 +window.inactive.button.hover.image.color: #98C379 +window.inactive.button.toggled.unpressed.bg: Flat Solid +window.inactive.button.toggled.unpressed.bg.color: #1E2128 +window.inactive.button.toggled.unpressed.image.color: #5a6477 +window.inactive.button.toggled.pressed.bg: Flat Solid +window.inactive.button.toggled.pressed.bg.color: #1E2128 +window.inactive.button.toggled.pressed.image.color: #62AEEF +window.inactive.button.toggled.hover.bg: Flat Solid +window.inactive.button.toggled.hover.bg.color: #1E2128 +window.inactive.button.toggled.hover.image.color: #98C379 + +#-- Close Button ------------------------------------------------- +window.active.button.close.pressed.image.color: #E06B74 +window.active.button.close.hover.image.color: #E06B74 +window.inactive.button.close.pressed.image.color: #E06B74 +window.inactive.button.close.hover.image.color: #E06B74 + +#-- Menu --------------------------------------------------------- +menu.title.bg: Flat Solid +menu.title.bg.color: #292d37 +menu.title.text.color: #ABB2BF +menu.items.bg: Flat Solid +menu.items.bg.color: #1E2128 +menu.items.text.color: #ABB2BF +menu.items.disabled.text.color: #5a6477 +menu.items.active.bg: Flat Solid +menu.items.active.bg.color: #62AEEF +menu.items.active.text.color: #1E2128 +menu.items.active.disabled.text.color: #ABB2BF +menu.separator.color: #1E2128 +menu.border.color: #1E2128 + +#-- OSD Settings ------------------------------------------------- + +osd.bg: Flat Solid +osd.bg.color: #1E2128 +osd.label.text.color: #ABB2BF +osd.border.color: #292d37 + +osd.active.label.bg: Flat Solid +osd.active.label.bg.color: #1E2128 +osd.active.label.text.color: #62AEEF +osd.inactive.label.bg: Flat Solid +osd.inactive.label.bg.color: #1E2128 +osd.inactive.label.text.color: #ABB2BF + +osd.hilight.bg: Flat Solid +osd.hilight.bg.color: #62AEEF +osd.unhilight.bg: Flat Solid +osd.unhilight.bg.color: #1E2128 diff --git a/files/obmenu-generator/config.pl b/files/obmenu-generator/config.pl new file mode 100644 index 0000000..3338402 --- /dev/null +++ b/files/obmenu-generator/config.pl @@ -0,0 +1,82 @@ +#!/usr/bin/perl + +## Copyright (C) 2020-2023 Aditya Shakya + +# obmenu-generator - configuration file +# This file will be updated automatically. +# Any additional comment and/or indentation will be lost. + +=for comment + +|| FILTERING + | skip_filename_re : Skip a .desktop file if its name matches the regex. + Name is from the last slash to the end. (e.g.: name.desktop) + Example: qr/^(?:gimp|xterm)\b/, # skips 'gimp' and 'xterm' + + | skip_entry : Skip a desktop file if the value from a given key matches the regex. + Example: [ + {key => 'Name', re => qr/(?:about|terminal)/i}, + {key => 'Exec', re => qr/^xterm/}, + {key => 'OnlyShowIn', re => qr/XFCE/}, + ], + + | substitutions : Substitute, by using a regex, in the values from the desktop files. + Example: [ + {key => 'Exec', re => qr/xterm/, value => 'tilix', global => 1}, + ], + +|| ICON SETTINGS + | use_gtk3 : Use the Gtk3 library for resolving the icon paths. (default: 0) + | gtk_rc_filename : Absolute path to the GTK configuration file. + | missing_icon : Use this icon for missing icons (default: gtk-missing-image) + | icon_size : Preferred size for icons. (default: 48) + | generic_fallback : Try to shorten icon name at '-' characters before looking at inherited themes. (default: 0) + | force_icon_size : Always get the icon scaled to the requested size. (default: 0) + +|| PATHS + | desktop_files_paths : Absolute paths which contain .desktop files. + Example: [ + '/usr/share/applications', + "$ENV{HOME}/.local/share/applications", + glob("$ENV{HOME}/.local/share/applications/wine/Programs/*"), + ], + +|| NOTES + | Regular expressions: + * use qr/.../ instead of '...' + * use qr/.../i for case insensitive mode + +=cut + +our $CONFIG = { + "editor" => "geany", + "force_icon_size" => 0, + "generic_fallback" => 0, + "gtk_rc_filename" => "$ENV{HOME}/.gtkrc-2.0", + "icon_size" => 48, + "Linux::DesktopFiles" => { + desktop_files_paths => [ + "/usr/share/applications", + "/usr/local/share/applications", + "/usr/share/applications/kde4", + ], + gtk_rc_filename => "~/.gtkrc-2.0", + icon_dirs_first => undef, + icon_dirs_last => undef, + icon_dirs_second => undef, + keep_unknown_categories => 1, + skip_entry => undef, + skip_filename_re => undef, + skip_svg_icons => 0, + strict_icon_dirs => undef, + substitutions => undef, + terminalization_format => "%s -e '%s'", + terminalize => 1, + unknown_category_key => "other", + }, + "locale_support" => 1, + "missing_icon" => "gtk-missing-image", + "terminal" => "alacritty", + "use_gtk3" => 0, + "VERSION" => 0.89, +} diff --git a/files/obmenu-generator/schema.pl b/files/obmenu-generator/schema.pl new file mode 100644 index 0000000..1183d79 --- /dev/null +++ b/files/obmenu-generator/schema.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +## Copyright (C) 2020-2023 Aditya Shakya + +# obmenu-generator - schema file + +require "$ENV{HOME}/.config/obmenu-generator/config.pl"; + +our $SCHEMA = [ + + {sep => 'Applications'}, + # NAME LABEL ICON + {cat => ['utility', 'Accessories', 'applications-utilities']}, + {cat => ['development', 'Development', 'applications-development']}, + {cat => ['education', 'Education', 'applications-science']}, + {cat => ['game', 'Games', 'applications-games']}, + {cat => ['graphics', 'Graphics', 'applications-graphics']}, + {cat => ['audiovideo', 'Multimedia', 'applications-multimedia']}, + {cat => ['network', 'Network', 'applications-internet']}, + {cat => ['office', 'Office', 'applications-office']}, + {cat => ['other', 'Other', 'applications-other']}, + {cat => ['settings', 'Settings', 'gnome-settings']}, + {cat => ['system', 'System', 'applications-system']}, + + #{sep}, + #{cat => ['qt', 'QT Applications', 'qt4logo']}, + #{cat => ['gtk', 'GTK Applications', 'gnome-applications']}, + #{cat => ['x_xfce', 'XFCE Applications', 'applications-other']}, + #{cat => ['gnome', 'GNOME Applications', 'gnome-applications']}, + #{cat => ['consoleonly', 'CLI Applications', 'applications-utilities']}, +] diff --git a/files/pipemenus/ac-asroot b/files/pipemenus/ac-asroot new file mode 100755 index 0000000..bc81951 --- /dev/null +++ b/files/pipemenus/ac-asroot @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Openbox Pipemenu to open applications as root + +# Variables and functions +MENUS_LIBDIR='/usr/share/archcraft/openbox/menulib' +if ! . "$MENUS_LIBDIR/archcraft.cfg" 2> /dev/null; then + echo "Error: Failed to locate archcraft.cfg in $MENUS_LIBDIR" >&2 + exit 1 +fi + +# cmd +root_cmd="$HOME/.config/openbox/scripts/ob-asroot" + +# menu +menuStart + menuItem 'Terminal (alacritty)' "$root_cmd 'alacritty'" + menuItem 'File Manager (thunar)' "$root_cmd 'dbus-run-session thunar'" + menuItem 'Text Editor (geany)' "$root_cmd 'geany'" + menuSeparator + menuItem 'File Manager CLI (ranger)' "$root_cmd 'alacritty -e ranger'" + menuItem 'Text Editor CLI (vim)' "$root_cmd 'alacritty -e vim'" + menuSeparator + menuItem 'QT5 Settings' "$root_cmd 'qt5ct'" + menuItem 'kvantum Manager' "$root_cmd 'kvantummanager'" +menuEnd diff --git a/files/pipemenus/ac-change-fonts b/files/pipemenus/ac-change-fonts new file mode 100755 index 0000000..d7b7409 --- /dev/null +++ b/files/pipemenus/ac-change-fonts @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Openbox Pipemenu to change fonts for various applications + +# Variables and functions +MENUS_LIBDIR='/usr/share/archcraft/openbox/menulib' +if ! . "$MENUS_LIBDIR/archcraft.cfg" 2> /dev/null; then + echo "Error: Failed to locate archcraft.cfg in $MENUS_LIBDIR" >&2 + exit 1 +fi + +# Theme +themedir="$HOME/.config/openbox/themes" +ctheme="`cat $themedir/.current`" + +# Dir +confdir="$HOME/.config" +termdir="$confdir/alacritty" +dunstdir="$confdir/dunst" +oboxdir="$confdir/openbox" +polydir="$themedir/$ctheme/polybar" +rofidir="$themedir/$ctheme/rofi" + +# Font +getfonts () { + FONT=$(yad --title='Select A Font' --font --separate-output --button=Cancel:1 --button=Select:0) + FNAME=$(echo $FONT | cut -d'|' -f1) + FSTYLE=$(echo $FONT | cut -d'|' -f2) + FSIZE=$(echo $FONT | cut -d'|' -f3) +} + +font_bar () { + if [[ "$FONT" ]]; then + sed -i -e "s/font-0 = .*/font-0 = $FNAME:$FSTYLE:size=$FSIZE;2/g" ${polydir}/config.ini + polybar-msg cmd restart + else + exit 0 + fi +} + +font_rofi () { + if [[ "$FONT" ]]; then + sed -i -e "s/font:.*/font: \"$FNAME $FSTYLE $FSIZE\";/g" ${rofidir}/shared/fonts.rasi + else + exit 0 + fi +} + +font_term () { + if [[ "$FONT" ]]; then + sed -i -e "s/family: .*/family: \"$FNAME\"/g" ${termdir}/fonts.yml + sed -i -e "s/size: .*/size: $FSIZE/g" ${termdir}/fonts.yml + else + exit 0 + fi +} + +font_ob () { + if [[ "$FONT" ]]; then + namespace="http://openbox.org/3.4/rc" + config="$oboxdir/rc.xml" + + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:name' -v "$FNAME" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v "$FSIZE" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:weight' -v Bold "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:slant' -v Normal "$config" + + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:name' -v "$FNAME" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "$FSIZE" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:weight' -v Normal "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:slant' -v Normal "$config" + + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="MenuHeader"]/a:name' -v "$FNAME" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="MenuHeader"]/a:size' -v "$FSIZE" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="MenuHeader"]/a:weight' -v Bold "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="MenuHeader"]/a:slant' -v Normal "$config" + + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="MenuItem"]/a:name' -v "$FNAME" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="MenuItem"]/a:size' -v "$FSIZE" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="MenuItem"]/a:weight' -v Normal "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="MenuItem"]/a:slant' -v Normal "$config" + + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveOnScreenDisplay"]/a:name' -v "$FNAME" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveOnScreenDisplay"]/a:size' -v "$FSIZE" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveOnScreenDisplay"]/a:weight' -v Bold "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveOnScreenDisplay"]/a:slant' -v Normal "$config" + + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveOnScreenDisplay"]/a:name' -v "$FNAME" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveOnScreenDisplay"]/a:size' -v "$FSIZE" "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveOnScreenDisplay"]/a:weight' -v Normal "$config" + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveOnScreenDisplay"]/a:slant' -v Normal "$config" + + openbox --reconfigure + else + exit 0 + fi +} + +font_dunst () { + if [[ "$FONT" ]]; then + sed -i -e "s/font = .*/font = $FNAME $FSTYLE $FSIZE/g" ${dunstdir}/dunstrc + pkill dunst && dunst & + else + exit 0 + fi +} + +font_gtk () { + if [[ "$FONT" ]]; then + xfconf-query -c xsettings -p /Gtk/FontName -s "$FNAME $FSTYLE $FSIZE" + else + exit 0 + fi +} + +if [[ "$1" == "--bar" ]]; then + getfonts + font_bar + +elif [[ "$1" == "--rofi" ]]; then + getfonts + font_rofi + +elif [[ "$1" == "--terminal" ]]; then + getfonts + font_term + +elif [[ "$1" == "--openbox" ]]; then + getfonts + font_ob + +elif [[ "$1" == "--dunst" ]]; then + getfonts + font_dunst + +elif [[ "$1" == "--gtk" ]]; then + getfonts + font_gtk + +elif [[ "$1" == "--all" ]]; then + getfonts + font_bar + font_rofi + font_term + font_ob + font_dunst + font_gtk + +else + menuStart + menuItem 'Status Bar (polybar)' "$0 --bar" + menuItem 'Launchers (rofi)' "$0 --rofi" + menuItem 'Terminal (alacritty)' "$0 --terminal" + menuItem 'Desktop (openbox)' "$0 --openbox" + menuItem 'Notifications (dunst)' "$0 --dunst" + menuItem 'Applications (gtk)' "$0 --gtk" + menuSeparator + menuItem 'Change Globally' "$0 --all" + menuEnd +fi + +exit 0 diff --git a/files/pipemenus/ac-change-scheme b/files/pipemenus/ac-change-scheme new file mode 100755 index 0000000..c0ad896 --- /dev/null +++ b/files/pipemenus/ac-change-scheme @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Openbox Pipemenu to change alacritty terminal color scheme + +# Variables and functions +MENUS_LIBDIR='/usr/share/archcraft/openbox/menulib' +if ! . "$MENUS_LIBDIR/archcraft.cfg" 2> /dev/null; then + echo "Error: Failed to locate archcraft.cfg in $MENUS_LIBDIR" >&2 + exit 1 +fi + +# Dir +dir="$HOME/.config/alacritty" + +# Schemes +schemes=($(ls -p $dir/colorschemes)) + +# Main +main () { + local count=1 + + menuStart + for scheme in "${schemes[@]}"; do + menuItem "${count}. ${scheme%.*}" "$0 ${scheme}" + count=$(($count+1)) + done + menuEnd + + for scheme in "${schemes[@]}"; do + if [[ "$1" == "$scheme" ]]; then + cat "$dir"/colorschemes/"$1" > "$dir"/colors.yml + fi + done +} + +main "$1" diff --git a/files/pipemenus/ac-change-style b/files/pipemenus/ac-change-style new file mode 100755 index 0000000..64048f2 --- /dev/null +++ b/files/pipemenus/ac-change-style @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Openbox Pipemenu to change openbox themes + +# Variables and functions +MENUS_LIBDIR='/usr/share/archcraft/openbox/menulib' +if ! . "$MENUS_LIBDIR/archcraft.cfg" 2> /dev/null; then + echo "Error: Failed to locate archcraft.cfg in $MENUS_LIBDIR" >&2 + exit 1 +fi + +# Dir +DIR="$HOME/.config/openbox/themes" +CTHEME="`cat $DIR/.current`" + +# Themes +THEMES=(`cd $DIR && ls -d */ | cut -d '/' -f1`) + +# Generate menu +gen_menu () { + local COUNT=1 + + menuStart + menuSeparator "⁌ Themes (`echo ${#THEMES[@]}`) ⁍" + + # Random Colors (pywal) + if [[ -e "$DIR/$CTHEME/random.sh" ]]; then + menuSubmenu "current_theme" "0. Current" + menuSeparator "${CTHEME^}" + menuItem "✤ Change Colors" "bash $DIR/$CTHEME/random.sh" + menuSubmenuEnd + menuSeparator + fi + + # In-built Themes + for THEME in "${THEMES[@]}"; do + menuItem "${COUNT}. ${THEME^}" "bash $DIR/$THEME/apply.sh" + COUNT=$(($COUNT+1)) + done + menuEnd +} + +{ gen_menu; exit 0; } diff --git a/files/pipemenus/ac-compositor b/files/pipemenus/ac-compositor new file mode 100755 index 0000000..83d382e --- /dev/null +++ b/files/pipemenus/ac-compositor @@ -0,0 +1,266 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Openbox Pipemenu For Picom Compositor + +# Variables and functions +MENUS_LIBDIR='/usr/share/archcraft/openbox/menulib' +if ! . "$MENUS_LIBDIR/archcraft.cfg" 2> /dev/null; then + echo "Error: Failed to locate archcraft.cfg in $MENUS_LIBDIR" >&2 + exit 1 +fi + +# User's config dir +dir="$HOME/.config" + +readonly EXECXCOMP='picom' +readonly RESTART_ATTEMPTS=20 +readonly HELP=' +ac-compositor an openbox pipe menu for use with picom +It should normally be called from an openbox menu. + +Options (passed from the menu): + -h --help show this message + --start start the compositor and restart tint2, if running + --restart restart the compositor, if running + --stop stop the compositor + --edit open the picom config file in a text editor + --watch restart picom when the config is modified (useful for debugging) + +If ac-compositor is called with no options (the usual method), +it will output an xml openbox pipemenu for handling compositing. + +See ~/.config/picom.conf and "man picom" for configuration options.' + +for i in "$@"; do + case "$i" in + -h|--help) echo "$HELP" ; exit 0 + esac +done + +declareDependencies picom + +##-- various checks --------------------- +check_backend=$(cat $dir/picom.conf | grep 'backend = ' | head -n1 | cut -d'=' -f2 | tr -d ';,[:blank:],"') +check_corners=$(cat $dir/picom.conf | grep 'corner-radius =' | cut -d'=' -f2 | tr -d ';,[:blank:]') +check_border=$(cat $dir/picom.conf | grep 'round-borders =' | cut -d'=' -f2 | tr -d ';,[:blank:]') +check_shadow=$(cat $dir/picom.conf | grep 'shadow =' | head -n1 | cut -d'=' -f2 | tr -d ';,[:blank:]') +check_fading=$(cat $dir/picom.conf | grep 'fading =' | head -n1 | cut -d'=' -f2 | tr -d ';,[:blank:]') +check_blur=$(cat $dir/picom.conf | grep 'method =' | head -n1 | cut -d'=' -f2 | tr -d ';,[:blank:],"') + +## Kill picom +forcekill_picom() { + killall -q picom + for ((i=0; i/dev/null; then + exo-open "$HOME/.config/picom.conf" + else + geany "$HOME/.config/picom.conf" + fi + +elif [[ $1 = '--start' ]]; then + if ! [[ $(pidof picom) ]]; then + $EXECXCOMP + else + echo "$0 --start: picom already running" && exit 1 + fi + +elif [[ $1 = '--stop' ]]; then + forcekill_picom + +elif [[ $1 = '--restart' ]]; then + if [[ $(pidof picom) ]]; then + forcekill_picom + "$0" --start + else # nothing to restart + echo "$0 --restart: picom is not running" && exit 1 + fi + +elif [[ $1 = '--watch' ]]; then + while inotifywait -e close_write "$HOME/.config/picom.conf"; do + "$0" --restart + done + +##-- backend ------------------ + +elif [[ $1 = '--use-glx' ]]; then + sed -i -e "s/backend = .*/backend = \"glx\";/g" $dir/picom.conf + +elif [[ $1 = '--use-xrender' ]]; then + sed -i -e "s/backend = .*/backend = \"xrender\";/g" $dir/picom.conf + +##-- corners --------------------- + +elif [[ $1 = '--corner-radius' ]]; then + cradius=$(yad --borders=10 --width='300' --title='Corner Radius' --button=Cancel:1 --button=Okay:0 --scale --value=6 --min-value=0 --max-value=40) + if [[ "$cradius" ]]; then + sed -i -e "s/backend = .*/backend = \"glx\";/g" $dir/picom.conf + sed -i -e "s/corner-radius = .*/corner-radius = $cradius;/g" $dir/picom.conf + fi + +elif [[ $1 = '--disable-corners' ]]; then + sed -i -e "s/corner-radius = .*/corner-radius = 0;/g" $dir/picom.conf + +##-- borders --------------------- + +elif [[ $1 = '--border-size' ]]; then + cborder=$(yad --borders=10 --width='300' --title='Border Size' --button=Cancel:1 --button=Okay:0 --scale --value=4 --min-value=0 --max-value=100) + if [[ "$cborder" ]]; then + sed -i -e "s/round-borders = .*/round-borders = $cborder;/g" $dir/picom.conf + fi + +elif [[ $1 = '--disable-borders' ]]; then + sed -i -e "s/round-borders = .*/round-borders = 0;/g" $dir/picom.conf + +##-- shadows --------------------- + +elif [[ $1 = '--update-shadows' ]]; then + get_shadows=$(yad --borders=10 --width='350' --height='200' --title='Client Shadows' --button=Cancel:1 --button=Okay:0 --form --field="Radius:NUM" 14\!0..50\!1 --field="Opacity:NUM" 0.30\!0..1\!0.1\!2 --field="X-Offset:NUM" 12\!-30..30\!1 --field="Y-Offset:NUM" 12\!-30..30\!1) + shadow_r=$(echo $get_shadows | cut -d'|' -f1) + shadow_o=$(echo $get_shadows | cut -d'|' -f2) + shadow_x=$(echo $get_shadows | cut -d'|' -f3) + shadow_y=$(echo $get_shadows | cut -d'|' -f4) + if [[ "$get_shadows" ]]; then + sed -i -e "s/shadow-radius = .*/shadow-radius = $shadow_r;/g" $dir/picom.conf + sed -i -e "s/shadow-opacity = .*/shadow-opacity = $shadow_o;/g" $dir/picom.conf + sed -i -e "s/shadow-offset-x = .*/shadow-offset-x = $shadow_x;/g" $dir/picom.conf + sed -i -e "s/shadow-offset-y = .*/shadow-offset-y = $shadow_y;/g" $dir/picom.conf + fi + +elif [[ $1 = '--disable-shadows' ]]; then + sed -i -e "s/shadow = .*/shadow = false;/g" $dir/picom.conf + +elif [[ $1 = '--enable-shadows' ]]; then + sed -i -e "s/shadow = .*/shadow = true;/g" $dir/picom.conf + +elif [[ $1 = '--reset-shadows' ]]; then + sed -i -e "s/shadow-radius = .*/shadow-radius = 14;/g" $dir/picom.conf + sed -i -e "s/shadow-opacity = .*/shadow-opacity = 0.35;/g" $dir/picom.conf + sed -i -e "s/shadow-offset-x = .*/shadow-offset-x = -12;/g" $dir/picom.conf + sed -i -e "s/shadow-offset-y = .*/shadow-offset-y = -12;/g" $dir/picom.conf + +##-- fading --------------------- + +elif [[ $1 = '--update-fading' ]]; then + get_fading=$(yad --borders=10 --width='350' --height='160' --title='Fading' --button=Cancel:1 --button=Okay:0 --form --field="Fade-in-step:NUM" 0.03\!0.01..1\!0.01\!2 --field="Fade-out-step:NUM" 0.03\!0.01..1\!0.01\!2 --field="Fade-delta:NUM" 5\!0..10\!1) + fading_in=$(echo $get_fading | cut -d'|' -f1) + fading_out=$(echo $get_fading | cut -d'|' -f2) + fading_delta=$(echo $get_fading | cut -d'|' -f3) + if [[ "$get_fading" ]]; then + sed -i -e "s/fade-in-step = .*/fade-in-step = $fading_in;/g" $dir/picom.conf + sed -i -e "s/fade-out-step = .*/fade-out-step = $fading_out;/g" $dir/picom.conf + sed -i -e "s/fade-delta = .*/fade-delta = $fading_delta;/g" $dir/picom.conf + fi + +elif [[ $1 = '--disable-fading' ]]; then + sed -i -e "s/fading = .*/fading = false;/g" $dir/picom.conf + +elif [[ $1 = '--enable-fading' ]]; then + sed -i -e "s/fading = .*/fading = true;/g" $dir/picom.conf + +elif [[ $1 = '--reset-fading' ]]; then + sed -i -e "s/fade-in-step = .*/fade-in-step = 0.03;/g" $dir/picom.conf + sed -i -e "s/fade-out-step = .*/fade-out-step = 0.03;/g" $dir/picom.conf + sed -i -e "s/fade-delta = .*/fade-delta = 5;/g" $dir/picom.conf + +##-- blur --------------------- + +elif [[ $1 = '--enable-blur' ]]; then + sed -i -e "s/backend = .*/backend = \"glx\";/g" $dir/picom.conf + sed -i -e "s/method = .*/method = \"dual_kawase\";/g" $dir/picom.conf + sed -i -e "s/strength = .*/strength = 7;/g" $dir/picom.conf + +elif [[ $1 = '--disable-blur' ]]; then + sed -i -e "s/method = .*/method = \"none\";/g" $dir/picom.conf + sed -i -e "s/strength = .*/strength = 0;/g" $dir/picom.conf + +elif [[ $1 = '--update-blur' ]]; then + bstrength=$(yad --borders=10 --width='300' --title='Blur Strength' --button=Cancel:1 --button=Okay:0 --scale --value=7 --min-value=1 --max-value=20) + if [[ "$bstrength" ]]; then + sed -i -e "s/strength = .*/strength = $bstrength;/g" $dir/picom.conf + fi + +##-- menu --------------------- + +else + menuStart + if ! [[ $(pidof picom) ]]; then + menuItem 'Enable Compositor' "$0 --start" + else + menuSeparator 'Current Compositor' + if [[ `pacman -Q picom-jonaburg-git` ]]; then + menuItem "Jonaburg's fork of picom" "echo" + elif [[ `pacman -Q picom-ibhagwan-git` ]]; then + menuItem "ibhagwan's fork of picom" "echo" + elif [[ `pacman -Q picom` ]]; then + menuItem "Original picom from Arch Repo" "echo" + fi + menuSeparator 'Backend' + if [[ "$check_backend" != "glx" ]]; then + menuItem "Use 'glx' backend" "$0 --use-glx" + else + menuItem "Use 'xrender' backend" "$0 --use-xrender" + fi + menuSeparator 'Corners' + if [[ "$check_corners" != "0" ]]; then + menuItem 'Change Corner Radius' "$0 --corner-radius" + menuItem 'Disable Rounded Corners' "$0 --disable-corners" + else + menuItem 'Enable Rounded Corners' "$0 --corner-radius" + fi + if [[ `pacman -Q picom-jonaburg-git` || `pacman -Q picom-ibhagwan-git` ]]; then + menuSeparator 'Border' + if [[ "$check_border" != "0" ]]; then + menuItem 'Change Border Size' "$0 --border-size" + menuItem 'Disable Borders' "$0 --disable-borders" + else + menuItem 'Enable Borders' "$0 --border-size" + fi + fi + menuSeparator 'Shadow' + if [[ "$check_shadow" == "true" ]]; then + menuItem 'Modify Shadow Settings' "$0 --update-shadows" + menuItem 'Reset Shadow Settings' "$0 --reset-shadows" + menuItem 'Disable Client Shadows' "$0 --disable-shadows" + else + menuItem 'Enable Client Shadows' "$0 --enable-shadows" + fi + menuSeparator 'Fading' + if [[ "$check_fading" == "true" ]]; then + menuItem 'Modify Fading Settings' "$0 --update-fading" + menuItem 'Reset Fading Settings' "$0 --reset-fading" + menuItem 'Disable Fading' "$0 --disable-fading" + else + menuItem 'Enable Fading' "$0 --enable-fading" + fi + if [[ `pacman -Q picom-jonaburg-git` || `pacman -Q picom-ibhagwan-git` ]]; then + menuSeparator 'Blur' + if [[ "$check_blur" != "dual_kawase" ]]; then + menuItem 'Enable Blur Effect' "$0 --enable-blur" + else + menuItem 'Set Blur Strength' "$0 --update-blur" + menuItem 'Disable Blur Effect' "$0 --disable-blur" + fi + fi + menuSeparator 'Settings' + menuItem 'Restart Compositor' "$0 --restart" + menuItem 'Disable Compositor' "$0 --stop" + fi + menuSeparator + menuItem 'Edit Configuration File' "$0 --edit" + menuEnd +fi + +exit 0 diff --git a/files/pipemenus/ac-kb b/files/pipemenus/ac-kb new file mode 100755 index 0000000..465e597 --- /dev/null +++ b/files/pipemenus/ac-kb @@ -0,0 +1,141 @@ +#!/usr/bin/env python + +## Copyright (C) 2020-2023 Aditya Shakya + +# ac-kb: a script to read openbox's rc.xml and write out the keybinds +# Copyright (C) 2010 wlourf +# Copyright (C) 2015 damo + +import sys +import os +import datetime +import argparse + +try: + from lxml import etree +except ImportError: + import xml.etree.ElementTree as etree + +# path and name of the rc.xml and saved keybinds files +rc_fpath = os.environ["HOME"] + "/.config/openbox/rc.xml" +kb_fpath = os.environ["HOME"] + "/.config/openbox/kbinds.txt" +arrShortcut = [] +gui = False + +def cmdargs(): + """get command arguments""" + if len(sys.argv) > 1: + if sys.argv[1] == "--gui": + gui = True + return gui + else: + msg = "\n\n\tUSAGE: to display keybinds in a text window use 'al-kb --gui'\n\n" + msg += "\tRunning the script without args will send output to the terminal\n\n" + print(msg) + sys.exit() + +def keyboard(): + """read keyboard shorcuts""" + # Parse xml + strRoot = "{http://openbox.org/3.4/rc}" + tree = etree.parse(rc_fpath) + root = tree.getroot() + + for k in root.findall(strRoot+"keyboard/" + strRoot + "keybind"): + key = k.get("key") + action_element = k.find(strRoot+"action") + strTxt = "" + strType = "o " # flag for pipemenu: Openbox window command + if action_element != None: + arrShortcut.append((key, "", "")) + if action_element.get("name") == "Execute": + name_element = action_element.find(strRoot + "name") + command_element = action_element.find(strRoot + "command") + exec_element = action_element.find(strRoot + "execute") + strType = "x " # flag for pipemenu: Run command + + if name_element != None: + strTxt = name_element.text + elif command_element != None: + strTxt = command_element.text + elif exec_element != None: + strTxt = exec_element.text + elif action_element.get("name") == "ShowMenu": + menu_element = action_element.find(strRoot + "menu") + if menu_element != None: + strTxt = menu_element.text + else: + action_name = action_element.get("name") + if action_name != None: + strTxt = action_name + arrShortcut[len(arrShortcut) - 1] = (strType, key, strTxt) + +def output_keybinds(arrShortcut, gui): + """loop through array, and format output then write to file""" + for i in range(0, len(arrShortcut)): + exe = str(arrShortcut[i][0]) + keybinding = str(arrShortcut[i][1]) + execute = str(arrShortcut[i][2]) + if gui: #format output for text window + if len(execute) > 80: + execute = execute[:70] + "....." + if len(keybinding) > 15: + line = "{:2}".format(i) + "\t" + "{:<16}".format(keybinding) + "\t" + execute + elif len(keybinding) >= 10: + line = "{:2}".format(i) + "\t" + "{:<15}".format(keybinding) + "\t\t\t" + execute + elif len(keybinding) >= 8: + line = "{:2}".format(i) + "\t" + "{:<14}".format(keybinding) + "\t\t\t\t" + execute + else: + line = "{:2}".format(i) + "\t" + "{:<14}".format(keybinding) + "\t\t\t\t" + execute + else: #format text for pipemenu + line = exe + "{:<16}".format(keybinding) + "\t" + execute + print(line) + write_file(line) + +def check_rcfile(fpath, mode): + """Check if rc.xml exists, and is accessible""" + try: + f = open(fpath, mode) + except IOError as e: + return False + return True + +def write_file(line): + """Text file to store keybinds""" + f = open(kb_fpath, 'a') + f.write(line + "\n") + f.close() + +def check_txtfile(kb_fpath): + """Create Text file to store keybinds""" + try: + f = open(kb_fpath, 'w') + except IOError as e: + return False + return True + +if __name__ == "__main__": + + ap = argparse.ArgumentParser(description = "Display keybinds") + ap.add_argument("-g", "--gui", help = "display keybinds in a text window", action = "store_true") + opts = ap.parse_args(sys.argv[1:]) + gui = opts.gui + check_txtfile(kb_fpath) + if gui: # output formatted keybinds text in text window + write_file(str(datetime.date.today()) + "\trc.xml KEYBINDS") + write_file("-------------------------------\n") + + if check_rcfile(rc_fpath, "r"): + keyboard() + output_keybinds(arrShortcut, gui) + else: + MSG = "\nCan't open rc.xml for parsing\n\ + Check the filepath given: " + rc_fpath + "\n" + print(MSG) + sys.exit(1) + + if gui: # output formatted keybinds text in text window + DLG = "yad --button=Exit:1 --text-info --title='Openbox Keybinds' " + DLG += "--filename=$HOME/.config/openbox/kbinds.txt " + DLG += "--width=750 --height=600 " + os.system(DLG) diff --git a/files/pipemenus/ac-kb-pipemenu b/files/pipemenus/ac-kb-pipemenu new file mode 100755 index 0000000..ce58dae --- /dev/null +++ b/files/pipemenus/ac-kb-pipemenu @@ -0,0 +1,85 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Openbox Pipemenu for displaying keybinds + +readonly KBSCRIPTDIR="/usr/share/archcraft/openbox/pipemenus" +readonly KBSCRIPT="$KBSCRIPTDIR/ac-kb" +readonly CFG_DIR="$HOME/.config/openbox" +readonly RCPATH="$CFG_DIR/rc.xml" +readonly KBTEXT="$CFG_DIR/kbinds.txt" +readonly HELP='\tal-kb-pipemenu an Openbox Pipe Menu for displaying keybinds +\tIt should normally be called from an openbox menu. +\nOptions (usually passed from the menu): +\t-h --help show this message +\t--keybinds display keybindings defined in rc.xml as a menu +\t(The keybinds in the menu are clickable, except for the Openbox +\tcommands, which just exit the menu.) +\t--rcedit backup and edit rc.xml +\nIf al-keyboard-pipemenu is called with no options (the usual method), +it will output an xml openbox pipemenu for displaying keybindings. +\tNOTE: Some of the functionality of this pipemenu depends on the script +/usr/bin/al-kb which is provided by the package "archlabs-utilities"' + +case "$@" in + -h|--help) echo -e "$HELP" ; exit 0 +esac + +# Variables and functions +MENUS_LIBDIR='/usr/share/archcraft/openbox/menulib' +if ! . "$MENUS_LIBDIR/archcraft.cfg" 2> /dev/null; then + echo "Error: Failed to locate archcraft.cfg in $MENUS_LIBDIR" >&2 + exit 1 +fi + +if ! type "$KBSCRIPT" &>/dev/null; then + menuStart + menuSeparator "$KBSCRIPT is not available. Try installing archlabs-pipemenus." + menuEnd + exit 1 +fi + +if [[ $1 = '--rcedit' ]]; then + NOW=$(date +"%Y%m%d-%H%M") + RCBKP="$RCPATH.$NOW" + cp "$RCPATH" "$RCBKP" + if hash exo-open &>/dev/null; then + exo-open "$RCPATH" + else + geany "$RCPATH" + fi + exit 0 +fi + +if [[ $1 = '--keybinds' ]]; then + "$KBSCRIPT" > /dev/null + menuStart + menuSeparator "Openbox window commands" + while read -r a b c; do + if [[ "$a" = "o" ]]; then + curItem=$(printf "%-20s %s" "$b" "$c") + menuItem "$curItem" "echo >/dev/null 2>&1" + fi + done < "$KBTEXT" + + menuSeparator + menuSeparator "Run commands" + while read -r a b c; do + if [[ "$a" = "x" ]]; then + curItem=$(printf "%-20s %s" "$b" "$c") + menuItem "$curItem" "$c" + fi + done < "$KBTEXT" + menuEnd + exit 0 +fi + +menuStart + menuItem "Backup and Edit rc.xml" "$KBSCRIPTDIR/ac-kb-pipemenu --rcedit" + menuSeparator + menuItem "Display Keybinds in window" "$KBSCRIPTDIR/ac-kb --gui" + echo ' ' +menuEnd + +exit 0 diff --git a/files/pipemenus/ac-ob-menu b/files/pipemenus/ac-ob-menu new file mode 100755 index 0000000..ef8c6fd --- /dev/null +++ b/files/pipemenus/ac-ob-menu @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Openbox Pipemenu to change openbox menu style + +# Variables and functions +MENUS_LIBDIR='/usr/share/archcraft/openbox/menulib' +if ! . "$MENUS_LIBDIR/archcraft.cfg" 2> /dev/null; then + echo "Error: Failed to locate archcraft.cfg in $MENUS_LIBDIR" >&2 + exit 1 +fi + +config="$HOME/.config/openbox/rc.xml" +namespace="http://openbox.org/3.4/rc" + +# Change menu file & reload OB +ob_menu() { + xmlstarlet ed -L -N a="$namespace" -u '/a:openbox_config/a:menu/a:file' -v "$1" "$config" + openbox --reconfigure +} + +if [[ "$1" ]]; then + ob_menu "$1" +fi + +menuStart +menuItem 'Simple' "$0 menu-simple.xml" +menuItem 'Iconic' "$0 menu-icons.xml" +menuItem 'Glyphs' "$0 menu-glyphs.xml" +menuItem 'Minimal' "$0 menu-minimal.xml" +menuEnd diff --git a/files/pipemenus/ac-panel b/files/pipemenus/ac-panel new file mode 100755 index 0000000..de4f780 --- /dev/null +++ b/files/pipemenus/ac-panel @@ -0,0 +1,86 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Openbox Pipemenu to change panel/bar + +# Variables and functions +MENUS_LIBDIR='/usr/share/archcraft/openbox/menulib' +if ! . "$MENUS_LIBDIR/archcraft.cfg" 2> /dev/null; then + echo "Error: Failed to locate archcraft.cfg in $MENUS_LIBDIR" >&2 + exit 1 +fi + +# Dir and Files +DIR="$HOME/.config/openbox/themes" +CPANEL="$DIR/.panel" + +# Create file if it doesn't exist +create_file () { + if [[ ! -e "$CPANEL" ]]; then + touch ${CPANEL} + fi +} +create_file + +# Check which bar is running +check_bar () { + if [[ `pidof polybar` && `pidof tint2` ]]; then + BAR='Both' + elif [[ `pidof polybar` ]]; then + BAR='Polybar' + elif [[ `pidof tint2` ]]; then + BAR='Tint2' + else + BAR='None' + fi +} +check_bar + +# Change bar/panel +change_bar () { + if [[ "$1" == 'tint2' ]]; then + pkill polybar + sleep 1 + bash "$DIR"/tint2.sh + echo 'tint2' > ${CPANEL} + elif [[ "$1" == 'polybar' ]]; then + pkill tint2 + bash "$DIR"/polybar.sh + echo 'polybar' > ${CPANEL} + fi +} + +# Execute accordingly +if [[ "$1" == '--polybar' ]]; then + change_bar 'polybar' +elif [[ "$1" == '--tint2' ]]; then + change_bar 'tint2' +elif [[ "$1" == '--pb' ]]; then + bash "$DIR"/polybar.sh +elif [[ "$1" == '--t2' ]]; then + bash "$DIR"/tint2.sh +fi + +# Generate menu +gen_menu () { + menuStart + menuSeparator "Current Bar : $BAR" + + # Change/Set Panel + if [[ "$BAR" = 'Polybar' ]]; then + menuItem "Use Tint2 as your panel/taskbar" "$0 --tint2" + elif [[ "$BAR" = 'Tint2' ]]; then + menuItem "Use Polybar as your statusbar" "$0 --polybar" + elif [[ "$BAR" = 'None' ]]; then + menuItem "Launch Polybar" "$0 --pb" + menuItem "Launch Tint2" "$0 --t2" + elif [[ "$BAR" = 'Both' ]]; then + menuItem "Kill Polybar" "pkill polybar" + menuItem "Kill Tint2" "pkill tint2" + fi + + menuEnd +} + +{ gen_menu; exit 0; } diff --git a/files/pipemenus/ac-places b/files/pipemenus/ac-places new file mode 100755 index 0000000..b450c50 --- /dev/null +++ b/files/pipemenus/ac-places @@ -0,0 +1,150 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Openbox Pipemenu for places + +readonly terminal=alacritty +readonly text_editor=geany +readonly open_folder_cmd=thunar +readonly default_open_cmd=exo-open +readonly recent_script=/usr/share/archcraft/openbox/pipemenus/ac-recent-files + +open_file() { + if hash "$default_open_cmd" &>/dev/null; then + exec "$default_open_cmd" "$1" + elif hash $text_editor &>/dev/null; then + exec "$text_editor" "$1" + elif hash $terminal &>/dev/null; then + ($terminal -e "$EDITOR $1") &>/dev/null & + else + echo "$0 : failed to open $2" ; exit 1 + fi +} + +readonly shown_dotfiles=".config .gitconfig .icons .local .mpd .ncmpcpp .oh-my-zsh .themes .vim .vimrc .bashrc .zshrc .xinitrc .xprofile .xsessionrc" +readonly HELP=' +al-places-pipemenu an Openbox Pipe Menu for showing a directory tree +It should normally be called from an openbox menu. + +Usage: + al-places-pipemenu [options] [directory tree root] + +Options: + -h,--help show this message + --recent incorporate a "recent files" submenu + --open open a file with configured default application + (in this case the script will not output a menu) + + If a directory tree root is not specified, $HOME will be used. + +Configuration: + /usr/bin/al-places-pipemenu may be edited directly for system-wide changes, + or copied to ~/bin and edited there for per-user changes. + +Editable variables and functions, at the top of the file: + recent_script path to a script outputting an openbox pipemenu + open_folder_cmd command to open folders - any file manager + default_open_cmd default command to open files + text_editor command to open text files + open_file() open files, using commands above, or alternatives + shown_dotfiles list of dotfiles to display (they are hidden by default) + + By default, this script will display directories separately, before files. + To change this behaviour, see NOTE1, NOTE2 and NOTE3 near end of file. +' + + +case $1 in + -h|--help) echo "$HELP" ; exit 0 ;; + --open) open_file "$2" ;; + --recent) + shift + output='' + if [[ -x $recent_script ]]; then + output="$output + + " + else + echo "$0 : cannot find executable script $recent_script" >&2 + fi + ;; + *) output='' +esac + +path=${1:-$HOME} +path=${path%/} + +[[ -d $path ]] || { echo "$0 : $path is not a directory" >&2 ; exit 1 ; } + +# only escape if string needs it +case $path in + *\&*|*\<*|*\>*|*\"*|*\'*) pathe=$(sed "s/\&/\&/g;s//\>/g;s/\"/\"/g;s/'/\'/g;" <<<"$path") ;; + *) pathe=$path +esac +case $pathe in + *\&apos\;*) pathe_apos=$(sed 's/\'/\'\"\'\"\'/g;' <<<"$pathe") ;; + *) pathe_apos=$pathe +esac + +output="$output + + + + '$open_folder_cmd' '$pathe_apos' + + + " + +[[ "$path" == "$HOME" ]] && extra_entries="$shown_dotfiles" + +for i in $path/* $extra_entries; do + + [[ ! -e $i ]] && continue + shortname=${i##*/} + + case $shortname in + *\&*|*\<*|*\>*|*\"*|*\'*) shortnamee=$(sed "s/\&/\&/g;s//\>/g;s/\"/\"/g;s/'/\'/g;" <<<"$shortname") ;; + *) shortnamee=$shortname + esac + case $shortnamee in + *\&apos\;*) shortnamee_apos=$(sed 's/\'/\'\"\'\"\'/g;' <<<"$shortnamee") ;; + *) shortnamee_apos=$shortnamee + esac + case $shortnamee in + *_*) shortnamee_label=$(sed 's/_/__/g;' <<<"$shortnamee") ;; + *) shortnamee_label=$shortnamee + esac + + # NOTE1: If you want directories and files listed together + # change directories_menu="$directories_menu to: files_menu="$files_menu + if [[ -d $i ]]; then + directories_menu="$directories_menu + " + else + files_menu="$files_menu + + + '$0' --open '${pathe_apos}/${shortnamee_apos}' + + " + fi +done + +# NOTE2: uncomment these 2 lines if you want "Directories" label +# output="$output +# " +[ -n "$directories_menu" ] && { output="${output}${directories_menu}"; } + +# NOTE3: uncomment these 2 lines if you want "Files" label +# output="$output +# " +[ -n "$files_menu" ] && { output="${output}${files_menu}"; } + +output="${output} + +" + +printf '%s' "$output" + +exit 0 diff --git a/files/pipemenus/ac-powermenu b/files/pipemenus/ac-powermenu new file mode 100755 index 0000000..24e3142 --- /dev/null +++ b/files/pipemenus/ac-powermenu @@ -0,0 +1,65 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2023 Aditya Shakya +## +## Commands Executed By Openbox Powermenu + +## Rofi ############################################# +# Theme +DIR="$HOME/.config/openbox/themes" +CTHEME="`cat $DIR/.current`" +RASI="$DIR/$CTHEME/rofi/confirm.rasi" + +# Layout +cnflayout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2` +if [[ "$cnflayout" == 'NO' ]]; then + yes=' Yes' + no=' No' +else + yes='' + no='' +fi + +# Confirmation CMD +confirm_cmd() { + rofi -dmenu \ + -p 'Confirmation' \ + -mesg 'Are you Sure?' \ + -theme ${RASI} +} + +# Ask for confirmation +confirm_exit() { + echo -e "$yes\n$no" | confirm_cmd +} + +# Confirm and execute +confirm_run () { + selected="$(confirm_exit)" + if [[ "$selected" == "$yes" ]]; then + ${1} && ${2} && ${3} + else + exit + fi +} + +## Options ############################################# +if [[ "$1" == '--logout' ]]; then + confirm_run 'openbox --exit' +elif [[ "$1" == '--suspend' ]]; then + confirm_run 'mpc -q pause' 'pulsemixer --mute' 'betterlockscreen --suspend' +elif [[ "$1" == '--reboot' ]]; then + confirm_run 'systemctl reboot' +elif [[ "$1" == '--shutdown' ]]; then + confirm_run 'systemctl poweroff' + +## Help Menu ############################################# +else +echo " +Powermenu For Openbox Menu +Developed By - Aditya Shakya (@adi1090x) + +Available options: +--logout --suspend --reboot --shutdown +" +fi diff --git a/files/pipemenus/ac-randr b/files/pipemenus/ac-randr new file mode 100755 index 0000000..b6381e3 --- /dev/null +++ b/files/pipemenus/ac-randr @@ -0,0 +1,247 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +## Copyright (C) 2020-2023 Aditya Shakya + +"""A small utility to make xrandr adjustments from an OpenBox menu. + +To install, put this file somewhere and make sure it is executable. + +Edit your $HOME/.config/openbox/menu-