This repository contains my personal dotfiles and setup scripts for configuring a Linux (Ubuntu) development environment. It automates the installation of essential tools, custom configurations, and shell enhancements, including zsh and Oh My Zsh.
The goal of this repository is to provide a streamlined way to set up a new development environment with my preferred tools and configurations. The bootstrap.sh script handles the installation of dependencies, configuration files, and custom plugins.
- Installs essential system libraries for Debian-based systems.
- Installs and configures Homebrew for managing packages.
- Installs and sets up
zshas the default shell. - Installs Oh My Zsh and custom plugins.
- Copies
.zshrcand other configuration files to the appropriate locations. - Installs Python using
pyenvand sets the latest version as the default. - Installs additional tools and utilities via Homebrew (e.g.,
starship,fzf,poetry). - Configures the
starshipprompt and other customizations.
You might need to create an ssh key. Look here for how to do that.
Clone this repository to your preferred location (e.g., ~/.dotfiles) and run the bootstrap script:
git clone https://github.com/brianedelman/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
source bootstrap.shThe bootstrap.sh script will:
- Pull the latest changes from the repository.
- Install required tools and libraries.
- Configure
zshas the default shell. - Install and configure Python using
pyenv. - Set up custom plugins and configurations.
To update your dotfiles and reapply the configurations, navigate to the repository and run the bootstrap script again:
cd ~/.dotfiles
source bootstrap.sh- Shell Prompt: Configured using Starship. The configuration is stored in
starship.toml. - Custom Plugins: Includes custom
zshplugins located in theplugins/directory. - Python Management: Uses
uvfor managing Python versions and virtual environments. - Node Management: Uses
nvmfor managing node versions
The following tools are installed via the Brewfile:
- Development tools:
gcc,openssl,readline,sqlite3,zlib,tcl-tk@8 - Shell enhancements:
starship,fzf,ripgrep - Python tools:
pyenv,pyenv-virtualenv,poetry - Utilities:
jq,httpie,pgcli,tlrc,autojump,thefuck
-
Ensure the upstream remote exists:
git remote -vShould see the
originand theupstreamgit URLs. If not, add with:git remote add upstream https://<repo clone url> -
git fetch upstream -
git checkout main -
git rebase -i upstream/main -
git push origin main --force-with-lease
- This setup assumes you are running Linux (Ubuntu). Some steps may need to be adjusted for other operating systems.
- Also, need to install a Nerd Font to see all the cool icons.