Skip to content

Instantly share code, notes, and snippets.

@punit-naik
Last active January 29, 2026 14:09
Show Gist options
  • Select an option

  • Save punit-naik/943a74496affe899abbb5d4e361b29bb to your computer and use it in GitHub Desktop.

Select an option

Save punit-naik/943a74496affe899abbb5d4e361b29bb to your computer and use it in GitHub Desktop.
Helps to setup my Development environment
#!/bin/bash
###########################################
# Tried and tested on my Ubuntu 24.04.3 #
###########################################
sudo apt update
# To handle system hangs
sudo apt purge -y intel-microcode
echo "### Generic - Apt-Fast"
sudo apt install -y axel aria2
sudo add-apt-repository -y ppa:apt-fast/stable
sudo apt install -y apt-fast
echo "## Generic"
sudo add-apt-repository -y ppa:danielrichter2007/grub-customizer
sudo apt-fast install -y grub-customizer
sudo apt-fast install -y calibre mencoder xsel dosfstools mtools alien caffeine tree pdftk meld libimage-exiftool-perl python3-pip
sudo apt-fast install -y v4l2loopback-dkms gnome-weather gnome-contacts audacity winbind playonlinux samba unrar dislocker
sudo apt-fast install -y libfuse2 libxi6 libxrender1 libxtst6 mesa-utils libfontconfig libgtk-3-bin tar dbus-user-session lsb-release ca-certificates peek flatpak ffmpeg gnupg2 xclip nextcloud-desktop #openrgb
sudo apt-fast install -y xz-utils net-tools deluge snapd git curl rlwrap steam gedit gparted synaptic guake gnome-keyring tlp*
sudo apt-fast install -y gnupg maven gimp shotwell evince apt-transport-https openssh-server htop npm virtualbox cheese kazam visualvm filelight
echo "### Slack"
latest_slack_version=$(curl -s https://slack.com/intl/en-in/release-notes/linux \
| grep -oP 'Slack \d+\.\d+\.\d+' \
| sed 's/Slack //' \
| sort -V \
| tail -n 1)
latest_slack_download_url="https://downloads.slack-edge.com/desktop-releases/linux/x64/${latest_slack_version}/slack-desktop-${latest_slack_version}-amd64.deb"
curl -LO "$latest_slack_download_url"
sudo dpkg -i slack-desktop-${latest_slack_version}-amd64.deb
rm slack-desktop-${latest_slack_version}-amd64.deb
#sudo snap remove firefox
sudo apt-fast remove --purge -y okular
sudo snap install snap-store
sudo snap install eclipse --classic
# sudo snap install spotify
sudo curl -fsSL -o /tmp/spotify.gpg https://download.spotify.com/debian/pubkey_C85668DF69375001.gpg
sudo gpg --yes --batch --dearmor -o /usr/share/keyrings/spotify-archive-keyring.gpg /tmp/spotify.gpg
sudo rm -f /tmp/spotify.gpg
echo "deb [signed-by=/usr/share/keyrings/spotify-archive-keyring.gpg] https://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list
sudo apt-fast update
sudo apt-fast install -y spotify-client
# sudo snap install discord
wget -O ~/discord.deb "https://discord.com/api/download?platform=linux&format=deb"
sudo dpkg -i ~/discord.deb
sudo apt-fast install -f
rm ~/discord.deb
# sudo snap install intellij-idea-community --classic --edge
sudo snap install blender --classic
sudo snap install teams-for-linux
#code --install-extension borkdude.clj-kondo
#code --install-extension betterthantomorrow.calva
#code --install-extension mhutchie.git-graph
#code --install-extension alefragnani.rtf
#code --install-extension vscode-org-mode.org-mode
#code --install-extension jebbs.plantuml
#code --install-extension mongodb.mongodb-vscode
#code --install-extension ms-azuretools.vscode-docker
#code --install-extension RandomFractalsInc.vscode-vega-viewer
#code --install-extension tomoki1207.pdf
#code --install-extension christian-kohler.path-intellisense
#code --install-extension ria.elastic
#code --install-extension eamodio.gitlens
echo "### mkusb"
sudo add-apt-repository -y ppa:mkusb/ppa
sudo apt-fast update
sudo apt-fast install -y mkusb
echo "### Zulip"
sudo curl -fsSL -o /tmp/zulip-desktop.asc https://download.zulip.com/desktop/apt/zulip-desktop.asc
sudo gpg --yes --batch --dearmor -o /usr/share/keyrings/zulip-desktop-archive-keyring.gpg /tmp/zulip-desktop.asc
sudo rm -f /tmp/zulip-desktop.asc
echo "deb [signed-by=/usr/share/keyrings/zulip-desktop-archive-keyring.gpg] https://download.zulip.com/desktop/apt stable main" | sudo tee /etc/apt/sources.list.d/zulip-desktop.list
sudo apt-fast update
sudo apt-fast install -y zulip
echo "### Brave Browser"
sudo apt install -y apt-transport-https curl
sudo curl -fsSL -o /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt-fast update
sudo apt-fast install -y brave-browser
echo "### Microsoft Edge & VS Code"
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --yes --batch --dearmor -o /usr/share/keyrings/microsoft-archive-keyring.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge.list'
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg arch=amd64] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/microsoft-vscode.list'
sudo apt-fast update
sudo apt-fast install -y --install-recommends microsoft-edge-stable
sudo apt-fast install -y --install-recommends code
echo "### Generic - Docker"
sudo apt-fast remove -y docker docker-engine docker.io containerd runc
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-fast remove $pkg; done
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --yes --batch --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-fast update
sudo apt-fast install -y --install-recommends docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#sudo groupadd docker || true
sudo usermod -aG docker $USER
docker run hello-world
echo "### Generic - Docker Compose"
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
echo "### Generic - Kubectl"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
rm kubectl
echo "### Generic - GNOME Shell Extension"
sudo apt-fast install -y gnome-tweaks gnome-shell-extensions chrome-gnome-shell
echo "### Generic - Compiz"
sudo apt-fast install -y compiz compizconfig-settings-manager compiz-plugins
echo "### Generic - Sensors"
sudo apt-fast install -y lm-sensors psensor
echo "### Generic - VLC"
sudo apt-fast install -y vlc
echo "### Generic - Boot Repair"
sudo add-apt-repository -y ppa:yannubuntu/boot-repair
sudo apt-fast update
sudo apt-fast install -y boot-repair
echo "### Generic - Yarn"
curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /etc/apt/keyrings/yarn.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/yarn.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-fast update
sudo apt-fast install -y yarn
echo "### Generic - Graphviz"
sudo apt install -y flex perl automake bison libtool byacc xdot
sudo add-apt-repository -y universe
sudo apt-fast update
sudo apt-fast install -y graphviz
echo "### Generic - Zoom"
wget https://zoom.us/client/latest/zoom_amd64.deb
sudo dpkg -i zoom_amd64.deb
sudo apt-fast install -f -y
rm zoom_amd64.deb
echo "### Generic - Github Credential Management"
sudo apt-fast install -y libsecret-1-0 libsecret-1-dev
(cd /usr/share/doc/git/contrib/credential/libsecret; sudo make)
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
echo "### Generic - Wine"
DEBIAN_FRONTEND=noninteractive sudo dpkg --add-architecture i386
curl -fsSL -o /tmp/winehq.asc https://dl.winehq.org/wine-builds/winehq.key
sudo gpg --yes --batch --dearmor -o /usr/share/keyrings/winehq-archive-keyring.gpg /tmp/winehq.asc
rm /tmp/winehq.asc
sudo apt install -y software-properties-common
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/winehq-archive-keyring.gpg] https://dl.winehq.org/wine-builds/ubuntu/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/winehq.list'
sudo apt-fast update
sudo apt-fast install -y --install-recommends winehq-stable winetricks
echo "### Generic - Lutris"
sudo apt-fast install -y lutris
echo "## Java"
sudo apt-fast install -y openjdk-8-jdk-headless
sudo apt-fast install -y openjdk-11-jdk-headless
echo "## Leiningen"
wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
chmod +x lein
sudo mv lein /bin
mkdir -p $HOME/.lein
echo -e "{:user {:plugins [[lein-try \"0.4.3\"]\n
[lein-kibit \"0.1.8\"]\n
[lein-codox \"0.10.8\"]\n
[lein-cloverage \"1.1.2\"]\n
[jonase/eastwood \"0.3.10\"]\n
[venantius/yagni \"0.1.7\"]\n
[org.clojars.timvisher/lein-checkout \"0.4.2\"]\n
[walmartlabs/vizdeps \"0.2.0\"]\n
[lein-ns-dep-graph \"0.2.0-SNAPSHOT\"]\n
[lein-ancient \"1.0.0-RC3\"]\n
[proto-repl \"0.3.1\"]\n
[org.clojure/tools.namespace \"1.2.0\"]]}}" >> $HOME/.lein/profiles.clj
lein -v
echo "## Boot-CLJ"
sudo bash -c "cd /usr/local/bin && curl -fsSLo boot https://github.com/boot-clj/boot-bin/releases/download/latest/boot.sh && chmod 755 boot"
boot -V
echo "## Clojure CLI"
#curl -O https://download.clojure.org/install/linux-install-1.10.1.536.sh
#chmod +x linux-install-1.10.1.536.sh
#sudo ./linux-install-1.10.1.536.sh
#rm linux-install-1.10.1.536.sh
#clj -h
#clojure -h
echo "## Nix"
curl -L https://nixos.org/nix/install | sh
. $HOME/.nix-profile/etc/profile.d/nix.sh
echo "## Homebrew"
echo | sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
echo 'export PATH=/home/linuxbrew/.linuxbrew/bin:$PATH' >> $HOME/.bashrc
echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >> $HOME/.profile
eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
. $HOME/.bashrc
echo "### Homebrew - Installing Necessary Packages"
brew install borkdude/brew/clj-kondo
brew install candid82/brew/joker
brew install clojure/tools/clojure
brew install clojure-lsp/brew/clojure-lsp-native
brew install borkdude/brew/babashka
echo "### Direnv"
sudo apt-fast install -y direnv
echo 'eval "$(direnv hook bash)"' >> $HOME/.bashrc
. $HOME/.bashrc
echo "### CLJ-Kondo"
#curl -sLO https://raw.githubusercontent.com/borkdude/clj-kondo/master/script/install-clj-kondo
#chmod +x install-clj-kondo
#sudo ./install-clj-kondo
echo "### Shadow-CLJS"
sudo npm install -g shadow-cljs
echo "### Elasticsearch"
#curl -fsSL -o /usr/share/keyrings/elasticsearch-archive-keyring.gpg https://artifacts.elastic.co/GPG-KEY-elasticsearch
#echo "deb [signed-by=/usr/share/keyrings/elasticsearch-archive-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
#sudo apt update
#sudo apt install -y elasticsearch=7.10.0 kibana=7.10.0
#sudo apt-mark hold elasticsearch kibana
#sudo systemctl disable elasticsearch kibana
echo "### DBeaver"
curl -fsSL https://dbeaver.io/debs/dbeaver.gpg.key | sudo gpg --yes --batch --dearmor -o /usr/share/keyrings/dbeaver-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/dbeaver-archive-keyring.gpg] https://dbeaver.io/debs/dbeaver-ce /" | sudo tee /etc/apt/sources.list.d/dbeaver.list
sudo apt-fast update
sudo apt-fast install -y dbeaver-ce
echo "### Mainline"
sudo add-apt-repository -y ppa:cappelikan/ppa
sudo apt-fast install -y mainline
echo "### Skype"
wget https://repo.skype.com/latest/skypeforlinux-64.deb && sudo dpkg -i skypeforlinux-64.deb && rm skypeforlinux-64.deb || echo "Skype binary does not exist on the web"
echo "### Kdenlive"
sudo apt-fast install -y kdenlive
echo "### OBS Studio"
sudo apt-fast install -y obs-studio
echo "### ProtonVPN"
curl -fsSL -o /tmp/protonvpn.asc https://repo.protonvpn.com/debian/public_key.asc
sudo gpg --yes --batch --dearmor -o /usr/share/keyrings/protonvpn-archive-keyring.gpg /tmp/protonvpn.asc
rm /tmp/protonvpn.asc
echo "deb [signed-by=/usr/share/keyrings/protonvpn-archive-keyring.gpg] https://repo.protonvpn.com/debian unstable main" | sudo tee /etc/apt/sources.list.d/protonvpn.list
sudo apt-fast update
sudo apt-fast install -y --install-recommends protonvpn
echo "### Ollama"
curl -fsSL https://ollama.com/install.sh | sh
echo "### ENV Stuff"
echo 'gpgconf --launch gpg-agent' >> $HOME/.bashrc
echo 'export GPG_TTY=$(tty)' >> $HOME/.bashrc
. $HOME/.bashrc
echo "### Media - Kodi"
sudo apt-fast install -y --install-recommends kodi kodi-bin
#echo "### Media - JellyFin"
#wget -O- https://repo.jellyfin.org/install-debuntu.sh | sudo bash
echo "### Misc Settings"
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false
gsettings set org.gnome.shell.extensions.ding show-home false
gsettings set org.gnome.shell.extensions.dash-to-dock dock-position 'BOTTOM'
gsettings set org.gnome.shell.extensions.dash-to-dock autohide true
gsettings set org.gnome.shell.extensions.dash-to-dock background-opacity 0.2
gsettings set org.gnome.shell.extensions.dash-to-dock intellihide true
gsettings set org.gnome.shell.extensions.dash-to-dock pressure-threshold 0
# Install Dash to Dock gnome extenstion - https://extensions.gnome.org/extension/307/dash-to-dock
# Disable Canonical Livepath
sudo canonical-livepatch disable
sudo canonical-livepatch unregister
sudo systemctl stop --now snap.canonical-livepatch.canonical-livepatchd.service
sudo systemctl disable --now snap.canonical-livepatch.canonical-livepatchd.service
sudo snap remove canonical-livepatch
# To handle system hangs
sudo apt purge -y intel-microcode
# Set TLP
echo -e "\nSTART_CHARGE_THRESH_BAT0=40\nSTOP_CHARGE_THRESH_BAT0=85" | sudo tee -a /etc/tlp.conf
sudo tlp start
# Fix sleep glitches
sudo sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ucsi_acpi.disable=1 iommu=soft mem_sleep_default=deep"/' /etc/default/grub
sudo update-grub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment