The Linux-Auto-Customizer project is a bash framework to automate the installation and uninstallation of a batch of preset installations in a bash environment.
Explore the docs »
View Demo · Report Bug · Request Feature
Table of Contents
Customizer is a software to automatize installations and customizations in a bash environment. It is purely written in bash and already contains more than 200 pre-coded automatic installations ready to be installed.
These installations include programming languages, IDEs, text editors, media players, games, file templates, wallpapers, environmental aliases, environmental functions, terminal customizations...
Installations in the customizer are:
- Cleaner: Temporal files are taken care after the installation.
- Faster: Installations are automated, so you do not need to waste time searching, downloading or decompressing files.
- Fancier: Most installations include specific customizations.
- Completely unattended: Installations never stop to require information while they are being installed.
- Multi-platform: If the machine has BASH running, the core functionalities of the project will work.
- Flexible: Many behavioural arguments are available allowing extra flexibility on the installation of each feature such as verbosity, error tolerance, re-installation of features...
Major frameworks/libraries used to build this project:
To get a local copy up and running follow these simple example steps.
-
Install
git:- In Ubuntu / Debian systems you can do so by issuing the command
sudo apt install -y git. - In Fedora / Red Hat systems you can do so by issuing the command
sudo dnf install -y git. - In Windows you can install
gitby downloading and executing this file. - For other systems you will need to follow this instructions.
- In Ubuntu / Debian systems you can do so by issuing the command
-
Obtain the repository code:
- Clone the repository. With this option you can easily update your installation. Issue the command:
git clone https://github.com/AleixMT/Linux-Auto-Customizer
- Download a zip with the code from here. Decompress it anywhere in your computer. You can do so programmatically with these commands:
wget https://github.com/AleixMT/Linux-Auto-Customizer/archive/master.zip unzip master.zip
- Clone the repository. With this option you can easily update your installation. Issue the command:
You can install the main scripts in order to use them globally in your system and obtain autocompletion features for them.
- Get a terminal in the folder where you cloned or decompressed the repository.
- Use
sudo bash src/core/install.sh customizerin order to install thecustomizer-installandcustomizer-uninstallcommands.
There are two scripts that you can use:
./src/core/install.shto install installations../src/core/uninstall.shto uninstall installations.
But if you installed the customizer installation you will have available the commands customizer-install and customizer-uninstall, which are links to the scripts ./src/core/install.sh and ./src/core/uninstall.sh, respectively. These commands also have autocompletion features.
The commands customizer-install and customizer-uninstall have the same identical arguments, but behave in the opposite way:
customizer-installwill install the installations selected by the arguments.customizer-uninstallwill uninstall the installations selected by the arguments.
For example, to install an installation we can issue the command:
customizer-install NAME_OF_THE_FEATUREEquivalently, to uninstall an installation we can issue the command:
customizer-uninstall NAME_OF_THE_FEATURESee FEATURES.md to see a full list of all the already pre-coded installations. You can also issue this command to show the installations available:
customizer-install --commandsYou can add many installations in one run. For example, to install the installation pycharm and the installation sublime you can use:
customizer-install pycharm changebgTo install a single installation without privileges you can use:
customizer-install NAME_OF_THE_FEATURETo install a single feature with privileges you can use:
sudo customizer-install NAME_OF_THE_FEATURE- Some features need normal privileges, other features need special privileges and there are features where the privileges do not matter (most of them).
- We always recommend installing the features without privileges (without
sudo). - If you need to add
sudoto get special privileges, do not worry, the customizer will complain in order for you to add it.
There are arguments used to change the behaviour of the project when installing installations called behavioural arguments. This change in behaviour includes verbosity, error tolerance, skipping already installed features and many others. The change in behaviour is conserved in a single execution, and is propagated to the installations following the behavioural argument.
For example, the argument -v sets the verbosity level to maximum, -q sets it to default and -Q sets it to minimum (no output).
If you issue the command:
customizer-install -v java ideac -Q mvnThe installations java and ideac will be installed showing its full output, but the installation mvn will be installed with no output shown.
Another interesting behavioural argument is -o. This argument forces the installation even if the installations are already installed. This argument is useful to update or reinstall installations, since the customizer refuses to do so without this flag.
You can also combine behavioural arguments and multiple features:
customizer-install changebg -v visual_studio -o clion -q android_studio The previous command will install the installation changebg with defaults, visual_studio with full verbose mode, clion with full verbose mode and in overwrite installation mode and finally android_studio will be installed in overwrite installation mode and with default verbose mode.
For more examples, please refer to the Wiki.
- Update documentations.
- Testing of installations.
- Build final endpoint
customizer. - Transform feature data into JSONs.
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. Take a look at CONTRIBUTING.md for a small guide on how to present contributions.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Do your changes in the project
- Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request here
Distributed under the GNU GPL v3 License. See LICENSE here for more information.
Aleix Mariné-Tena - @viejo_senil - aleix.marine@estudiants.urv.cat
Project Link - https://github.com/AleixMT/Linux-Auto-Customizer
Resources that we used to make this project possible:
- Choose an Open Source License
- GitHub Emoji Cheat Sheet
- Img Shields
- GitHub Pages
- Font Awesome
- React Icons
- Google Bash Style Guide
- Script Server
- Aleix Mariné-Tena - AleixMT aleix.marine@estudiants.urv.cat
- Axel Fernandez - Axlfc axelfernandezcurros@gmail.com
Donations are greatly appreciated. If each person using the customizer donated 1 $ we could maintain the project actively.
You can make donations to the team through:
- Cardano: addr1v92psazv75ycy3h9kmnpe55swx3f8y027ur42lnzvzaz5cqve45h4
- Ethereum: 0x23CD3287E100e485B85d8BAE1676ad9068F909a5
- Bitcoin: 342XF1x7wYU9R1VdKhVFAXsBvcYsUdemka





