Files
Linux-Scripts/main/setup.sh
2025-12-26 06:34:06 -08:00

394 lines
14 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) 2022 fithwum
# All rights reserved
set -eu
USER=fithwum
MAKEMKV_VERSION=1.18.2
JF_VERSION_TYPE=media-player
JF_VERSION=1.12.0
LINUX_VERSION=trixie
PROTON_VERSION=2.14.0
KRITA_VERSION=5.2.14
echo " "
echo "INFO ! checking for & installing updates."
echo " "
apt-get --fix-broken install -y
apt-get -y update
apt-get -y upgrade
echo " "
echo "INFO ! Security Tools."
echo " "
apt-get install --no-install-recommends -y clamav
apt-get install --no-install-recommends -y fail2ban
systemctl enable fail2ban --now
echo " "
echo "INFO ! utillities."
echo " "
# apt-get install --no-install-recommends -y ttf-mscorefonts-installer
# apt-get install --no-install-recommends -y putty
# apt-get install --no-install-recommends -y nextcloud-desktop
# apt-get install --no-install-recommends -y syncthing
apt-get install --no-install-recommends -y htop
apt-get install --no-install-recommends -y iftop
apt-get install --no-install-recommends -y fastfetch
# apt-get install --no-install-recommends -y gparted
apt-get install --no-install-recommends -y keepassxc
apt-get install --no-install-recommends -y filezilla
apt-get install --no-install-recommends -y curl
# apt-get install --no-install-recommends -y chirp
# apt-get install --no-install-recommends -y satdump
# apt-get install --no-install-recommends -y rustdesk
apt-get install --no-install-recommends -y lightdm-settings
apt-get install --no-install-recommends -y gnome-calendar
apt-get install --no-install-recommends -y libfuse2t64
apt-get install --no-install-recommends -y tar
# echo " "
# echo "INFO ! Installing MakeMKV-${MAKEMKV_VERSION} & utillities."
# echo " "
# apt-get install --no-install-recommends -y build-essential pkg-config qtbase5-dev zlib1g-dev libc6-dev libssl-dev libexpat1-dev libavcodec-dev libgl1-mesa-dev ffmpeg
# wget --no-cache --show-progress --progress=bar:force:noscroll "https://www.makemkv.com/download/makemkv-bin-${MAKEMKV_VERSION}.tar.gz" -O makemkv-bin-${MAKEMKV_VERSION}.tar.gz
# wget --no-cache --show-progress --progress=bar:force:noscroll "https://www.makemkv.com/download/makemkv-oss-${MAKEMKV_VERSION}.tar.gz" -O makemkv-oss-${MAKEMKV_VERSION}.tar.gz
# tar -xf makemkv-bin-${MAKEMKV_VERSION}.tar.gz
# tar -xf makemkv-oss-${MAKEMKV_VERSION}.tar.gz
# rm -fr makemkv-*-*.tar.gz
# chown ${USER} makemkv*
# cd makemkv-oss-${MAKEMKV_VERSION}
# ./configure
# make
# make install
# cd ..
# cd makemkv-bin-${MAKEMKV_VERSION}
# make
# make install
# cd ..
# rm -fr makemkv-*-*
# echo " "
# echo "INFO ! Rubyripper utillities."
# echo " "
# apt-get install --no-install-recommends -y ruby ruby-rexml ruby-gettext ruby-gtk3
# apt-get install --no-install-recommends -y cdparanoia cd-discid eject normalize-audio sox cdrdao
# apt-get install --no-install-recommends -y vorbisgain mp3gain
# apt-get install --no-install-recommends -y flac lame
echo " "
echo "INFO ! Codeing things."
echo " "
# apt-get install --no-install-recommends -y docker docker.io docker-compose docker-clean docker-registry
apt-get install --no-install-recommends -y git
# apt-get install --no-install-recommends -y gh
# apt-get install --no-install-recommends -y arduino
# apt-get install --no-install-recommends -y adb
apt-get install --no-install-recommends -y python3
# if dpkg -s code &> /dev/null
# then
# echo "INFO ! VS-Code installed ... moving on."
# else
# echo " "
# echo "WARNING ! VS-Code not installed ... will install now."
# wget --no-cache --show-progress --progress=bar:force:noscroll "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64" -O vs-code.deb
# dpkg -i vs-code.deb
# rm -fr vs-code.deb
# fi
if dpkg -s codium &> /dev/null
then
echo "INFO ! VS-Codium installed ... moving on."
else
echo " "
echo "WARNING ! VS-Codium not installed ... will install now."
wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor | dd of=/usr/share/keyrings/vscodium-archive-keyring.gpg
echo -e 'Types: deb\nURIs: https://download.vscodium.com/debs\nSuites: vscodium\nComponents: main\nArchitectures: amd64 arm64\nSigned-by: /usr/share/keyrings/vscodium-archive-keyring.gpg' | tee /etc/apt/sources.list.d/vscodium.sources
apt-get update
apt-get --no-install-recommends -y install codium
fi
echo " "
echo "INFO ! Media things."
echo " "
# apt-get install --no-install-recommends -y audacity
apt-get install --no-install-recommends -y vlc
# apt-get install --no-install-recommends -y obs-studio
# apt-get install --no-install-recommends -y kdenlive
apt-get install --no-install-recommends -y gimp
# apt-get install --no-install-recommends -y inkscape
# apt-get install --no-install-recommends -y asunder
# if dpkg -s jellyfin-${JF_VERSION_TYPE} &> /dev/null
# then
# echo "INFO ! jellyfin-${JF_VERSION_TYPE} installed ... moving on."
# else
# echo " "
# echo "WARNING ! jellyfin-${JF_VERSION_TYPE} not installed ... will install now."
# wget --no-cache --show-progress --progress=bar:force:noscroll "https://github.com/jellyfin/jellyfin-desktop/releases/download/v${JF_VERSION}/jellyfin-${JF_VERSION_TYPE}_${JF_VERSION}-${LINUX_VERSION}.deb" -O jellyfin-${JF_VERSION_TYPE}_${JF_VERSION}-${LINUX_VERSION}.deb
# dpkg -i jellyfin-${JF_VERSION_TYPE}_${JF_VERSION}-${LINUX_VERSION}.deb
# rm -fr jellyfin-${JF_VERSION_TYPE}_${JF_VERSION}-${LINUX_VERSION}.deb
# fi
# if [ -e /home/${USER}/krita-${KRITA_VERSION}-x86_64.AppImage ]
# then
# echo "INFO ! krita-${KRITA_VERSION}-x86_64.AppImage installed ... moving on."
# else
# echo " "
# echo "WARNING ! krita-${KRITA_VERSION}-x86_64.AppImage not installed ... will install now."
# rm -fr /home/${USER}/krita-*-x86_64.AppImage
# wget --no-cache --show-progress --progress=bar:force:noscroll "https://download.kde.org/stable/krita/${KRITA_VERSION}/krita-${KRITA_VERSION}-x86_64.AppImage" -O /home/${USER}/krita-${KRITA_VERSION}-x86_64.AppImage
# chown ${USER} /home/${USER}/krita-${KRITA_VERSION}-x86_64.AppImage
# chmod +x /home/${USER}/krita-${KRITA_VERSION}-x86_64.AppImage
# tee /home/${USER}/Desktop/krita.desktop <<-EOF
# [Desktop Entry]
# Type=Application
# Name=Krita
# Exec=/home/$USER/krita-$KRITA_VERSION-x86_64.AppImage
# Icon=cinnamon-panel-launcher
# Terminal=false
# EOF
# chown ${USER} /home/${USER}/Desktop/krita.desktop
# chmod +x /home/${USER}/Desktop/krita.desktop
# fi
# echo " "
# echo "INFO ! Moddeling/3D Printing stuff."
# echo " "
# apt-get install --no-install-recommends -y blender
# apt-get install --no-install-recommends -y freecad
# apt-get install --no-install-recommends -y cura
echo " "
echo "INFO ! Browsers."
echo " "
if dpkg -s librewolf &> /dev/null
then
echo "INFO ! librewolf installed ... moving on."
else
echo " "
echo "WARNING ! librewolf not installed ... will install now."
apt-get update && apt-get install --no-install-recommends -y extrepo
extrepo enable librewolf
apt-get update && apt-get install --no-install-recommends -y librewolf
fi
if dpkg -s brave-browser &> /dev/null
then
echo "INFO ! Brave installed ... moving on."
else
echo " "
echo "WARNING ! Brave not installed ... will install now."
curl -fsSLo /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] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
apt -y update
apt-get install --no-install-recommends -y brave-browser
fi
# echo " "
# echo "INFO ! Installing Video Wallpaper."
# echo " "
# git clone https://github.com/ghostlexly/gpu-video-wallpaper.git
# chmod +x /gpu-video-wallpaper/install.sh
# ./gpu-video-wallpaper/install.sh
# rm -fr /gpu-video-wallpaper
# echo " "
# echo "INFO ! Installing Flatpack."
# echo " "
# apt-get install --no-install-recommends -y flatpak
# apt-get install --no-install-recommends -y gnome-software-plugin-flatpak
# flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# echo " "
# echo "INFO ! Flatpack APP(S)."
# echo " "
# flatpak install flathub io.github.jeffshee.Hidamari
echo " "
echo "INFO ! Java"
echo " "
## Microsoft
# if dpkg -s msopenjdk-21 &> /dev/null
# then
# echo "INFO ! msopenjdk-21 installed ... moving on."
# else
# echo " "
# echo "WARNING ! msopenjdk-21 not installed ... will install now."
# apt-get update
# apt-get install --no-install-recommends -y wget lsb-release
# wget https://packages.microsoft.com/config/debian/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# dpkg -i packages-microsoft-prod.deb
# rm -fr packages-microsoft-prod.deb
# apt-get update
# apt-get install --no-install-recommends -y msopenjdk-21
# fi
## Open JDK
if dpkg -s openjdk-21-jdk-headless &> /dev/null
then
echo "INFO ! openjdk-21-jdk-headless installed ... moving on."
else
echo " "
echo "WARNING ! openjdk-21-jdk-headless not installed ... will install now."
apt-get install --no-install-recommends -y openjdk-21-jdk-headless
fi
## Open JRE
# if dpkg -s openjdk-21-jre-headless &> /dev/null
# then
# echo "INFO ! openjdk-21-jre-headless installed ... moving on."
# else
# echo " "
# echo "WARNING ! openjdk-21-jre-headless not installed ... will install now."
# apt-get install --no-install-recommends -y openjdk-21-jre-headless
# fi
echo " "
echo "INFO ! Installing Wine/Winetricks"
echo " "
if [ -e /usr/local/bin/winetricks ]
then
echo "INFO ! winetricks installed ... moving on."
else
echo " "
echo "WARNING ! winetricks not installed ... will install now."
apt-get install --no-install-recommends -y wine libwine cabextract
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
mv -u winetricks /usr/local/bin
fi
echo " "
echo "INFO ! Installing Steam."
echo " "
if dpkg -l | grep steam-launcher
then
echo "INFO ! Steam installed ... moving on."
else
echo " "
echo "WARNING ! Steam not installed ... will install now."
wget --no-cache --show-progress --progress=bar:force:noscroll "https://cdn.fastly.steamstatic.com/client/installer/steam.deb" -O steam.deb
dpkg -i steam.deb
rm -fr steam.deb
fi
echo " "
echo "INFO ! Installing Protonup-QT."
echo " "
if [ -e /home/${USER}/ProtonUp-Qt-${PROTON_VERSION}-x86_64.AppImage ]
then
echo "INFO ! ProtonUp-Qt-${PROTON_VERSION}-x86_64.AppImage installed ... moving on."
else
echo " "
echo "WARNING ! ProtonUp-Qt-${PROTON_VERSION}-x86_64.AppImage not installed ... will install now."
rm -fr /home/${USER}/ProtonUp-Qt-*-x86_64.AppImage
wget --no-cache --show-progress --progress=bar:force:noscroll "https://github.com/DavidoTek/ProtonUp-Qt/releases/download/v${PROTON_VERSION}/ProtonUp-Qt-${PROTON_VERSION}-x86_64.AppImage" -O /home/${USER}/ProtonUp-Qt-${PROTON_VERSION}-x86_64.AppImage
chown ${USER} /home/${USER}/ProtonUp-Qt-${PROTON_VERSION}-x86_64.AppImage
chmod +x /home/${USER}/ProtonUp-Qt-${PROTON_VERSION}-x86_64.AppImage
tee /home/${USER}/Desktop/ProtonUp-QT.desktop <<-EOF
[Desktop Entry]
Type=Application
Name=ProtonUp-QT
Exec=/home/$USER/ProtonUp-Qt-$PROTON_VERSION-x86_64.AppImage
Icon=cinnamon-panel-launcher
Terminal=false
EOF
chown ${USER} /home/${USER}/Desktop/ProtonUp-QT.desktop
chmod +x /home/${USER}/Desktop/ProtonUp-QT.desktop
fi
echo " "
echo "INFO ! Installing TeamSpeak."
echo " "
if [ -e /home/${USER}/TeamSpeak3-Client-linux_amd64 ]
then
echo "INFO ! TeamSpeak3-Client-linux_amd64 installed ... moving on."
else
echo "WARNING ! TeamSpeak3-Client-linux_amd64 not installed ... will install now."
wget --no-cache https://www.teamspeak.com/versions/client.json -O client.json
TS_VERSION_CHECK=$(cat client.json | grep version | head -1 | awk -F: '{print $4}' | sed 's/[",]//g' | sed "s/checksum//g")
TS_VERSION=${TS_VERSION_CHECK}
echo "Latest client version from Teamspeak:$TS_VERSION"
rm -fr client.json
echo "INFO ! Downloading and installing Teanspeak-client-${TS_VERSION}"
wget --no-cache https://files.teamspeak-services.com/releases/client/${TS_VERSION}/TeamSpeak3-Client-linux_amd64-${TS_VERSION}.run -O TeamSpeak3-Client-linux_amd64-${TS_VERSION}.run
chmod +x TeamSpeak3-Client-linux_amd64-${TS_VERSION}.run
./TeamSpeak3-Client-linux_amd64-${TS_VERSION}.run
rm -fr TeamSpeak3-Client-linux_amd64-${TS_VERSION}.run
chown -R ${USER} TeamSpeak3-Client-linux_amd64/
mv -u TeamSpeak3-Client-linux_amd64/ /home/${USER}
rm -fr TeamSpeak3-Client-linux_amd64/
tee /home/${USER}/Desktop/TeamSpeak.desktop <<-EOF
[Desktop Entry]
Type=Application
Name=TeamSpeak
Exec=/home/$USER/TeamSpeak3-Client-linux_amd64/ts3client_runscript.sh
Icon=teamspeak-client
Terminal=false
EOF
chown ${USER} /home/${USER}/Desktop/TeamSpeak.desktop
chmod +x /home/${USER}/Desktop/TeamSpeak.desktop
fi
echo " "
echo "INFO ! Removing games."
echo " "
apt-get remove -y gnome-2048 five-or-more four-in-a-row hitori gnome-klotski gnome-mahjongg gnome-nibbles gnome-robots gnome-sudoku gnome-taquin gnome-tetravex iagno lightsoff quadrapassel swell-foop tali
apt-get purge -y gnome-2048 five-or-more four-in-a-row hitori gnome-klotski gnome-mahjongg gnome-nibbles gnome-robots gnome-sudoku gnome-taquin gnome-tetravex iagno lightsoff quadrapassel swell-foop tali
# apt-get remove -y gnome-reversi
# apt-get purge -y gnome-reversi
echo " "
echo "INFO ! Removing other things."
echo " "
apt-get remove -y hexchat* pidgin* transmission* firefox-esr remmina kdeconnect-* x11vnc
apt-get purge -y hexchat* pidgin* transmission* firefox-esr remmina kdeconnect-* x11vnc
echo " "
echo "INFO ! Final cleanup."
echo " "
apt-get autoremove -y
apt-get autoclean -y
# echo " "
# echo "INFO ! Setting auto shutdown timer."
# echo " "
# tee /etc/systemd/system/shutdown.timer <<EOF
# [Unit]
# Description=Timer to shut down the system
# [Timer]
# OnCalendar=*-*-* 22:00
# Persistent=true
# [Install]
# WantedBy=timers.target
# EOF
# tee /etc/systemd/system/shutdown.service <<EOF
# [Unit]
# Description=Service to Shutdown the system, run by a timer
# [Service]
# Type=oneshot
# ExecStart=/sbin/shutdown now
# EOF
# systemctl daemon-reload
# systemctl enable --now shutdown.timer
# systemctl list-timers
echo " "
echo "INFO ! Done."
exit