install packages

sudo apt update && sudo apt upgrade -y
sudo apt install -y zsh git i3 feh scrot pavucontrol i3blocks tree curl htop picom 
sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev clang

install zsh and oh-my-zsh

<!-- sudo apt install zsh-autosuggestions zsh-syntax-highlighting -->
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

install nvim

https://github.com/neovim/neovim/releases/tag/v0.7.0
git clone https://github.com/YHRen/nvim_config

sudo apt install build-essential llvm xclip follow the instruction in nvim_config.

install i3

sudo apt install i3 feh scrot picom pavucontrol i3blocks tree

get configuration files.

https://github.com/YHRen/dotfiles

install alacritty

curl https://sh.rustup.rs -sSf | sh -s -- -y
source "$HOME/.cargo/env"
cargo install alacrity
mkdir -p ~/.config/alacritty
ln -s $HOME/github/yhren/CppMacros/alacritty.yml ~/.config/alacritty/alacritty.yml
mkdir -p ~/.local/share/fonts
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.2.2/FiraCode.zip && unzip FiraCode.zip -d ~/.local/share/fonts
sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev clang
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install alacritty
https://github.com/alacritty/alacritty

install anaconda

step 1: install prerequisite.

apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6

step 2: download and install

https://www.anaconda.com/products/distribution#linux
bash Anaconda3*.sh

install nodejs16 and yarn

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
git clone https://github.com/redhat-developer/yaml-language-server
yarn install

key maps

disable caps

setxkbmap -option ctrl:nocaps

disable middle button paste of IBM keyboard

xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"

close lid do nothing

sudo vi /etc/systemd/logind.conf
LidSwitchIgnoreInhibited=yes

appendix

anaconda

You have chosen to not have conda modify your shell scripts at all.
To activate conda's base environment in your current shell session:

eval "$(/home/yren/anaconda3/bin/conda shell.YOUR_SHELL_NAME hook)"
eval "$(/home/yren/anaconda3/bin/conda shell.zsh hook)"

To install conda's shell functions for easier access, first activate, then:

conda init

If you'd prefer that conda's base environment not be activated on startup,
   set the auto_activate_base parameter to false:

conda config --set auto_activate_base false

fixing filesystem read only

in initramfs, fsck /dev/mapper/vgubuntu-root