|
# Install the nvidia driver as recommended by Linux Mint |
|
# Open nvidia GUI and under OpenGL Settings set Image Settings to "High Performance"" |
|
set -e |
|
|
|
USERNAME=iosif |
|
|
|
if [[ $EUID -ne 0 ]]; then |
|
echo "This script must be run as root. Run sudo su" |
|
exit 1 |
|
fi |
|
|
|
echo "Using upstream release name in linux" |
|
grep "UBUNTU_CODENAME" /etc/os-release | awk '{ print $2 }' |
|
|
|
UPSTREAM_CODENAME=$(sed 's/UBUNTU_CODENAME=//;t;d' /etc/os-release) |
|
sudo cp /etc/os-release /etc/os-release.original |
|
NEW_OS_RELEASE=$(sed -E "s/VERSION_CODENAME=.*/VERSION_CODENAME=$UPSTREAM_CODENAME/g" /etc/os-release) |
|
echo "$NEW_OS_RELEASE" | sudo tee /etc/os-release |
|
|
|
|
|
sudo apt-get update |
|
|
|
echo "Installing Git" |
|
sudo apt-get install -y git |
|
git config --global core.pager cat |
|
wget -qO - https://packagecloud.io/shiftkey/desktop/gpgkey | sudo tee /etc/apt/trusted.gpg.d/shiftkey-desktop.asc > /dev/null |
|
sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/shiftkey/desktop/any/ any main" > /etc/apt/sources.list.d/packagecloud-shiftky-desktop.list' |
|
sudo apt-get update |
|
sudo apt install -y github-desktop |
|
|
|
echo "Installing useful dependencies" |
|
sudo apt-get install -y \ |
|
build-essential \ |
|
cmake \ |
|
curl \ |
|
m4 \ |
|
ruby \ |
|
texinfo \ |
|
libbz2-dev \ |
|
libcurl4-openssl-dev \ |
|
libexpat-dev \ |
|
libncurses-dev \ |
|
zlib1g-dev \ |
|
zsh |
|
|
|
echo "Installing homebrew" |
|
sudo -u $USERNAME /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
|
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/iosif/.profile |
|
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" |
|
|
|
echo "Installing go" |
|
sudo -u $USERNAME /bin/bash -c "eval ""$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)""brew install go" |
|
|
|
echo "Installing snap" |
|
sudo rm /etc/apt/preferences.d/nosnap.pref |
|
sudo apt update |
|
sudo apt-get install -y snapd |
|
|
|
echo "Installing jq" |
|
sudo snap install jq |
|
|
|
echo "Installing linux-headers" |
|
sudo apt-get install -y linux-headers-$(uname -r) |
|
|
|
echo "Installing Gammy" |
|
sudo apt install -y build-essential libgl1-mesa-dev qt5-default libxxf86vm-dev libxext-dev |
|
git clone https://github.com/Fushko/gammy.git |
|
cd gammy |
|
qmake Gammy.pro |
|
make |
|
sudo make install |
|
cd ../ && rm -rf gammy |
|
sudo ln -s /opt/gammy/bin/gammy /usr/local/bin/ |
|
|
|
mkdir -p ~/.config/autostart/ |
|
cat > ~/.config/autostart/gammy.desktop << EOF |
|
[Desktop Entry] |
|
Name=Gammy |
|
GenericName=Screen control |
|
Comment=Adaptive screen brightness and temperature |
|
Exec=gammy |
|
Terminal=false |
|
Type=Application |
|
Icon=gammy |
|
Categories=Utility;System; |
|
Keywords=brightness,temperature,screen,control; |
|
StartupNotify=false |
|
EOF |
|
|
|
echo "Installing Node.js" |
|
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - |
|
sudo apt-get install -y nodejs |
|
|
|
echo "Installing Yarn" |
|
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null |
|
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list |
|
sudo apt-get update && sudo apt-get install yarn |
|
|
|
|
|
echo "Installing Teamviewer" |
|
wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb |
|
sudo apt-get install -y libminizip1 |
|
dpkg -i teamviewer_amd64.deb |
|
apt-get install -f -y |
|
rm -rf teamviewer_amd64.deb |
|
|
|
echo "Installing Skype" |
|
sudo snap install skype |
|
|
|
|
|
echo "Generating SSH keys" |
|
ssh-keygen -t rsa -b 4096 |
|
|
|
echo "Installing Intelij Idea Ultimate" |
|
sudo snap install intellij-idea-ultimate --classic |
|
|
|
|
|
echo "Installing Android Studio" |
|
sudo snap install android-studio --classic |
|
|
|
echo "Installing Dart&Flutter for Android Studio" |
|
sudo apt-get install -y apt-transport-https |
|
sudo sh -c 'wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -' |
|
sudo sh -c 'wget -qO- https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list' |
|
sudo apt-get update |
|
sudo apt-get install -y dart |
|
echo 'export PATH="$PATH:/usr/lib/dart/bin"' >> ~/.profile |
|
sudo snap install flutter --classic |
|
echo "Configure Android Studio to use following Flutter SDK path:" |
|
echo "/usr/lib/dart" |
|
export PATH="$PATH:/usr/lib/dart/bin" |
|
flutter upgrade |
|
|
|
echo "Configure Android Studio to use following Flutter SDK path:" |
|
flutter sdk-path |
|
|
|
echo "Installing Brave" |
|
sudo snap install brave |
|
|
|
|
|
echo "Installing 1Password" |
|
sudo snap install 1password |
|
|
|
echo "Installing Robo3t" |
|
sudo snap install robo3t-snap |
|
|
|
echo "Enabling SSH access" |
|
apt-get install openssh-server -y |
|
|
|
echo "Installing Docker" |
|
sudo apt-get remove docker docker.io containerd runc |
|
sudo apt-get install -y \ |
|
apt-transport-https \ |
|
ca-certificates \ |
|
curl \ |
|
gnupg \ |
|
lsb-release |
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --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-get update |
|
sudo apt-get install -y docker-ce docker-ce-cli containerd.io |
|
sudo usermod -a -G docker $USER |
|
sudo usermod -a -G docker $USERNAME |
|
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 |
|
|
|
echo "Installing Notion" |
|
sudo snap install notion-snap |
|
|
|
echo "Installing OBS" |
|
sudo snap install obs-studio |
|
|
|
echo "Installing Wireguard" |
|
sudo ln -s /usr/bin/resolvectl /usr/local/bin/resolvconf |
|
sudo snap install wireguard-ammp |
|
sudo apt install -y wireguard wireguard-tools |
|
wget https://github.com/Devsfy/wiregui/releases/download/1.8.0/wiregui_1.8.0_amd64.deb |
|
sudo dpkg -i wiregui_1.8.0_amd64.deb |
|
sudo apt-get install -f -y |
|
rm -rf wiregui_1.8.0_amd64.deb |
|
|
|
echo "Installing OpenVPN" |
|
sudo snap install easy-openvpn |
|
|
|
echo "Installing PacketSender" |
|
snap install packetsender |
|
|
|
echo "Installing Python" |
|
sudo apt install -y python3-virtualenv python3-dev libpq-dev python3-pip |
|
|
|
echo "Installing PgAdmin" |
|
sudo apt install -y libgmp3-dev build-essential libssl-dev |
|
sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add |
|
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update' |
|
# Install for both desktop and web modes: |
|
sudo apt install -y pgadmin4 |
|
|
|
echo "Installing Postman" |
|
sudo snap install postman |
|
|
|
echo "Installing Signal" |
|
sudo snap install signal-desktop |
|
|
|
echo "Installing Preload" |
|
sudo apt-get install preload |
|
|
|
echo "Installing iotop" |
|
sudo apt install -y iotop |
|
|
|
echo "Installing htop" |
|
sudo apt-get install -y htop |
|
|
|
echo "Installing filezilla" |
|
sudo apt-get install -y filezilla |
|
|
|
echo "Storing the /tmp directory in ram" |
|
sudo cp -v /usr/share/systemd/tmp.mount /etc/systemd/system/ |
|
sudo systemctl enable tmp.mount |
|
|
|
echo "Storing the /tmp directory in ram" |
|
sudo apt-get -y --purge remove linux-sound-base alsa-base alsa-utils |
|
sudo apt-get install -y linux-sound-base alsa-base alsa-utils |
|
|
|
echo "Installing gedit" |
|
sudo apt install -y gedit |
|
|
|
echo "Installing Alsa Audio" |
|
sudo apt install -y pavucontrol |
|
|
|
echo "Fixing the audio buzzing" |
|
echo "options snd-hda-intel power_save=0 power_save_controller=N" | sudo tee -a /etc/modprobe.d/alsa-base.conf |
|
|
|
echo "Disabling ipv6" |
|
echo "net.ipv6.conf.all.disable_ipv6=1" | sudo tee -a echo "something" | sudo tee -a /etc/config_file |
|
echo "net.ipv6.conf.default.disable_ipv6=1" | sudo tee -a echo "something" | sudo tee -a /etc/config_file |
|
|
|
|
|
echo "Installing nvm" |
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash |
|
|
|
echo "Configure Linux Mint theme to look like MacOS Big Sur" |
|
sudo apt install -y sassc optipng inkscape libcanberra-gtk-module libglib2.0-dev libxml2-utils |
|
sudo apt install -y sassc optipng inkscape libcanberra-gtk-module libglib2.0-dev libxml2-utils |
|
|
|
git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git |
|
cd WhiteSur-gtk-theme/ |
|
./install.sh |
|
cd .. |
|
|
|
git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git |
|
cd WhiteSur-icon-theme/ |
|
./install.sh |
|
cd .. && rm -rf WhiteSur-icon-theme/ |
|
|
|
git clone https://github.com/vinceliuice/McMojave-cursors.git |
|
cd McMojave-cursors/ |
|
./install.sh |
|
cd .. && rm -rf McMojave-cursors/ |
|
|
|
sudo apt install -y plank |
|
|
|
sudo apt install -y nautilus |
|
|
|
echo "Tuning linux" |
|
sudo sysctl -w fs.file-max=2000500 |
|
sudo sysctl -w fs.nr_open=2000500 |
|
sudo sysctl -w net.nf_conntrack_max=2000500 |
|
ulimit -n 2000500 |
|
|
|
sudo sysctl -w net.ipv4.tcp_tw_reuse=1 |
|
|
|
|
|
echo "Setup KVM support (useful for running Windows or Android emulators)" |
|
sudo apt install -y cpu-checker qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager |
|
sudo kvm-ok |
|
read -p "Please make sure that Virtualization Technology(VT) is ennabled in BIOS" |
|
|
|
echo "Setup Linux to look like MacOS" |
|
read -p "Follow this tutorial: https://www.youtube.com/watch?v=DMs7DX3Um9E . Press enter when it's done" |
|
|
|
dconf write /org/cinnamon/desktop/wm/preferences/button-layout "'close,minimize,maximize'" |
|
|
|
rm -rf WhiteSur-gtk-theme/ |
|
|
|
echo "Adding the nvidia ppa" |
|
MINT_CODENAME=$(grep -oP 'CODENAME=\K\w+' /etc/linuxmint/info) |
|
UBUNTU_CODENAME=$(lsb_release -sc) |
|
sudo ln -rs /usr/share/mintsources/$MINT_CODENAME /usr/share/mintsources/$UBUNTU_CODENAME |
|
sudo add-apt-repository ppa:graphics-drivers/ppa |
|
sudo apt-get update |
|
|
|
echo "Upgrading all the packages to the latest version" |
|
sudo apt-get upgrade |
|
|
|
echo "Enable Timeshift" |
|
read -p "Please enable Timeshift on your Linux machine. Press enter when it's done" |
|
|
|
echo "Update all the linux packages" |
|
read -p "Update all the linux packages from Update Manager. Press enter when it's done" |
|
|
|
|
|
echo "Enable syncing in Brave" |
|
read -p "Please enable syncing in Brave with your phone. Press enter when it's done" |
|
|
|
echo "Installing Loom" |
|
read -p "Install Loom in Brave. Press enter when it's done" |
|
|
|
echo "Installing 1Password" |
|
read -p "Install 1Password in Brave. Press enter when it's done" |
|
|
|
echo "Installing Toggl" |
|
read -p "Install Toggl in Brave. Press enter when it's done" |
|
|
|
echo "Installing Zenhub" |
|
read -p "Install Zenhub in Brave. Press enter when it's done" |
|
|
|
|
|
|
|
|