# READ CAREFULLY
GENERAL REWRITE AND MERGING OF THIS REPO WITH ANOTHER PROJECT OF MINE SO PLEASE DO NOT CLONE THIS OR AT LEAST DO NOT EXECUTE ANY OF THE BASH SCRIPTS IN HERE YET.
Before changing permissions to any script read code carefully, for I'll take no responsability on any broken OS or hardware malfunction. Please notice that there are files that are named very similar with the difference of ARM and AMD, this also applies on the Repository automated script one's for ARM64 architecture and the other one for AMD64 and mainly for Arch Linux Based Systems, I'm 95% sure that Debian/Ubuntu systems will have no harm as well but will not hurt to actually read the scripts.
If by random chance you end up here and and have something to add or suggest it would be very well welcome.
This script assumes you follow the freedesktop.org standards and I mean that the $XDG
variables at least for Desktop, Documents, Pictures, Downlaods, config home, data home, state, and user bin and .bin are set. If not set you'll have a hard time with this and suggest to adapt accordingly to your needs or make your life easier and just set the environment variables on a fresh installed environment if you have time with your environment that's not an option and I discourage you to run this script o to adapt it, could end up having 2 $HOME
variables or worse case scenarios (been there, done that, not worth it.)
On any circumstance I'm qualified or consider myself an expert on coding/scriptinglogic/arrays/lists/etc , I'm learning at my own pace and this project is just to quickly fix a 3 hr waste of time on reinstalling the same things over and over again. I'll trie to continue to update as to code/write better scripts. Any suggestions email me, but will not make any changes directly or let no one else to be pushing or branching directly.
The original approach was to have a one script per linux platform (Debian based, RHEL based and of course Arch Linux, I know why the F######!!!??) to self install, configure and modify certain customizations. Why because I like Arch and its light weight plus it's easy maintainable environment, yes it breaks but if you pass and supress the urge to install every single git project you come across coming from a pentester's perspective Arch is actually the best. Debian because almost all single pentester tool and framework is made with the thought in mind to be debian compatible and install it from pkg manager but it's slow #AF!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!, and finally RHEL based because kernel virtualization is more advanced and faster on RHEL based distributions, why because the simple answer is that RHEL directly develop's a lot of unique futures only for RHEL based systems to the point the even networking between guest machines and hosts is about 5.5 times faster on a Fedora/Centos/Alma/RHEL/etc based system than a Debian/Arch based distro due to lack of acces to this modules, the #GTFO of RHEL based distros is #SELinux and it ability to suck the fun out of everything and give you the worst out and in context pkg issues, if you are on a RHEL bassed system and are struggling with anything that could be a text files to an NPM module, just DISABLE (NOT COMPLETELY!!!!!, just for the session, don't be a retard) SELinux for the session time being with:
$ sudo setenforce 0
# Check the change of SELinux status with
$ getenforce
# output should display permissive
When finish just rerun first command and substitute 0 for 1 and recheck the enforcing status and should output enforcing
, and I guarantee you that now your pkg/file/module/whatever will run smooth as a kitten on a silk robe.
So back on topic, Git and github for a none developer user it's kind of hard to understand the whole "how actualy code based stack's" actually work and how to manage them and every single write out there and YT-Video is just a glorified "I'm a developer and writting simple English/Whatever language (I'm mexican), could help you but I choose to give you the finger instead, using complicated lingo/coloquialism's that I know but you don't" . I love terminal based programs or "TUI's", and since 2 years ago I have not come across a complete full 1 video guide on "Creating a repository from the terminal from 0/scratch and at least push the README.md file from terminal", it's like choosing violence every single day instead of hugging baby kittens and pup's (if by any chance you are struggling with at least that I have another repository for my dotfiles with 3 or 4 different One Liner's that do that, check it out, don't even need to clone the project, it's on the README.md part, you can improve it, alias it or make a function out of it, anyway hope it help's you out). With that said, to this point you can imagine I'm self tought and obviously not that well, but I love Tiling Window Managers, bash and the terminal.
So BSPWM.... it's my go to on TWM's and this project is my way of auto setup for it. My first approach was simply to have 3 different git projects depending on the distro environment and just clone it to execute the installer/script to go from a fresh install to a full BSPWM setup, but while learning the git/github thing encounter lot's of issues with maintaining 3 different projects which actually did the same thing just different platform so on my head sounded so good to just erase 2 of them and and just combine the scripts so the installer script would detect the environment and run the adecuate pkg manager and system commands, but 4 months have past into that decision and I will change the self detection with just user based input, far did I know that environment detection could be so cumbersome, just detecting the graphics card, the brand and display size it's a hell out of regular expressions (THANKS a lot Neofetch project, they actually have a lot of One Liner's and functions that help me out on how to get a lot of system information), but as a noob and none developer for this time I will choose to be user input and hoping he/she/it/whatever has an nvidia card with DP output for a 4k 70 inch screen as monitor, and will just maintain the hope to not be very fast changing base packages per distro environment, I want to start other projects to self learn more and this has taken way to much time.