Setting up my workstation

This page collects my workstation setup commands grouped by activity, with OS‑specific instructions for Manjaro Linux, macOS, and Windows.

Basic Setup

Manjaro Linux

bash
sudo pacman -Syu
sudo pacman -S --needed base-devel git vim noto-fonts-emoji python-pip

To enable Media Transfer Protocol (this may help if you have trouble connecting your Android device):

bash
sudo pacman -S gvfs-mtp

To prevent grouping of chrome/vscode/xyz windows together:

Settings > Keyboard > Shortcuts > Switch Windows > alt + tab

Gnome

  1. Change the scaling factor, if using a small screen with high pixel density:
bash
sudo pacman -S gnome-tweaks

Enable gnome-extensions and install:

KDE

  • Menu > Appearance > Change Theme > adwaita-dark
  • Settings > Keyboard > Shortcuts >
    • ctrl + alt + t → terminal
    • ctrl + alt + c → google-chrome-stable
    • ctrl + alt + f → dolphin

macOS

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew update
brew install git vim go python
curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
sudo python get-pip.py

Installing Git

  • Execute choco install git or download and run the latest installer.

Package Manager

Manjaro Linux

Installing yay

bash
git clone https://aur.archlinux.org/yay-git.git
cd yay-git
makepkg -sri

Installing snap

bash
sudo pacman -S snapd
sudo systemctl enable --now snapd.socket
sudo systemctl start --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap

Windows

powershell
Set-ExecutionPolicy Bypass -Scope Process -Force;
[System.Net.ServicePointManager]::SecurityProtocol =
  [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Node

Manjaro Linux

bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install node
npm i yarn -g

macOS

bash
brew install nvm
nvm install node
npm i yarn -g

Windows

sh
choco install nodejs-lts
npm i yarn -g

To use legacy versions of node

  • For a session:
bash
nvm install v1X.XX.X
nvm use v1X.XX.X
  • Changing the default node version:
bash
nvm default alias v1X.XX.X

PostgreSQL

Manjaro Linux

bash
sudo pacman -S postgresql
initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data/'
sudo systemctl enable postgresql
sudo systemctl start postgresql

macOS

bash
brew install postgres
brew services enable postgresql
brew services start postgresql

Windows

sh
choco install postgresql

MongoDB

Manjaro Linux

bash
sudo pacman -S mongodb
sudo systemctl enable mongodb
sudo systemctl start mongodb

macOS

bash
brew install mongodb
brew services enable mongodb
brew services start mongodb

Windows

sh
choco install mongodb-cli.install

Docker

Manjaro Linux

bash
sudo pacman -S docker
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
docker login

macOS

bash
brew install docker
brew services enable docker
brew services start docker
docker login

Windows

sh
choco install docker-desktop
docker login

VSCode and Extensions

Chrome and Extensions

Git

bash
ssh-keygen -t ed25519 -C "ahampriyanshu@gmail.com"

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/id_ed25519

cat ~/.ssh/id_ed25519.pub

Paste the following:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

Create a new ssh key

Setup a global git config

bash
git config --global user.name "ahampriyanshu"

git config --global user.email "ahampriyanshu@gmail.com"

Terminal Setup

bash
sudo pacman -S zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

chsh -s `which zsh`

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install

Add these to plugins list in ~/.zshrc

plugins=(git zsh-autosuggestions zsh-syntax-highlighting pip colorize)

Reload the shell:

bash
source ~/.zshrc

Utilities

Manjaro Linux

bash
sudo pacman -S vlc qbittorrent
yay -S google-chrome visual-studio-code-bin telegram-desktop slack-desktop
npm i -g nodemon
pip3 install youtube-dl orange3

macOS

bash
brew install --cask visual-studio-code

npm i -g nodemon

pip3 install youtube-dl orange3

Windows

sh
choco install vlc qbittorrent google-chrome visual-studio-code-bin telegram-desktop slack-desktop
npm i -g nodemon
pip3 install youtube-dl orange3
This post is licensed under CC BY 4.0 Edit this page | Report an issue