Skip to content

Instantly share code, notes, and snippets.

@ntorga
Last active April 26, 2024 15:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ntorga/fc21fbdbf06b72348f6fa0245c46a654 to your computer and use it in GitHub Desktop.
Save ntorga/fc21fbdbf06b72348f6fa0245c46a654 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# The script will perform most of the steps, however, you must edit a few settings manually AFTER running the script:
#
# 1) a) Replace Menu Lite with Whisker;
# b) All Icons - Search "format-justify-fill";
#
# 2) Settings -> Apparence -> Select Dark Mode;
#
# 3) Settings => Keyboard => App Shortcuts => Add "/usr/bin/flameshot gui" => Print Screen => Keep Flameshot.
#
# 4) Configure UFW via Settings (just activate Home mode).
#
# update system
sudo apt update && sudo apt upgrade -y
# remove default apps and install better ones
cd ~/
sudo apt remove -y pidgin* thunderbird* ristretto* xfburn remmina
sudo apt install -y vlc shotwell ubuntu-restricted-extras
sudo apt install -y byobu exfat-fuse exfat-utils
# install basic softwares
sudo apt install -y flameshot default-jre kazam mtr vim curl git whois htop
sudo apt install -y filezilla autossh sshpass telnet traceroute
snaps=( "spotify" "zoom-client" "postman" )
for snap in ${snaps[*]}; do
sudo snap install "${snap}"
done
sudo snap install code --classic
extensions=( "ms-kubernetes-tools.vscode-kubernetes-tools" "hashicorp.terraform" "foxundermoon.shell-format" "timonwong.shellcheck" "ms-azuretools.vscode-docker" "dbaeumer.vscode-eslint" "bmewburn.vscode-intelephense-client" "hbenl.vscode-test-explorer" "recca0120.vscode-phpunit" "ms-python.python" "github.github-vscode-theme" "github.vscode-pull-request-github" )
for ext in ${extensions[*]}; do
code --install-extension "${ext}"
done
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -O chrome.deb
sudo dpkg -i chrome.deb
sudo apt-get install -y -f
rm -f chrome.deb
# disable ipv6 and raise inotify limits
cat >~/sysctl.conf <<EOF
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
fs.inotify.max_user_watches=524288
EOF
sudo mv -f ~/sysctl.conf /etc/sysctl.conf
sudo sysctl -p
# install podman
sudo apt install -y software-properties-common uidmap
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
sudo apt -y update
# if error, use: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 4D64390375060A
sudo apt install -y podman
# replace zorin menu lite with whiskers
sudo add-apt-repository ppa:gottcode/gcppa
sudo apt install -y xfce4-whiskermenu-plugin
# -- process ends here, continue only if devs laptop --
# install php
sudo add-apt-repository -y ppa:ondrej/php
sudo apt -y update
sudo apt -y install php8.2 php8.2-xdebug php8.2-xml php8.2-intl php8.2-curl php8.2-mbstring
sudo systemctl stop apache2
sudo systemctl disable apache2
# install nodejs
curl -kL https://mise.run | sudo sh
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
mise use --global node@20
# install go
curl -kL https://go.dev/dl/go1.22.2.linux-amd64.tar.gz -o go.tar.gz
tar -C /usr/local -xzf go.tar.gz
rm -f go.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:~/go/bin' >> ~/.bashrc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment