This repository has my dotfiles and configuration files for various tools I use on Ubuntu. The commands in this README have been tested on a fresh installation of Ubuntu 24.04 and perform no destructive actions.
If you have already configured your system, ensure that you back up any existing configuration files before running any of the commands in this README.
For WSL2 users on Windows, I recommend using the Windows Terminal app from the Microsoft Store as it is has a great UI and is very customisable.
For Linux and macOS users, I recommend using KiTTY.
Note that KiTTY only works on Linux and macOS, and the Windows Terminal does not support images in the terminal.
Before installing any packages, ensure that your system is up to date.
sudo apt update -y
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt clean -yI like using the Homebrew package manager as it organises packages and their dependencies in a single directory.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Make sure to install gcc and build-essentials as it's required by
many packages. I've also included node as we'll need it for some
packages later.
sudo apt install build-essential
brew install gcc
brew postinstall gcc
brew install nodeSetup the Zsh shell and install some modern alternatives for common tools.
brew install zsh tmux bat eza zoxide neovim lua luarocks
brew install fd fzf ripgrep thefuck zip unzip git gh wget
brew install cowsay lolcat
npm i -g safe-rmSet the default shell to Zsh and add it to the list of shells:
command -v zsh | sudo tee -a /etc/shells
sudo chsh -s "$(command -v zsh)" "${USER}"- Zsh (Source)
- tmux (Source)
- bat (Source)
- eza (Source)
- zoxide (Source)
- Neovim (Source)
- lua (Source)
- LuaRocks (Source)
- fd (Source)
- fzf (Source)
- ripgrep (Source)
- thefuck (Source)
- zip
- unzip
- Git (Source)
- GitHub CLI (Source)
I use Rust and Python and have already configured my .zshrc file.
# Rustup (Rust)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Miniconda (Python)
mkdir -p ~/miniconda3
# can also replace MacOSX-arm64 with Linux-x86_64
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.shInstall Oh My Zsh and Starship, along with some useful plugins:
# Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --keep-zshrc
# Syntax highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# Auto-suggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# Starship
curl -sS https://starship.rs/install.sh | sh
# Remove default zshrc
rm .zshrc .zshrc.pre-oh-my-zshClone this repository using HTTP and copy all my configuration files:
# Work in a different directory to be safe
mkdir -p ~/downloads/
cd ~/downloads/
git clone https://www.github.com/Tarang74/.dotfiles
rm -rf .dotfiles/.git/
cp -r .dotfiles/.config/ ~/.config/
cp -r .dotfiles/.safe-rm/ ~/.safe-rm/
cp -r .dotfiles/.ssh/ ~/.ssh/
cp -r .dotfiles/.git* ~/
cp -r .dotfiles/.tmux.conf ~/
cp -r .dotfiles/.vimrc ~/
cp -r .dotfiles/.zshrc ~/
rm -rf .dotfiles/
cd ..-
Catppuccin for bat:
mkdir -p "$(bat --config-dir)/themes" wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Mocha.tmTheme # Rebuild cache bat cache --build
-
Catppuccin for tmux:
mkdir -p ~/.config/tmux/plugins/catppuccin git clone -b v2.1.3 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
-
Catppuccin for Neovim can be installed through Lazy.
-
Catppuccin for starship has already been included in this repository.