Feat: Logging mit Abfrage.

This commit is contained in:
DragonSlayer_14 2025-03-25 11:24:06 +01:00
parent 5d723f8c26
commit 50468884d2
8 changed files with 460 additions and 379 deletions

View File

@ -1,16 +1,22 @@
#!/bin/bash #!/bin/bash
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird # Root-Rechte prüfen
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Bitte führen Sie das Skript mit Root-Rechten aus." echo "❌ Bitte als root ausführen!"
exit 1 exit 1
fi fi
apt update && apt upgrade -y apt update && apt upgrade -y
apt install -y git sudo apt install -y git sudo 7zip unrar unzip network-manager software-properties-common tree bluetooth wget curl
# Der Code, der eingefügt werden soll # sbin in Path
CONFIG_BLOCK='if groups | grep -q "\bsudo\b"; then read -p "❓ Soll sbin für sudo-Nutzer in den PATH aufgenommen werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
cat << 'EOF' > /etc/profile.d/sbin_in_path.sh
if groups | grep -q "\bsudo\b"; then
case ":$PATH:" in case ":$PATH:" in
*":/sbin:"*) ;; *":/sbin:"*) ;;
*) export PATH="$PATH:/sbin" ;; *) export PATH="$PATH:/sbin" ;;
@ -19,33 +25,40 @@ case ":$PATH:" in
*":/usr/sbin:"*) ;; *":/usr/sbin:"*) ;;
*) export PATH="$PATH:/usr/sbin" ;; *) export PATH="$PATH:/usr/sbin" ;;
esac esac
fi' fi
EOF
# Saubere Lösung über /etc/profile.d/ echo " sbin wurde zum PATH für sudo-Nutzer hinzugefügt."
echo "$CONFIG_BLOCK" >/etc/profile.d/custom_path.sh fi
# Sudo-Hinweis für bash.bashrc # sudo-Hinweis
SUDO_HINT_BLOCK='# sudo hint read -p "❓ Soll ein sudo-Hinweis hinzugefügt werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
cat << 'EOF' > /etc/profile.d/sudo_hint.sh
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
case " $(groups) " in *\ admin\ *|*\ sudo\ *) case " $(groups) " in *\ admin\ *|*\ sudo\ *)
if [ -x /usr/bin/sudo ]; then if [ -x /usr/bin/sudo ]; then
cat <<-EOF echo 'To run a command as administrator (user "root"), use "sudo <command>".'
To run a command as administrator (user "root"), use "sudo <command>". echo 'See "man sudo_root" for details.'
See "man sudo_root" for details.
EOF
fi fi
esac esac
fi' fi
EOF
# Prüfen, ob der sudo-Hinweis bereits existiert echo " sudo-Hinweis wurde hinzugefügt!"
if ! grep -Fxq "# sudo hint" /etc/bash.bashrc; then
echo -e "\n$SUDO_HINT_BLOCK" | tee -a /etc/bash.bashrc >/dev/null
echo "Sudo-Hinweis zur bash.bashrc hinzugefügt."
else
echo "Sudo-Hinweis ist bereits in bash.bashrc vorhanden."
fi fi
XDG_BLOCK='# /etc/profile.d/desktop_session_xdg_dirs.sh - Prepend a $DESKTOP_SESSION-named directory to $XDG_CONFIG_DIRS and $XDG_DATA_DIRS # sudo-Hinweis
read -p "❓ Sollen die XDG-Data-Dirs gesetzt werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
cat << 'EOF' > /etc/profile.d/xdg_dirs_desktop_session.sh
# /etc/profile.d/desktop_session_xdg_dirs.sh - Prepend a $DESKTOP_SESSION-named directory to $XDG_CONFIG_DIRS and $XDG_DATA_DIRS
DEFAULT_XDG_CONFIG_DIRS="/etc/xdg" DEFAULT_XDG_CONFIG_DIRS="/etc/xdg"
DEFAULT_XDG_DATA_DIRS="/usr/local/share/:/usr/share/" DEFAULT_XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
@ -70,77 +83,20 @@ if [ -n "$DESKTOP_SESSION" ]; then
export XDG_DATA_DIRS export XDG_DATA_DIRS
fi fi
fi fi
' EOF
echo "$XDG_BLOCK" >/etc/profile.d/xdg_dirs_desktop_session.sh echo " XDG-Data-Dirs wurden gesetzt!"
fi
echo "Passwort für sudo-Nutzer setzen..." chmod +x /etc/profile.d/*
# Passwort root
read -p "❓ Soll ein Passwort für root gesetzt werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
passwd root passwd root
# WLAN-Verbindung.
# Frage, ob eine WLAN-Verbindung aufgebaut werden soll
read -p "Möchten Sie eine WLAN-Verbindung aufbauen? (ja/nein): " RESPONSE
if [[ "$RESPONSE" == "ja" ]]; then
# Schritt 1: WLAN-Adapter automatisch ermitteln
echo "Ermittle verfügbare WLAN-Adapter..."
WLAN_ADAPTERS=$(iw dev | grep Interface | awk '{print $2}')
if [[ -z "$WLAN_ADAPTERS" ]]; then
echo "Es wurden keine WLAN-Adapter gefunden. Bitte stellen Sie sicher, dass ein WLAN-Adapter verfügbar ist."
exit 1
fi fi
# Wenn nur ein Adapter gefunden wurde, automatisch auswählen echo "✅ Abgeschlossen. Zum Anwenden der Änderungen bitte neu einloggen!"
if [[ $(echo "$WLAN_ADAPTERS" | wc -l) -eq 1 ]]; then
WLAN_INTERFACE="$WLAN_ADAPTERS"
echo "Gefundener WLAN-Adapter: $WLAN_INTERFACE"
else
# Wenn mehrere Adapter gefunden wurden, den Benutzer fragen
echo "Mehrere WLAN-Adapter gefunden:"
echo "$WLAN_ADAPTERS"
read -p "Bitte geben Sie den gewünschten WLAN-Adapter ein: " WLAN_INTERFACE
fi
# Schritt 2: Eingabe der SSID und des Passworts
read -p "Bitte geben Sie die SSID des Routers ein: " ROUTER_SSID
read -sp "Bitte geben Sie das Passwort für die SSID ein: " ROUTER_PASSWORD
echo
# Schritt 3: Erstellen der WPA-Konfigurationsdatei
CONFIG_FILE="/root/wpa.conf"
echo "Erstelle WPA-Konfigurationsdatei unter $CONFIG_FILE..."
wpa_passphrase "$ROUTER_SSID" "$ROUTER_PASSWORD" > "$CONFIG_FILE"
# Hinweis für Sonderzeichen in der SSID
echo "Hinweis: Wenn Ihre SSID Sonderzeichen enthält, bearbeiten Sie die Datei $CONFIG_FILE manuell."
# Schritt 4: Verbindung mit wpa_supplicant aufbauen
echo "Starte wpa_supplicant..."
wpa_supplicant -B -i "$WLAN_INTERFACE" -c "$CONFIG_FILE"
# Schritt 5: Überprüfen, ob die Verbindung hergestellt wurde
echo "Überprüfe die Verbindung..."
sleep 5 # Wartezeit, um die Verbindung aufzubauen
IW_OUTPUT=$(iw dev "$WLAN_INTERFACE" link)
if echo "$IW_OUTPUT" | grep -q "Connected to"; then
echo "Verbindung erfolgreich hergestellt!"
echo "$IW_OUTPUT"
else
echo "Verbindung konnte nicht hergestellt werden. Bitte überprüfen Sie die Konfiguration."
exit 1
fi
# Schritt 6: IP-Adresse und Netzwerkkonfiguration über DHCP abrufen
echo "Hole IP-Adresse und Netzwerkkonfiguration über DHCP..."
dhcpcd
echo "Die WPA-verschlüsselte Verbindung wurde erfolgreich hergestellt!"
else
echo "Abbruch. Es wird keine WLAN-Verbindung aufgebaut."
fi
echo "Fertig! Das System wird neugestartet."
reboot

View File

@ -4,7 +4,7 @@ set -e # Skript bricht bei Fehlern ab
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird # Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
if [[ $EUID -eq 0 ]]; then if [[ $EUID -eq 0 ]]; then
echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird." echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird."
exit 1 exit 1
fi fi
@ -237,9 +237,57 @@ flatpak install flathub org.gnome.FileRoller -y
# Obfuscate # Obfuscate
flatpak install flathub com.belmoussaoui.Obfuscate -y flatpak install flathub com.belmoussaoui.Obfuscate -y
# Flatseal
flatpak install com.github.tchx84.Flatseal -y
# VeraCrypt installieren
read -p "❓ Soll VeraCrypt installiert werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$anwser" == "y" ]]; then
echo "🔄 Installiere VeraCrypt..." echo "🔄 Installiere VeraCrypt..."
sudo add-apt-repository ppa:unit193/encryption -y sudo add-apt-repository ppa:unit193/encryption -y
sudo apt update sudo apt update
sudo apt install -y veracrypt sudo apt install -y veracrypt
fi
# Webmin installieren
read -p "❓ Soll webmin installiert werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$anwser" == "y" ]]; then
curl -o /tmp/webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
sudo sh /tmp/webmin-setup-repo.sh
sudo apt install webmin -y --install-recommends
fi
# Waydroid installieren
read -p "❓ Soll Waydroid installiert werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$anwser" == "y" ]]; then
sudo apt install curl ca-certificates -y
curl -s https://repo.waydro.id | sudo bash -s -- -s noble
sudo apt install waydroid -y
sudo ufw allow 53
sudo ufw allow 67
sudo ufw default allow FORWARD
sudo systemctl enable --now waydroid-container
sudo cat << 'EOF' | sudo tee /etc/profile.d/hide_waydroid_apps.sh > /dev/null
for app in ~/.local/share/applications/waydroid.*.desktop; do
grep -q NoDisplay $app || sed '/^Icon=/a NoDisplay=true' -i $app
done
EOF
sudo chmod +x /etc/profile.d/*
echo "⚠️ Beachte, dass in Portmaster unter 'Network Noise' die Ports 53 und 67 komplett freigegeben sind!"
fi
echo "✅ Alle Programme wurden erfolgreich installiert!" echo "✅ Alle Programme wurden erfolgreich installiert!"

View File

@ -2,25 +2,30 @@
# Root-Rechte prüfen # Root-Rechte prüfen
if [ "$(id -u)" -eq 0 ]; then if [ "$(id -u)" -eq 0 ]; then
echo "Bitte nicht als Root ausführen! Das Skript nutzt sudo, falls nötig." echo "❌ Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
exit 1 exit 1
fi fi
# Verzeichnis setzen # Verzeichnis setzen
REPO_DIR="$HOME/Linux-Active-Directory-join-script" REPO_DIR="/tmp/Linux-Active-Directory-join-script"
# Repository klonen, falls es noch nicht existiert # Repository klonen, falls es noch nicht existiert
if [ -d "$REPO_DIR" ]; then if [ -d "$REPO_DIR" ]; then
echo "Repository existiert bereits. Überspringe das Klonen." echo " Repository existiert bereits. Überspringe das Klonen."
else else
echo "Klonen des Repositories..." echo " Klonen des Repositories..."
git clone https://gitea.creative-dragonslayer.de/DragonSlayer_14/Linux-Active-Directory-join-script.git "$REPO_DIR" git clone https://gitea.creative-dragonslayer.de/DragonSlayer_14/Linux-Active-Directory-join-script.git "$REPO_DIR"
fi fi
# In das Verzeichnis wechseln # In das Verzeichnis wechseln
cd "$REPO_DIR" || { echo "Fehler: Konnte nicht in das Verzeichnis wechseln!"; exit 1; } cd "$REPO_DIR" || { echo "Fehler: Konnte nicht in das Verzeichnis wechseln!"; exit 1; }
# AD-Skript ausführen # AD-Skript ausführen
echo "Starte Active Directory Verbindung..." if [ -f "ADconnection.sh" ]; then
sudo bash ADconnection.sh chmod +x ADconnection.sh
echo " Starte Active Directory setup mit: ./ADconnection.sh"
echo "⚠️ Achtung! Das Skript erkennt Tuxedo nicht. Passe es an, dass der ADJoin von Ubuntu ausgeführt wird!"
else
echo "❌ Fehler: ADconnection.sh nicht gefunden!"
exit 1
fi

View File

@ -2,8 +2,13 @@
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird # Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
if [[ $EUID -eq 0 ]]; then if [[ $EUID -eq 0 ]]; then
echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird." echo "❌ Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
exit 1 exit 1
fi fi
DIR = "/tmp/setup-hyprland"
mkdir -p $DIR
cd $DIR
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Ubuntu-Hyprland/24.04/auto-install.sh) sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Ubuntu-Hyprland/24.04/auto-install.sh)

View File

@ -2,19 +2,24 @@
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird # Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
if [[ $EUID -ne 0 ]]; then if [[ $EUID -ne 0 ]]; then
echo "Dieses Skript muss als root ausgeführt werden." echo "❌ Bitte als root ausführen!"
exit 1 exit 1
fi fi
# Tatsächlichen Benutzer ermitteln (nicht root) # Tatsächlichen Benutzer ermitteln (nicht root)
if [[ -z "$SUDO_USER" || "$SUDO_USER" == "root" ]]; then if [[ -z "$SUDO_USER" || "$SUDO_USER" == "root" ]]; then
echo "Fehler: Das Skript muss mit 'sudo' von einem normalen Benutzer ausgeführt werden." echo "Fehler: Das Skript muss mit 'sudo' von einem normalen Benutzer ausgeführt werden."
exit 1 exit 1
fi fi
USER_NAME="$SUDO_USER" USER_NAME="$SUDO_USER"
USER_HOME=$(eval echo ~$USER_NAME) USER_HOME=$(eval echo ~$USER_NAME)
read -p "❓ Soll die shell für $USER_NAME auf ZSH gesetzt werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# Eintrag aus getent passwd holen # Eintrag aus getent passwd holen
USER_ENTRY=$(getent passwd "$USER_NAME") USER_ENTRY=$(getent passwd "$USER_NAME")
@ -24,12 +29,12 @@ cp /etc/passwd /etc/passwd.bak
if grep -q "^$USER_NAME:" /etc/passwd; then if grep -q "^$USER_NAME:" /etc/passwd; then
# Existierenden Eintrag aktualisieren # Existierenden Eintrag aktualisieren
sed -i "/^$USER_NAME:/s|[^:]*$|/bin/zsh|" /etc/passwd sed -i "/^$USER_NAME:/s|[^:]*$|/bin/zsh|" /etc/passwd
echo "Shell für $USER_NAME wurde auf zsh aktualisiert." echo " Shell für $USER_NAME wurde auf zsh aktualisiert."
else else
# Neuen Eintrag hinzufügen # Neuen Eintrag hinzufügen
UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }') UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }')
echo "$UPDATED_ENTRY" >>/etc/passwd echo "$UPDATED_ENTRY" >>/etc/passwd
echo "Eintrag für $USER_NAME wurde in /etc/passwd geschrieben mit zsh als Shell." echo " Eintrag für $USER_NAME wurde in /etc/passwd geschrieben mit zsh als Shell."
fi fi
# Repository klonen # Repository klonen
@ -84,5 +89,6 @@ if [[ -f "$ZSHRC_FILE" ]]; then
else else
echo "Die Datei $ZSHRC_FILE wurde nicht gefunden." echo "Die Datei $ZSHRC_FILE wurde nicht gefunden."
fi fi
fi
echo "✅ Installation abgeschlossen!" echo "✅ Shell wurde erfolgreich auf ZSH gesetzt! Zum Anwenden, neue Terminal-Sitzung öffnen."

View File

@ -2,13 +2,18 @@
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird # Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
if [[ $EUID -ne 0 ]]; then if [[ $EUID -ne 0 ]]; then
echo "Dieses Skript muss als root ausgeführt werden." echo "Dieses Skript muss als root ausgeführt werden."
exit 1 exit 1
fi fi
read -p "❓ Soll SDDM so konfiguriert werden, dass Domänenbenutzer angezeigt werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# SDDM-Konfigurationsdatei in sddm.conf.d erstellen # SDDM-Konfigurationsdatei in sddm.conf.d erstellen
SDDM_CONF_DIR="/etc/sddm.conf.d" SDDM_CONF_DIR="/etc/sddm.conf.d"
SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/custom.conf" SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/ad_login.conf"
mkdir -p "$SDDM_CONF_DIR" mkdir -p "$SDDM_CONF_DIR"
# Bestehende Konfiguration sichern und anpassen # Bestehende Konfiguration sichern und anpassen
@ -16,13 +21,13 @@ if [[ -f "$SDDM_CUSTOM_CONF" ]]; then
sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF" sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF"
sed -i '/MinimumUid/d' "$SDDM_CUSTOM_CONF" sed -i '/MinimumUid/d' "$SDDM_CUSTOM_CONF"
sed -i '/HideShells/d' "$SDDM_CUSTOM_CONF" sed -i '/HideShells/d' "$SDDM_CUSTOM_CONF"
echo "MaximumUid=9999999999" >>"$SDDM_CUSTOM_CONF" echo "MaximumUid=99999999999999999999" >>"$SDDM_CUSTOM_CONF"
echo "MinimumUid=1000" >>"$SDDM_CUSTOM_CONF" echo "MinimumUid=1000" >>"$SDDM_CUSTOM_CONF"
echo "HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin" >>"$SDDM_CUSTOM_CONF" echo "HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin" >>"$SDDM_CUSTOM_CONF"
else else
cat <<EOF >"$SDDM_CUSTOM_CONF" cat <<EOF >"$SDDM_CUSTOM_CONF"
[Users] [Users]
MaximumUid=9999999999 MaximumUid=999999999999999999
MinimumUid=1000 MinimumUid=1000
HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin
EOF EOF
@ -43,5 +48,6 @@ fi
# SSSD und SDDM neu starten # SSSD und SDDM neu starten
systemctl restart sssd systemctl restart sssd
systemctl restart sddm systemctl restart sddm
fi
echo "SDDM wurde so konfiguriert, dass lokale und bereits angemeldete Domänenbenutzer angezeigt werden." echo "✅ Konfiguration von SDDM und sssd abgeschlossen!"

View File

@ -2,9 +2,9 @@
set -e # Skript bricht bei Fehlern ab set -e # Skript bricht bei Fehlern ab
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird # Root-Rechte prüfen
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" -eq 0 ]; then
echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird." echo "❌ Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
exit 1 exit 1
fi fi
@ -12,30 +12,57 @@ fi
echo "🔄 System wird aktualisiert..." echo "🔄 System wird aktualisiert..."
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
# Unnötige Pakete entfernen
read -p "❓ Sollen unnötige KDE-Pakete entfernt werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
echo "🔄 Entferne Pakete..." echo "🔄 Entferne Pakete..."
sudo apt remove -y kmahjongg kmines kpat ksudoku nextcloud-desktop skanlite thunderbird virtualbox
fi
sudo apt remove -y firefox kmahjongg kmines kpat ksudoku nextcloud-desktop skanlite thunderbird virtualbox echo " Firewall (ufw) wird installiert..."
sudo apt install -y ufw
sudo ufw
echo "🔄 Installiere Pakete..." echo " Virenschutz (clamav) wird installiert..."
sudo apt install -y enable clamav clamav-freshclam clamav-docs clamav-daemon
sudo apt update && sudo apt install -y flatpak neovim ufw rfkill xdg-user-dirs rsync maliit-keyboard ffmpeg printer-driver-* clamav clamav-freshclam clamav-docs clamav-daemon bleachbit network-manager-gnome echo " Installiere Flatpak..."
sudo ufw enable sudo apt install -y flatpak
# Flatpak Flathub-Repo hinzufügen
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
echo "🔄 Installiere nützliche Pakete..."
sudo apt install -y neovim rfkill xdg-user-dirs rsync maliit-keyboard ffmpeg printer-driver-* bleachbit network-manager-gnome
# Portmaster installieren # Portmaster installieren
read -p "❓ Soll Portmaster installiert werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
wget -O /tmp/portmaster-installer.deb https://updates.safing.io/latest/linux_amd64/packages/portmaster-installer.deb wget -O /tmp/portmaster-installer.deb https://updates.safing.io/latest/linux_amd64/packages/portmaster-installer.deb
sudo apt install -y /tmp/portmaster-installer.deb sudo apt install -y /tmp/portmaster-installer.deb
rm /tmp/portmaster-installer.deb rm /tmp/portmaster-installer.deb
echo "✅ Portmaster wurde installiert!"
fi
# Waterfox-Installation # Waterfox-Installation
read -p "❓ Soll Firefox durch Waterfox ersetzt werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
echo "🌍 Waterfox wird installiert..." echo "🌍 Waterfox wird installiert..."
sudo apt remove -y firefox
sudo install -d -m 0755 /etc/apt/keyrings sudo install -d -m 0755 /etc/apt/keyrings
echo 'deb http://download.opensuse.org/repositories/home:/hawkeye116477:/waterfox/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/home:hawkeye116477:waterfox.list echo 'deb http://download.opensuse.org/repositories/home:/hawkeye116477:/waterfox/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/home:hawkeye116477:waterfox.list
curl -fsSL https://download.opensuse.org/repositories/home:hawkeye116477:waterfox/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_hawkeye116477_waterfox.gpg >/dev/null curl -fsSL https://download.opensuse.org/repositories/home:hawkeye116477:waterfox/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_hawkeye116477_waterfox.gpg >/dev/null
sudo apt update && sudo apt install -y waterfox sudo apt update && sudo apt install -y waterfox
echo "✅ Waterfox wurde installiert!"
# Waterfox als Standardbrowser setzen # Waterfox als Standardbrowser setzen
echo "🌍 Setze Waterfox als Standardbrowser..." echo "🌍 Setze Waterfox als Standardbrowser..."
@ -51,7 +78,14 @@ if command -v xdg-settings >/dev/null 2>&1; then
else else
echo "❌ 'xdg-settings' ist nicht verfügbar. Bitte manuell den Standardbrowser setzen." echo "❌ 'xdg-settings' ist nicht verfügbar. Bitte manuell den Standardbrowser setzen."
fi fi
fi
# Hyprland Anpassungen
read -p "❓ Sollen Anpassungen an den Hyprland-Configs vorgenomen werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# Hyprland User Bindings # Hyprland User Bindings
HYPR_CONFIG_DIR="$HOME/.config/hypr/UserConfigs" HYPR_CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
mkdir -p "$HYPR_CONFIG_DIR" mkdir -p "$HYPR_CONFIG_DIR"
@ -93,6 +127,7 @@ if [ -f "$CONFIG_FILE" ]; then
else else
echo "Die Datei $CONFIG_FILE existiert nicht." echo "Die Datei $CONFIG_FILE existiert nicht."
fi fi
fi
# Standardvorlagen ablegen # Standardvorlagen ablegen
echo "📂 Standardvorlagen werden im Vorlagen-Ordner erstellt..." echo "📂 Standardvorlagen werden im Vorlagen-Ordner erstellt..."
@ -124,6 +159,12 @@ TARGET_DIR="$HOME/.config/hypr/UserScripts"
CONFIG_DIR="$HOME/.config/hypr/UserConfigs" CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
USER_KEYBINDS_FILE="$CONFIG_DIR/UserKeybinds.conf" # Definition an der richtigen Stelle USER_KEYBINDS_FILE="$CONFIG_DIR/UserKeybinds.conf" # Definition an der richtigen Stelle
read -p "❓ Sollen Anpassungen an den Users-Dirs in den Hyprland-Skripten vorgenommen werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# Bereinige fälschlicherweise kopierte Dateien # Bereinige fälschlicherweise kopierte Dateien
echo "📂 Überprüfe und bereinige Dateien im Verzeichnis $TARGET_DIR..." echo "📂 Überprüfe und bereinige Dateien im Verzeichnis $TARGET_DIR..."
if [[ -d "$TARGET_DIR" ]]; then if [[ -d "$TARGET_DIR" ]]; then
@ -228,5 +269,6 @@ if [ -d "$(xdg-user-dir)/Pictures" ]; then
else else
echo "📂 Der Ordner $(xdg-user-dir)/Pictures existiert nicht. Kein Verschieben notwendig." echo "📂 Der Ordner $(xdg-user-dir)/Pictures existiert nicht. Kein Verschieben notwendig."
fi fi
fi
echo "✅ Skript erfolgreich ausgeführt!" echo "✅ Skript erfolgreich ausgeführt!"

View File

@ -2,7 +2,7 @@
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird # Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
if [[ $EUID -ne 0 ]]; then if [[ $EUID -ne 0 ]]; then
echo "Dieses Skript muss als root ausgeführt werden." echo "Dieses Skript muss als root ausgeführt werden."
exit 1 exit 1
fi fi
@ -10,10 +10,23 @@ fi
apt update && apt upgrade -y apt update && apt upgrade -y
# Steam-Installation # Steam-Installation
read -p "❓ Soll Steam installiert werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
dpkg --add-architecture i386 dpkg --add-architecture i386
apt update apt update
apt install -y wget curl apt install -y steam
fi
apt install -y steam lutris # Lutris-Installation
read -p "❓ Soll Lutris installiert werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
echo "✅ Installation von Steam und Lutris abgeschlossen!" if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
apt install -y lutris
fi
echo "✅ Skript abgeschlossen!"