diff --git a/debian.sh b/debian.sh index f75f4aa..b62b4df 100755 --- a/debian.sh +++ b/debian.sh @@ -43,14 +43,15 @@ DISK_PASSWORD='123456' COMPRESSION='compress=zstd:10' AUTO_DECRYPT='True' FLATPAKS+=(io.exodus.Exodus) +DESKTOP="KDE" #Packages -BASE_PACKAGES=" neofetch vlc nextcloud-desktop linux-image-amd64 grub-efi efibootmgr plymouth plymouth-themes duperemove btrfs-compsize btrfs-progs cryptsetup-initramfs linux-headers-amd64 firmware-iwlwifi firmware-linux firmware-linux-nonfree podman-compose podman-toolbox cockpit cockpit-podman packagekit cockpit-packagekit cockpit-storaged shfmt aardvark-dns power-profiles-daemon iptables-persistent resolvconf wireguard wireguard-tools nmap libsecret-tools libglu1-mesa preload flatpak powertop acpi btop inotify-tools debootstrap cups apt-transport-https samba samba-common nfs-common nfs-kernel-server linux-cpupower locales zram-tools acpid podman ghostscript cifs-utils ntp vim-airline rsync screen base udev git network-manager cryptsetup network-manager-openvpn ntp screen docbook-xsl alsa-utils sysstat fuse3 build-essential unzip bash-completion parted dosfstools wget curl " -DESKTOP_ENV=" krita libdbus-glib-1-2 calligra print-manager plasma-discover-backend-flatpak kwin-addons kde-standard konsole dolphin kde-spectacle " -#DESKTOP_ENV=" gnome gnome-shell-extension-weather gnome-shell-extension-dashtodock gnome-shell-extension-appindicator gnome-shell-extension-gsconnect gnome-tweaks synaptic gimp " -SHARED_DESKTOP_APPS=" handbrake yt-dlp " -VIRTUALIZATION=" virt-manager qemu-system libvirt-daemon-system ovmf cockpit-machines" -PACKAGES=$BASE_PACKAGES$SHARED_DESKTOP_APPS$DESKTOP_ENV +BASE_PACKAGES=" neofetch linux-image-amd64 grub-efi efibootmgr plymouth plymouth-themes duperemove btrfs-compsize btrfs-progs cryptsetup-initramfs linux-headers-amd64 firmware-iwlwifi firmware-linux firmware-linux-nonfree podman-compose podman-toolbox cockpit cockpit-podman packagekit cockpit-packagekit cockpit-storaged shfmt aardvark-dns power-profiles-daemon iptables-persistent resolvconf wireguard wireguard-tools nmap libsecret-tools libglu1-mesa preload flatpak powertop acpi btop inotify-tools debootstrap cups apt-transport-https samba samba-common nfs-common nfs-kernel-server linux-cpupower locales zram-tools acpid podman ghostscript cifs-utils ntp vim-airline rsync screen base udev git network-manager cryptsetup network-manager-openvpn ntp screen docbook-xsl alsa-utils sysstat fuse3 build-essential unzip bash-completion parted dosfstools wget curl " +KDE_DESKTOP_ENV=" krita libdbus-glib-1-2 calligra print-manager plasma-discover-backend-flatpak kwin-addons kde-standard konsole dolphin kde-spectacle " +GNOME_DESKTOP_ENV=" gnome gnome-shell-extension-weather gnome-shell-extension-dashtodock gnome-shell-extension-appindicator gnome-shell-extension-gsconnect gnome-tweaks synaptic gimp " +SHARED_DESKTOP_APPS=" handbrake vlc nextcloud-desktop yt-dlp " +#VIRTUALIZATION=" virt-manager qemu-system libvirt-daemon-system ovmf cockpit-machines" +PACKAGES="" TAR_EXCLUDES="--exclude=/.snapshots --exclude=/snapshots --exclude=/var/backups --exclude=/volumes/* --exclude=/mnt/* --exclude=/var/tmp/* --exclude=/tmp/* --exclude=/raid/* --exclude=/root/* --exclude=/var/cache/apt/archives/* --exclude=/proc/* --exclude=/.snapshots/* --exclude=/var/lib/libvirt/* --exclude=/dev/* --exclude=/sys/* --exclude=/home/* --exclude=/var/lib/postgresql --exclude=/var/lib/containers" installVPN() { @@ -73,13 +74,15 @@ partitionDetection auto_login() { - if [[ $DESKTOP_ENV == *"plasma"* ]]; then + if [ -f "$TARGET/usr/bin/sddm" ]; then mkdir -p $TARGET/etc/sddm.conf.d echo "[Autologin]" >$TARGET/etc/sddm.conf.d/autologin echo "User=$USER" >>$TARGET/etc/sddm.conf.d/autologin echo "Session=plasma.desktop" >>$TARGET/etc/sddm.conf.d/autologin echo "Relogin=false" >>$TARGET/etc/sddm.conf.d/autologin - else + fi + + if [ -f "$TARGET/usr/bin/gdm3" ]; then sed -i '/daemon/a AutomaticLoginEnable=True' $TARGET/etc/gdm3/daemon.conf sed -i "/daemon/a AutomaticLogin = $USER" $TARGET/etc/gdm3/daemon.conf fi @@ -290,17 +293,19 @@ desktop() { systemctl disable --now $i done - if [[ $DESKTOP_ENV == *"plasma"* ]]; then + if [ -f "/usr/bin/sddm" ]; then echo echo "Performing KDE Bloat Removal" echo - BLOAT_APPS+=( dragonplayer akregator kate konqueror kdeconnect kdepim* ) + BLOAT_APPS+=(dragonplayer akregator kate konqueror kdeconnect kdepim*) for i in "${BLOAT_APPS[@]}"; do echo "Removing: $i" apt remove --purge -y $i apt autoremove -y done - else + fi + + if [ -f "/usr/bin/gdm3" ]; then echo echo "Performing GNOME Bloat Removal" echo @@ -310,7 +315,7 @@ desktop() { chmod -x /usr/libexec/evolution-data-server/evolution-alarm-notify mv /usr/lib/evolution-data-server /usr/lib/evolution-data-server-disabled mv /usr/lib/evolution /usr/lib/evolution-disabled - BLOAT_APPS+=( gnome-calendar evolution gnome-music four-in-a-row iagno aisleriot gnome-mahjongg gnome-software lightsoff zutty gnome-taquin gnome-tetravex simple-scan gnome-text-editor gnome-chess gnome-contacts gnome-clocks unattended-upgrades apparmor gnome-sound-recorder hitori shotwell quadrapassel quadrapassel gnome-sudoku swell-foop gnome-maps transmission-gtk cheese libgnome-games-support-common chromium chromium-common chromium-sandbox epiphany-browser epiphany-browser-data) + BLOAT_APPS+=(gnome-calendar evolution gnome-music four-in-a-row iagno aisleriot gnome-mahjongg gnome-software lightsoff zutty gnome-taquin gnome-tetravex simple-scan gnome-text-editor gnome-chess gnome-contacts gnome-clocks unattended-upgrades apparmor gnome-sound-recorder hitori shotwell quadrapassel quadrapassel gnome-sudoku swell-foop gnome-maps transmission-gtk cheese libgnome-games-support-common chromium chromium-common chromium-sandbox epiphany-browser epiphany-browser-data) for i in "${BLOAT_APPS[@]}"; do echo "Removing: $i" apt remove --purge -y $i @@ -422,31 +427,47 @@ installCodium() { apt install codium -y } -installBrowser() { - #Brave - #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" | tee /etc/apt/sources.list.d/brave-browser-release.list - #apt update - #apt install brave-browser -y +installFirefoxNightly() { + cd /tmp + rm -rf /opt/firefox-nightly + apt remove firefox-esr -y + apt install libdbus-glib-1-2 -y - #apt install -y firefox-esr + #Firefox Nightly + wget -O /tmp/firefox.tar.gz "https://download.mozilla.org/?product=firefox-nightly-latest-ssl&os=linux64&lang=en-US" + tar xf /tmp/firefox.tar.gz -C /tmp/ + mv /tmp/firefox /opt/firefox-nightly + rm -rf /tmp/firefox* - #Firefox + echo "[Desktop Entry]" >/usr/share/applications/firefox-nightly.desktop + echo "Name=Firefox Nightly" >>/usr/share/applications/firefox-nightly.desktop + echo "Comment=Web Browser" >>/usr/share/applications/firefox-nightly.desktop + echo "Exec=/opt/firefox-nightly/firefox %u" >>/usr/share/applications/firefox-nightly.desktop + echo "Terminal=false" >>/usr/share/applications/firefox-nightly.desktop + echo "Type=Application" >>/usr/share/applications/firefox-nightly.desktop + echo "Icon=/opt/firefox-nightly/browser/chrome/icons/default/default128.png" >>/usr/share/applications/firefox-nightly.desktop + echo "Categories=Network;WebBrowser;" >>/usr/share/applications/firefox-nightly.desktop + echo "MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;" >>/usr/share/applications/firefox.desktop + echo "StartupNotify=true" >>/usr/share/applications/firefox-nightly.desktop + echo "Actions=Private;" >>/usr/share/applications/firefox-nightly.desktop + echo "[Desktop Action Private]" >>/usr/share/applications/firefox-nightly.desktop + echo "Exec=/opt/firefox-nightly/firefox --private-window %u" >>/usr/share/applications/firefox-nightly.desktop + echo "Name=Open in private mode" >>/usr/share/applications/firefox-nightly.desktop +} + +installFirefox() { cd /tmp rm -rf /opt/firefox apt remove firefox-esr -y - + apt install libdbus-glib-1-2 -y + #Firefox Stable - #wget -O /tmp/firefox.tar.gz "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" - #tar xvf /tmp/firefox.tar.gz -C /opt/ - - #Firefox Nightly - wget -O /tmp/firefox.tar.gz "https://download.mozilla.org/?product=firefox-nightly-latest-ssl&os=linux64&lang=en-US" - tar xvf /tmp/firefox.tar.gz -C /opt/ + wget -O /tmp/firefox.tar.gz "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" + tar xf /tmp/firefox.tar.gz -C /opt/ unlink /usr/bin/firefox ln -s /opt/firefox/firefox /usr/bin/firefox - - + rm -rf /tmp/firefox* + #Desktop/App Icon echo "[Desktop Entry]" >/usr/share/applications/firefox.desktop echo "Name=Firefox Stable" >>/usr/share/applications/firefox.desktop @@ -462,6 +483,20 @@ installBrowser() { echo "[Desktop Action Private]" >>/usr/share/applications/firefox.desktop echo "Exec=/opt/firefox/firefox --private-window %u" >>/usr/share/applications/firefox.desktop echo "Name=Open in private mode" >>/usr/share/applications/firefox.desktop +} + +installBrowser() { + #Brave + #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" | tee /etc/apt/sources.list.d/brave-browser-release.list + #apt update + #apt install brave-browser -y + + #apt install -y firefox-esr + + #Firefox + #installFirefox + installFirefoxNightly #Vivaldi #curl -fsSL https://repo.vivaldi.com/archive/linux_signing_key.pub | gpg --dearmor | tee /usr/share/keyrings/vivaldi.gpg >/dev/null @@ -656,6 +691,12 @@ menu() { echo echo read -p 'Debian Version: ' -e -i "stable" DEBIAN_RELEASE + read -p 'KDE or GNOME: ' -e -i "KDE" DESKTOP + if [[ $DESKTOP = *KDE* ]]; then + PACKAGES=$BASE_PACKAGES$SHARED_DESKTOP_APPS$KDE_DESKTOP_ENV + else + PACKAGES=$BASE_PACKAGES$SHARED_DESKTOP_APPS$GNOME_DESKTOP_ENV + fi set-devices install "$HARD_DISK" elif [[ $choice = 2 ]]; then @@ -693,6 +734,12 @@ menu() { read -p 'Location to Store Image: ' -e -i "/home/$USER" image_directory read -p 'Image File Name: ' -e -i "debian" ROOT_NAME read -p 'Debian Version: ' -e -i "stable" DEBIAN_RELEASE + read -p 'KDE or GNOME: ' -e -i "KDE" DESKTOP + if [[ $DESKTOP = *KDE* ]]; then + PACKAGES=$BASE_PACKAGES$SHARED_DESKTOP_APPS$KDE_DESKTOP_ENV + else + PACKAGES=$BASE_PACKAGES$SHARED_DESKTOP_APPS$GNOME_DESKTOP_ENV + fi ROOT_MAPPER_NAME="/dev/foo" make-image "$image_directory" elif [[ $choice = 5 ]]; then