Bootstrap your Ubuntu in a single command!
This dotfiles repository is currently aimed for Ubuntu on WSL, Ubuntu Server, and Ubuntu Desktop, tested against versions 20.04, 22.04 and 24.04. See how to get started with WSL here.
It's also suitable for use in GitHub Codespaces, Gitpod, VS Code Remote - Containers, or even Linux distributions that are not Ubuntu, through the minimum mode.
Managed with chezmoi
, a great dotfiles manager.
You can use the convenience script to install the dotfiles on any machine with a single command. Simply run the following command in your terminal:
sh -c "$(wget -qO- https://git.io/felipecrs-dotfiles)"
💡 We use
wget
here because it comes preinstalled with most Ubuntu versions. But you can also usecurl
:sh -c "$(curl -fsSL https://git.io/felipecrs-dotfiles)"
dotfiles-installation-demo.mp4
The installation will ask if you want a minimum mode installation. The minimum mode only installs the needed dotfiles for the command prompt and is compatible with more distributions other than Ubuntu.
It will be enabled by default when running in a Dev Container or in distributions other than Ubuntu. For example, I use it in order to bring my environment to the Home Assistant VS Code Add-on.
This dotfiles uses the ZSH theme Powerlevel10k, so it requires you to install a font on your host machine with support for the Nerd Fonts glyphs. I recommend the FiraCode Nerd Font Mono
.
For WSL and Ubuntu Desktop, the dotfiles installation will automatically take care of installing the font and set it up for you in VS Code, Windows Terminal (for WSL), and GNOME Terminal (for Ubuntu Desktop).
On other systems or terminal emulators, you will need to configure it manually. Here are some tips:
- Download it by clicking here.
- Open it and click in Install.
- Restart any applications that you want to load the font into.
-
On VS Code, press Ctrl+, to open the settings.
-
Search for "Terminal Font Family", and write
FiraCode Nerd Font Mono
in the entry named Terminal › Integrated: Font Family. Like below:
-
On Windows Terminal, press Ctrl+, to open the settings.
-
Go to Profiles -> Defaults in the left panel. Then, go to Additional settings -> Appearance.
-
At Text -> Font face, select FiraCode Nerd Font Mono. Like below:
If you followed the steps above so far, you already finished installing the dotfiles. Have fun!
The below information is more for reference purposes.
The getting started step used the convenience script to install this dotfiles. There are some extra options that you can use to tweak the installation if you need.
It supports some environment variables:
DOTFILES_REPO_HOST
: Defaults tohttps://github.com
.DOTFILES_USER
: Defaults tofelipecrs
.DOTFILES_BRANCH
: Defaults tomaster
.
For example, you can use it to clone and install the dotfiles repository at the beta
branch with:
DOTFILES_BRANCH=beta sh -c "$(wget -qO- https://git.io/felipecrs-dotfiles)"
If you prefer not to use the convenience script to install the dotfiles, you can also do it manually:
git clone https://github.com/felipecrs/dotfiles "$HOME/.dotfiles"
"$HOME/.dotfiles/install.sh"
If you are forking this repository, don't forget to change the following places:
README.md
- Replace all occurrences of
https://git.io/felipecrs-dotfiles
withhttps://raw.githubusercontent.com/<your-username>/dotfiles/HEAD/scripts/install_dotfiles.sh
- Replace all occurrences of
scripts/install_dotfiles.sh
- Replace all occurrences of
felipecrs
with<your-username>
- Replace all occurrences of
home/.chezmoi.yaml.tmpl
- Change the name and email to yours.
Where <your-username>
is your GitHub username.
There are some scripts here to help you automate tricky activities when setting up your machine.
If you already have this dotfiles installed, you can use these scripts right away. Or, if you want to run it without installing the dotfiles, you can do something like:
bash -c "$(curl -fsSL "https://raw.githubusercontent.com/felipecrs/dotfiles/master/scripts/<script-name>")" -- <arguments>
Just replace <script-name>
and <arguments>
with the desired values. Example:
bash -c "$(curl -fsSL "https://raw.githubusercontent.com/felipecrs/dotfiles/master/scripts/create_alternative_chrome_shortcut.sh")" -- --force
$ scripts/create_alternative_chrome_shortcut.sh --help
Usage: scripts/create_alternative_chrome_shortcut.sh [-f|--(no-)force] [-h|--help] [<display-name>]
<display-name>: The name which will be displayed in the app launcher (default: 'Alternative')
-f, --force, --no-force: Do not ask for confirmation (off by default)
-h, --help: Prints help
This script creates a new shortcut for Google Chrome which opens using a
different user data directory. This lets you have different icons for different
instances of Google Chrome.
scripts/create_alternative_chrome_shortcut.sh Personal