Dev Environment Setup
This guide will walk you through my Webdev Environment Setup. My OS of choice is Antix Linux but this guide is also tailored for Ubuntu and Debian users
Install Prerequisite
Section titled “Install Prerequisite”sudo apt install curl git fzf fd-findTerminal Setup
Section titled “Terminal Setup”-
Alacritty
Section titled “Alacritty”Install the Alacritty Terminal Emulator
Terminal window curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh &&sudo apt install cmake g++ pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3 &&cargo install alacrittyTerminal window sudo add-apt-repository ppa:aslatter/ppa -ysudo apt install alacrittyRestart Ubuntu and Alacritty should be you default Terminal
-
Oh My Fish
Section titled “Oh My Fish”First install Fish Shell. official download instructions
Terminal window echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/4/Debian_13/ /' | sudo tee /etc/apt/sources.list.d/shells:fish:release:4.listcurl -fsSL https://download.opensuse.org/repositories/shells:fish:release:4/Debian_13/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/shells_fish_release_4.gpg > /dev/nullsudo apt updatesudo apt install fishTerminal window echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/4/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/shells:fish:release:4.listcurl -fsSL https://download.opensuse.org/repositories/shells:fish:release:4/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/shells_fish_release_4.gpg > /dev/nullsudo apt updatesudo apt install fishTerminal window sudo add-apt-repository ppa:fish-shell/release-4sudo apt updatethen install the Oh My fish framework for the Fish Shell
Terminal window curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fishalso set the omf theme to batman
Terminal window omf install batman -
Zoxide
Section titled “Zoxide”Install a smarter cd command alternative. zoxide for fish shell
Terminal window curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | shecho 'zoxide init fish | source' >> ~/.config/fish/config.fishsource ~/.config/fish/config.fish
Neovim Setup
Section titled “Neovim Setup”-
Neovim
Section titled “Neovim”Install Neovim (Latest Version)
Terminal window curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gzsudo rm -rf /opt/nvimsudo tar -C /opt -xzf nvim-linux-x86_64.tar.gzfish_add_path /opt/nvim-linux-x86_64/binsource ~/.config/fish/config.fish -
Lazyvim
Section titled “Lazyvim”Install my Custom Fork of Lazyvim config
Terminal window mv ~/.config/nvim{,.bak}git clone https://github.com/Keshav-writes-code/nvim.git ~/.config/nvim -
Lazygit
Section titled “Lazygit”Install Lazygit, a simple terminal UI for git commands
Terminal window set LAZYGIT_VERSION (curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | string match -r '"tag_name": *"v([^"]*)"' | head -n 2 | tail -n 1)curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/download/v$LAZYGIT_VERSION/lazygit_"$LAZYGIT_VERSION"_Linux_x86_64.tar.gz"tar xf lazygit.tar.gz lazygitsudo install lazygit -D -t /usr/local/bin/Terminal window LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | \grep -Po '"tag_name": *"v\K[^"]*')curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"tar xf lazygit.tar.gz lazygitsudo install lazygit -D -t /usr/local/bin/ -
NerdFont
Section titled “NerdFont”Install a NerdFont needed for various icons and UI element for Neovim.
Jetbrains Mono is the default standardTerminal window bash -c "$(curl -fsSL https://raw.githubusercontent.com/officialrajdeepsingh/nerd-fonts-installer/main/install.sh)"- Enter 28 on Prompt
-
You can Launch Neovim now
Terminal window nvim -
Git Delta (Optional)
Section titled “Git Delta (Optional)”For Side by Side Diff in lazygit.
Download thegit-delta-musl_<version>_<arch>.debfrom the Release Page
Install the .deb using :Terminal window sudo apt install ~/Downloads/git-delta-musl_0.18.2_amd64.deb -yRun this Command to add config into
~/.config/lazygit/config.ymlTerminal window mkdir -p ~/.config/lazygit/touch ~/.config/lazygit/config.ymlcat <<EOF >> ~/.config/lazygit/config.ymlgit:paging:colorArg: alwayspager: delta --side-by-side --paging=neverEOFRestart Lazygit from Neovim and it Will work
Application Setup
Section titled “Application Setup”- this will install necessary application like runtimes needed for Development
Webdev Tools
Section titled “Webdev Tools”-
NodeJs
Section titled “NodeJs”Install Nodejs via Node Version Manager
Terminal window curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash &&\. "$HOME/.nvm/nvm.sh"nvm install 22 -
Install Bun, a fast Nodejs, npm replacement that relies on Nodejs realistically speaking
Terminal window curl -fsSL https://bun.sh/install | bash
Python Setup
Section titled “Python Setup”-
Python
Section titled “Python”Install Python via linux package manager
Terminal window sudo apt install python3 -
Install UV, An extremely fast Python package and project manager, written in Rust
Terminal window curl -LsSf https://astral.sh/uv/install.sh | sh
Github Setup
Section titled “Github Setup”- this will setup git with github
-
Github Cli
Section titled “Github Cli”Install Github Cli (Refrence)
Terminal window (type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) \&& sudo mkdir -p -m 755 /etc/apt/keyrings \&& out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \&& cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \&& sudo apt update \&& sudo apt install gh -y -
Login to Github
Section titled “Login to Github”Authenticating with GitHub from Git to Manage github repos from git Cli (Refrence)
Terminal window gh auth loginFollow the Steps as the Github Cli walks you through them. Choose HTTPS Authentication and Setup a Keyring password in the Process
-
Set your username in Git
Section titled “Set your username in Git”Terminal window git config --global user.email "<email>"git config --global user.name "<uname>"Test github & git setup by Doing a Push to comitted changes in a git repo