This repository contains various setup scripts and configurations in order to streamline the setup process for a new MacOS environment. Understanding the structure and purpose of each file will help you customize your setup to fit your needs.
Just running the setup.sh
script will execute all the necessary setup steps for your MacOS environment, id est:
./setup.sh
The codebase is organized into the following structure:
.
├── .dotfiles
│ ├── .dotter
│ │ └── global.toml
│ ├── bin
│ ├── brewfile
│ └── starship
├── setup.brewfile.sh
├── setup.macos.sh
└── setup.sh
This structure has two main components:
- The global setup scripts (
setup.brewfile.sh
,setup.macos.sh
, andsetup.sh
) that automate the installation and configuration of various tools and settings, and - The
.dotfiles
directory which contains configuration files and scripts for the operating system and various tools.
The setup scripts are designed to be run without having to modify them, allowing for a consistent setup experience across different machines. The scripts are short, written in plain bash
and include comments to explain their purpose and functionality.
The .dotfiles
directory, however, is meant to be customized by the user. It contains configuration files for the operating system, various tools and applications, such as the terminal (see starship
) and brewfile
. These files can be edited to suit your preferences and needs.
The current setup uses Dotter
for managing a global TOML
dotfiles configuration (see global.toml
). This file defines all (dot)files that will be copied or symbolically linked to their desired location(s), such that you can easily manage a setup across different machines without having to do most of the work manually. For more information on how to use Dotter
, please visit the Dotter Wiki.
There are several features and improvements for this project that might be interesting to implement in the (distant) future. Some of these include:
-
General improvements, such as:
- Update the configs to support multiple operating systems (e.g.,
Linux
,Windows
, etc.) - Adding support for more package managers (e.g.,
apt
,yum
, etc.) - Adding support for more tools and applications
- Update the configs to support multiple operating systems (e.g.,
-
Documentation improvements, such as:
- Adding examples and explanations in the README
- Explain that starship is used as the terminal prompt and how to customize it
- Explain that dotter supports a local configuration file (
local.toml
) - Adding more comments to the code
-
Setup scripts improvements, such as:
- Adding more options to the setup scripts (e.g.,
--dry-run
,--verbose
, etc.) - Making the setup scripts more robust and error-tolerant
- Adding more options to the setup scripts (e.g.,
This project is maintained, but not actively developed as it is a personal project that serves as a template for setting up my personal MacOS environment(s). If you have any questions or need assistance, feel free to open an issue / discussion. It would be awesome to see this project grow and evolve with contributions from the community.
If you would like to contribute to this project, please feel free to open a pull request. Contributions are welcome and appreciated! Before submitting a pull request, please ensure that your changes are well-documented and tested.
If there are people who would like to support me and/or this project, please consider starring the repository on GitHub
. This helps to raise awareness and encourages others to contribute as well.