Skip to content

Instantly share code, notes, and snippets.

@pulkitgoyal56
Last active July 14, 2025 09:52
Show Gist options
  • Save pulkitgoyal56/4b1b573c408d3a7d488fe77d20c984c7 to your computer and use it in GitHub Desktop.
Save pulkitgoyal56/4b1b573c408d3a7d488fe77d20c984c7 to your computer and use it in GitHub Desktop.
Scripts
## Set ENV variables for path abbreviations H (Home) and P (Projects)
export H="$HOME" # ~
export P="$H/projects"
## Generate SSH Key for GitHub and add to SSH Agent
ssh-keygen -t ed25519 -C "[email protected]" -f "$H/.ssh/mykey"
eval "$(ssh-agent -s)"
## Show public key
echo "Add following public key to https://github.com/settings/ssh/new ("$HOSTNAME")"
cat "$H/.ssh/mykey.pub"
## Wait for user input to continue
read -n 1 -p "After adding the key, press a key to continue..." _
## Create the $P/Github directory
mkdir -p "$P/Github/"
## Clone Gist to $P/scripts
git clone [email protected]:4b1b573c408d3a7d488fe77d20c984c7.git "$P/Github/scripts"
## Create symlink of $P/scripts to $H/scripts
ln -s "$P/Github/scripts" "$H/scripts"
## Go to the scripts directory
cd "$H/scripts"
echo "Current Directory --- $(pwd)"
## Make all scripts executable
chmod +x *.sh
## Run Setup Script
./setup.sh
## Go back to the Home folder
cd "$H"
export H="$HOME" # ~
export P="$H/projects"
# ZSH_THEME="spaceship"
# plugins=(git ssh tmux zsh-autosuggestions zsh-syntax-highlighting zsh-completions zsh-vi-mode zsh-history-substring-search) # autojump
source "$H/configs/.zshrc"
#!/usr/bin/env sh
## Clone configs to $P/configs
git clone [email protected]:pulkitgoyal56/configs.git "$P/Github/configs"
### Create symlink of $P/configs to $H/configs
ln -s"$P/Github/configs" "$H/configs"
## Go to the scripts directory
cd "$H/scripts"
echo "Current Directory --- $(pwd)"
### Run Symlink Script
sh "$H/scripts/symlink.sh"
#!/usr/bin/env sh
## Configure Git
git config --global user.name "Pulkit Goyal"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
git config --global core.editor vim
git config --global core.autocrlf input
# git config --global core.autocrlf true # Windows
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
# git config --global core.pager delta
# git config --global interactive.diffFilter 'delta --color-only'
# git config --global delta.navigate true
# git config --global merge.conflictStyle zdiff3
#!/usr/bin/env sh
### FONTS
###> Fira Code
###> Source Code Pro
###> Menlo, Monaco, Consolas, ‘Courier New’
sudo apt install -y fonts-firacode
#!/usr/bin/env sh
## Configure Git
./git.sh
## Install Packages
./tools.sh
## Configure ZSH
./zsh.sh
## Configure Configs
./configs.sh
## Configure Misc Configs
./misc_configs.sh
#!/usr/bin/env sh
## Install User Packages
##> `cargo`
# - rust
curl -sSfL https://sh.rustup.rs | sh
##> `cd`
# - zoxide
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
##> `ls`
# - exa/eza
cargo install eza
# - (tre-command) tre
##> `curl` and `wget`
# - aria2
# - lynx
##> `ssh`
# - mosh
##> history
# - atuin
curl -sSfL https://setup.atuin.sh | sh
# - ***mcfly***
##> `df`
# - duf
##> `du`
# - dust
cargo install du-dust
# - dua-cli
##> `rm`
# - (rm-improved) rip
##> `cat`
# - bat
cargo install bat
##> `sed` and `awk`
# - sd
cargo install sd
# - choose
##> `less` and `tail`
# - tailspin
cargo install tailspin
##> `man`
# - ***tldr*** / tealdeer
cargo install tealdeer
##> Package Manager
# - uv
curl -sSfL https://astral.sh/uv/install.sh | sh
# - bun
curl -sSfL https://bun.sh/install | sh
##> Resource Monitoring | `top`
# - htop
# - btop
# - ctop
# - macmon
##> File Managers
# - ranger
# - nnn
# - yazi
cargo install yazi-fm yazi-cli
# - broot
cargo install --features clipboard broot
##> IDE (`nano` and `vi`/`vim`)
# - micro
# - nvim
# - vscode
# - helix
##> Proxy Server
# - (ngrok/ngrok/ngrok) ***ngrok***
# - ***surge***
# - ***hostyoself***
##> File Transfer to Cloud
# - rsync
# - rclone
# - (transfer.sh)
# - croc
# - magic-wormhole
pip install --user magic-wormhole
##> `fd`
# - fd
cargo install fd-find
##> `grep`
# - ripgrep
cargo install ripgrep
##> `watch`
# - hwatch
##> Terminal Tunnel
# - screen
# - tmux
# - zellij
cargo install zellij
##> Terminal Sharing
# - ***asciicinema***
# - ***tmate***
##> Terminal Emulators
# - iTerm2
# - warp
# - Ghostty
##> Process Explorer
# - ***procs*** (not on macos)
cargo install procs
# - ***reptyr*** (not on macos)
##> Script Comparison
# - ***hyperfine***
##> File Watcher and Trigger
# - entr
# - ***watchexec***
cargo binstall watchexec-cli
# - checkexec
##> File Encryption
# - age / ***rage***
##> Git Stuff
# - git-delta
cargo install git-delta
# - lazygit
##> VPN and Wireguard
# - tailscale # curl -fsSL https://tailscale.com/install.sh | sh
# - innernet
##> Miscellaneous
# - fzf
git clone --depth 1 https://github.com/junegunn/fzf.git "$H/.fzf" && "$H/.fzf/install"
git clone https://github.com/junegunn/fzf-git.sh.git "$P/Github/fzf-git.sh" ## fzf-git
# - ruff
curl -LsSf https://astral.sh/ruff/install.sh | sh
# - pv
# - ***pueue***
cargo install pueue
# - xsel (pbcopy on macos)
# - navi
cargo install navi
# - just
cargo install just
# - pandoc
# - ffmpeg
# - neofetch
# - **qsv** / xan
# - tex-fmt
# ---
## System Packages
# sudo apt install nodejs
curl https://get.volta.sh | bash
volta install node
#!/usr/bin/env sh
## Go to Home Directory
cd "$H"
echo "Current Directory --- $(pwd)"
# ## Install Zsh
# sudo apt install sh
# ### Change shell to Zsh
# chsh -s $(which zsh)
## Install Zsh manually if root access is not available
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
mkdir zsh && unxz zsh.tar.xz && tar -xvf zsh.tar -C zsh --strip-components 1
cd zsh
./configure --prefix="$H"
make
make install
# ### Modify $H/.zshrc
# echo -e '\nexec zsh -l' >> "$H/.bashrc"
### Add Zsh install location to PATH
export PATH="$HOME/bin" # :"$HOME/.local/bin:$PATH"
### Change shell to Zsh
exec "$H/bin/zsh" -l
## Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
### Install Spaceship-Prompt
git clone https://github.com/spaceship-prompt/spaceship-prompt.git "${ZSH_CUSTOM:-$H/.oh-my-zsh/custom}/themes/spaceship-prompt" --depth=1
ln -s "${ZSH_CUSTOM:-$H/.oh-my-zsh/custom}/themes/spaceship-prompt/spaceship.zsh-theme" "${ZSH_CUSTOM:-$H/.oh-my-zsh/custom}/themes/spaceship.zsh-theme"
### Install plugins
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$H/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$H/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-$H/.oh-my-zsh}/custom}/plugins/zsh-completions
git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-$H/.oh-my-zsh/custom}/plugins/zsh-history-substring-search
git clone https://github.com/jeffreytse/zsh-vi-mode ${ZSH_CUSTOM:-$H/.oh-my-zsh/custom}/plugins/zsh-vi-mode
### Modify $H/.zshrc
# ZSH_THEME="spaceship"
# plugins=(git ssh tmux zsh-autosuggestions zsh-syntax-highlighting zsh-completions zsh-vi-mode zsh-history-substring-search) # autojump
# ### Install Znap!
# git clone --depth 1 -- https://github.com/marlonrichert/zsh-snap.git
# source zsh-snap/install.zsh
#
# ## Install Zsh Plugins
# znap source zsh-users/zsh-syntax-highlighting
# znap source zsh-users/zsh-autosuggestions
# znap source zsh-users/zsh-completions
# znap source zsh-history-substring-search
# znap source jeffreytse/zsh-vi-mode
# # znap source marlonrichert/zsh-autocomplete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment