- autojump (Ubuntu 20.10 or earlier)
- zoxide (Ubuntu 21.04 or later)
- neofetch
- zsh
- zsh-syntax-highlighting
- zsh-autosuggestions
- cargo (Ubuntu 20.04 or earlier)
- exa (Ubuntu 20.10 or later)
- bat
(These are NOT needed for arch users - There are already arch packages for them)
- powerlevel10k
- MesloLGS NF (Powerlevel10k recommended font)
- exa (Ubuntu 20.04 or earlier)
# ---
# Ubuntu 20.04 or earlier
sudo apt install cargo
cargo install exa
# Ubuntu 20.10 or later
sudo apt install exa
# ---
# ---
# Ubuntu 20.10 or earlier
sudo apt install autojump
# Ubuntu 21.04 or later
sudo apt install zoxide
# ---
sudo apt install neofetch bat zsh zsh-syntax-highlighting zsh-autosuggestions
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
For the MesloLGS NF
font, it's probably better to just follow the instructions from the powerlevel10k README.
(these commands use paru
to install AUR packages)
sudo pacman -S zoxide neofetch exa bat zsh zsh-syntax-highlighting zsh-autosuggestions zsh-theme-powerlevel10k
paru -S ttf-meslo-nerd-font-powerlevel10k
chsh $USER -s /bin/zsh
This method requires stow
for creating symlinks and ed
for custom .bashrc
support.
Note: The automatic scripts for installing dependencies also install these packages.
sudo apt install stow ed
sudo pacman -S --needed stow ed
git clone https://github.com/algono/dotfiles ~/dotfiles
if [ -f ~/.bashrc ]; then mv -f ~/.bashrc ~/dotfiles/bash
elif [ -f /etc/skel/.bashrc ]; then cp -f /etc/skel/.bashrc ~/dotfiles/bash
elif uname -r | grep -iq manjaro; then cp ~/dotfiles/.bash-presets/.bashrc-manjaro ~/dotfiles/bash/.bashrc
else cp ~/dotfiles/.bash-presets/.bashrc-wsl ~/dotfiles/bash/.bashrc
fi
[ -f ~/.zshrc ] && mv ~/.zshrc ~/.zshrc.bak
ed ~/dotfiles/bash/.bashrc < ~/dotfiles/.patches/bashrc-patch.ed
find ~/dotfiles/* -maxdepth 1 -name ".*" -o -type d -prune -printf "%f\n" | xargs /usr/bin/stow -d ~/dotfiles -t ~
Clone repo in dotfiles directory
git clone https://github.com/algono/dotfiles ~/dotfiles
If there is a custom .bashrc (either in the user's personal folder or in the system's skel folder), use it as a base. As a fallback, if the system is detected as manjaro, use the default manjaro .bashrc, and if it wasn't use the default WSL one
if [ -f ~/.bashrc ]; then mv -f ~/.bashrc ~/dotfiles/bash
elif [ -f /etc/skel/.bashrc ]; then cp -f /etc/skel/.bashrc ~/dotfiles/bash
elif uname -r | grep -iq manjaro; then cp ~/dotfiles/bash/.bashrc-manjaro ~/dotfiles/bash/.bashrc
else cp ~/dotfiles/bash/.bashrc-wsl ~/dotfiles/bash/.bashrc
fi
If there is a .zshrc file in the home folder, rename it (stow would fail if it finds a file there)
[ -f ~/.zshrc ] && mv ~/.zshrc ~/.zshrc.bak
Use the ed command to apply the relevant changes to the custom .bashrc file (Note: You should backup
~/.bashrc
first if you have that file, as this method has not been extensively tested and it could break it)
ed ~/dotfiles/bash/.bashrc < ~/dotfiles/.patches/bashrc.patch.ed
Create symlinks for our dotfiles into the home directory (this command matches all non-hidden directories inside the 'dotfiles' folder)
find ~/dotfiles/* -maxdepth 1 -name ".*" -o -type d -prune -printf "%f\n" | xargs /usr/bin/stow -d ~/dotfiles -t ~
If you already have some of the files from this repo, the last command will warn you and won't run.
Stow
does not have any option to overwrite files, so you can either make backups of these files (example: mv .dotfile .dotfile.bak
), or just delete them, and then re-run the last command.