All instructions depend on git, you should install it before git cloneing:
## Fedora
sudo dnf install git
## Ubuntu
sudo apt install git
## macOS
xcode-select --install
### Optionally, you can install the latest git using Homebrew
#brew install git
## HTTPS protocol
git clone --depth 1 --recursive https:://github.com/Yestercafe/.dotfiles.git $HOME/.dotfiles
## SSH protocol
git clone --depth 1 --recursive git@github.com:Yestercafe/.dotfiles.git $HOME/.dotfiles
Firstly, define path DOTFILES
:
DOTFILES=$HOME/.dotfiles
mv $HOME/.bashrc $HOME/.bashrc.bak
ln -sf $DOTFILES/.bashrc $HOME/.bashrc
Depend on zinit
and thefuck
, install them firstly.
## zinit
if ! command -v zinit > /dev/null 2>&1; then
sh -c "$(curl -fsSL https://git.io/zinit-install)"
fi
## install thefuck, depend on Python3 and pip
python3 -m pip install thefuck # need `sudo` possibly , or use
#python3 -m pip install thefuck --user # directly
Then link zsh configs:
mv $HOME/.zshenv $HOME/.zshenv.bak
mv $HOME/.zshrc $HOME/.zshrc.bak
ln -sf $DOTFILES/.zshrc $HOME/.zshrc
ln -sf $DOTFILES/.zshenv $HOME/.zshenv
If this is a macOS machine, you can use this additional config for macOS optionally:
mv $HOME/.zshrc.local $HOME/.zshrc.local.bak
ln -sf $DOTFILES/.zshrc.macos.local $HOME/.zshrc.local
\bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/Homebrew/install@HEAD/install.sh)"
Depend on TPM:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Then:
ln -sf $DOTFILES/.tmux.conf $HOME/.tmux.conf
https://github.com/kamiyaa/joshuto
My Emacs config is called zero.emacs:
mv $HOME/.emacs $HOME/.emacs.bak
mv $HOME/.emacs.d $HOME/.emacs.d.bak
## HTTPS protocol
git clone https://github.com/Yestercafe/zero.emacs.git $HOME/.emacs.d
## SSH protocol
git clone git://github.com:Yestercafe/zero.emacs.git $HOME/.emacs.d
mv $HOME/.config/nvim $HOME/.config/nvim.bak
mkdir -p $HOME/.config
## HTTPS protocol
git clone https://github.com/Yestercafe/nvim.git $HOME/.config/nvim
## SSH protocol
git clone git://github.com:Yestercafe/nvim.git $HOME/.config/nvim
This Vim config is deprecated, should use NeoVim config instead.
mv $HOME/.vim $HOME/.vim.bak
mv $HOME/.vimrc $HOME/.vimrc.bak
## HTTPS protocol
git clone --depth 1 --recursive https://github.com/Yestercafe/vim.git $HOME/.vim
## SSH protocol
git clone --depth 1 --recursive git@github.com/Yestercafe/vim.git $HOME/.vim
If you wanna use IdeaVim config, you should clone the deprecated Vim config firstly. And then:
mv $HOME/.ideavimrc $HOME/.ideavimrc.bak
ln -sf $DOTFILES/.ideavimrc $HOME/.ideavimrc
mkdir -p $HOME/.config/helix
mv $HOME/.config/helix/config.toml $HOME/.config/helix/config.toml.bak
ln -sf $DOTFILES/helix.toml $HOME/.config/helix/config.toml
https://github.com/alacritty/alacritty
mkdir -p $HOME/.config/alacritty
mv $HOME/.config/alacritty/alacritty.yml $HOME/.config/alacritty/alacritty.yml.bak
ln -sf $DOTFILES/alacritty.yml $HOME/.config/alacritty/alacritty.yml
https://sw.kovidgoyal.net/kitty/
mkdir -p $HOME/.config/kitty
mv $HOME/.config/kitty/kitty.conf $HOME/.config/kitty/kitty.conf.bak
ln -sf $DOTFILES/kitty.conf $HOME/.config/kitty/kitty.conf
https://wezfurlong.org/wezterm/
mkdir -p $HOME/.config/wezterm
mv $HOME/.config/wezterm/wezterm.lua $HOME/.config/wezterm/wezterm.lua.bak
ln -sf $DOTFILES/wezterm.lua $HOME/.config/wezterm/wezterm.lua
ITERM_UTILITIES=(imgcat imgls it2api it2attention it2check it2copy it2dl it2getvar it2git it2setcolor it2setkeylabel it2tip it2ul it2universion it2profile)
for U in "${ITERM_UTILITIES[@]}"; do
echo "Downloading $U..."
curl -SsL "https://iterm2.com/utilities/$U" > "$DOTDIR/.iterm2/$U" && chmod +x "$DOTDIR/.iterm2/$U"
done
https://www.rust-lang.org/learn/get-started
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
https://www.haskell.org/ghcup/
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
mv $HOME/.condarc $HOME/.condarc.bak
ln -sf $DOTFILES/.condarc $HOME/.condarc
mv $HOME/.irbrc $HOME/.irbrc.bak
ln -sf $DOTFILES/.irbrc $HOME/.irbrc