This repository contains a module bootstrap system for setting up a new Arch Linux installation with my preferred configurations and tools. The script architecture is divided into individual components for better maintainability and flexibility.
Before running this or any bootstrap script, you should:
- Read and understand the scripts: Take time to review all scripts in the
scripts/
directory to understand what changes they will make to your system - Verify the source: Ensure you trust the source of all scripts
- Audit the packages: Review the list of packages that will be installed in
core_packages.sh
andaur_setup.sh
- Backup your data: While these scripts shouldn't affect existing data, it's always good practice to backup before major system changes
dotfiles/
├── bootstrap.sh # Main orchestration script
└── scripts/
├── aur_setup.sh # AUR helper and AUR package installation
├── core_packages.sh # Core package installation
├── docker_setup.sh # Configure Docker service for non-root users
├── dotfiles.sh # Personal configurations
├── git_config.sh # Git configuration
├── node_setup.sh # Install NVM and Node LTS
├── rust_setup.sh # Install the Rust Stable Toolchain
├── shell_setup.sh # Configure ZSH
├── steam_setup.sh # Setup Steam for Gaming
├── system_update.sh # System update functionality
└── utils.sh # Utility functions and common variables
- Orchestrates the execution of all other scripts
- Maintains execution order
- Provides timing information
- Handles errors and script validation
Installs and configures AUR helper (paru) and AUR packages:
- appimagelauncher
- brother-hll2315dw
- google-chrome
- insomnia-bin
- railwayapp-cli
- slack-desktop
- visual-studio-code-bin
- zoom
Installs core packages via pacman:
- cmake
- dbeaver
- discord
- docker
- docker-buildx
- docker-compose
- ducker
- fastfetch
- flameshot
- gnome-disk-utility
- gnucash
- go
- godot
- lazygit
- libreoffice-still
- neovim
- obsidian
- onefetch
- rustup
- stow
- thunderbird
- Configures Docker permissions
- Sets up Docker service
- Adds user to Docker group
- Clones this repository
- Uses GNU Stow to manage dotfiles
- Handles backup of existing configurations
- Currently manages:
- nvim
- Sets the default git branch to master
- Configures basic git settings
- Installs NVM (Node Version Manager)
- Installs latest Node.js
- Configures Node.js environment
- Installs Rust stable toolchain
- Configures Rust environment
- Configures zsh as default shell
- Sets up PATH and environment variables
- Installs Steam with user intervention for driver selection
- Updates the system packages using pacman
- Contains common utility functions
- Defines color variables for output
- Provides package installation helpers
Before running these scripts, ensure you have:
- A fresh Arch Linux installation
- An internet connection
- Sudo privileges
- Basic understanding of Arch Linux and shell scripts
- Clone the Repository
git clone https://github.com/vinisadev/dotfiles.git
cd dotfiles
- Make Scripts Executable
chmod +x bootstrap.sh
chmod +x scripts/*.sh
- Review the Scripts (IMPORTANT)
# Review bootstrap script
less bootstrap.sh
# Review individual scripts
less scripts/*.sh
- Run the Main Script
./bootstrap.sh
The script includes timing information and will display the total execution time upon completion. The duration can vary based on:
- Your internet connection speed
- System specifications
- Number of packages being installed
- AUR package compilation time
- Fork this repository
- Create a feature branch
- Submit a Pull Request with your improvements
This project is open source and available under the MIT License.
If you discover any security-related issues, please email vinfehring@gmail.com instead of using the issue tracker.
- These scripts are specifically designed for Arch Linux
- Some manual configuration may still be required after running the scripts
- Always check the scripts for updates before running them on a new system
- Consider creating a backup or snapshot before running any scripts