Author SHA1 Message Date
admin-dragonslayer_14 a1635cc40e feat: Fügt Virenschutz hinzu. 2025-03-13 08:56:51 +01:00
admin-dragonslayer_14 dfaac4730e Feat: Setzt an andere Stellen. 2025-03-10 18:38:25 +01:00
admin-dragonslayer_14 68c2534576 Feat: Fügt tuxedo-control-center zum Autostart hinzu. 2025-03-10 18:35:52 +01:00
admin-dragonslayer_14 673849b3c2 Feat: Entfernt weitere Pakete von der Deinstallation. 2025-03-10 17:45:41 +01:00
admin-dragonslayer_14 515e978581 Feat: Passt Pakete an, die entfernt werden. 2025-03-10 17:18:06 +01:00
admin-dragonslayer_14 320060fa65 Feat: Entferne Grub-Config Anpassung. 2025-03-10 17:07:56 +01:00
admin-dragonslayer_14 7193e5cff3 Feat: Fügt ppa für VeraCrypt autoamtisch hinzu 2025-03-10 17:07:14 +01:00
admin-dragonslayer_14 1da25afe66 Ref: Entfernt unnötige Dinge. 2025-03-10 16:34:55 +01:00
admin-dragonslayer_14 f7b1bd93a1 Feat: Manuelles setzen des Plymouth Themes. 2025-03-10 16:26:00 +01:00
admin-dragonslayer_14 fe4d7f79be Feat: Fügt ein -y hinzu. 2025-03-10 15:49:52 +01:00
admin-dragonslayer_14 b438ae765b Feat: Fügt das isntallieren von Plymouth noch an einer anderes Stelle hinzu. 2025-03-10 15:39:06 +01:00
admin-dragonslayer_14 e68a2a312d Fix: Umbrüche bei neofetch und nur einfügen, wenn nicht vorhanden 2025-03-10 15:30:33 +01:00
admin-dragonslayer_14 8bfe82c40a Fix: Verwendet den richtigen User. 2025-03-10 15:27:44 +01:00
admin-dragonslayer_14 f9f32faa1b Feat: Ersetzt fastfetch mit neofetch. 2025-03-10 15:24:11 +01:00
admin-dragonslayer_14 badffdf682 Fix: Entferne das entfernen von Paketen. 2025-03-10 14:27:30 +01:00
admin-dragonslayer_14 10c3de710f Fix: Konfiguriert Tastatur. 2025-03-10 13:55:39 +01:00
admin-dragonslayer_14 75e39c2a4d Feat: Passt Pakete an. 2025-03-10 12:47:36 +01:00
admin-dragonslayer_14 84f7909292 Fix: Entfernt ein Paket. 2025-03-10 11:36:48 +01:00
admin-dragonslayer_14 d307b0a2f2 Fix: Tastaturpakete on hold setzen. 2025-03-10 11:31:58 +01:00
admin-dragonslayer_14 beccffac1e Fix: Passt install an. 2025-03-10 10:13:53 +01:00
admin-dragonslayer_14 4ca16ec273 Fix: Passt Berechtigungen an. 2025-03-10 10:02:32 +01:00
admin-dragonslayer_14 798629e756 Feat: Fügt Pakete zur Installation hinzu. 2025-03-10 09:41:33 +01:00
admin-dragonslayer_14 e9ac090a97 Ref: Entfernen von grafischer Benutzeroberfläche passiert an anderer Stelle. 2025-03-10 09:41:20 +01:00
admin-dragonslayer_14 84273f27df Feat: Entfernt grafische Oberfläche und etabliert eine Internetverbindung- 2025-03-10 09:40:03 +01:00
admin-dragonslayer_14 d991228c6b Feat: Passt die Debian 12 bookworm Install-Skripte für Tuxedo OS an. 2025-03-09 23:31:50 +01:00
DragonSlayer_14 eefe740b81 Merge pull request 'debian_12_bookworm' (#3) from debian_12_bookworm into tuxedo_os
Reviewed-on: DragonSlayer_14/Setup#3
2025-03-09 22:27:49 +01:00
DragonSlayer_14 b7228cdb25 Merge pull request 'Ref: Passt VeraCrypt-installation an.' (#2) from debian_12_bookworm into tuxedo_os
Reviewed-on: DragonSlayer_14/Setup#2
2025-03-09 22:13:18 +01:00
DragonSlayer_14 172823a1db Merge pull request 'debian_12_bookworm' (#1) from debian_12_bookworm into tuxedo_os
Reviewed-on: DragonSlayer_14/Setup#1
2025-03-09 22:05:14 +01:00
12 changed files with 388 additions and 663 deletions
+93 -133
View File
@@ -1,115 +1,16 @@
#!/bin/bash
# Root-Rechte prüfen
if [ "$(id -u)" -ne 0 ]; then
echo "Bitte als root ausführen!"
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
if [ "$EUID" -ne 0 ]; then
echo "Bitte führen Sie das Skript mit Root-Rechten aus."
exit 1
fi
apt update && apt upgrade -y
apt install -y git sudo
# sources-list Config
read -p "❓ Soll die apt sources-list so konfiguriert werden, dass sie Contributions und non-free Software zum installieren ermöglicht? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# Datei-Pfad zur sources.list
SOURCE_LIST="/etc/apt/sources.list"
# Backup erstellen
cp "$SOURCE_LIST" "$SOURCE_LIST.bak"
echo "️ Aktualisiere $SOURCE_LIST..."
# Temporäre Datei erstellen
TEMP_FILE=$(mktemp)
# Fehlende Komponenten, die hinzugefügt werden sollen
REQUIRED_COMPONENTS=("main" "non-free" "non-free-firmware" "contrib")
while IFS= read -r line; do
# Falls die Zeile auskommentiert oder leer ist, unverändert übernehmen
if [[ "$line" =~ ^# || -z "$line" ]]; then
echo "$line" >>"$TEMP_FILE"
continue
fi
# Die ersten drei Felder als APT-Befehl, URL und Distribution speichern
APT_CMD=$(echo "$line" | awk '{print $1}')
APT_URL=$(echo "$line" | awk '{print $2}')
APT_DIST=$(echo "$line" | awk '{print $3}')
# Alle vorhandenen Komponenten sammeln (ab Feld 4)
CURRENT_COMPONENTS=$(echo "$line" | cut -d' ' -f4-)
# Set für aktuelle Komponenten erstellen
COMPONENTS_SET=($CURRENT_COMPONENTS)
# Fehlende Komponenten hinzufügen
for component in "${REQUIRED_COMPONENTS[@]}"; do
if ! [[ " ${COMPONENTS_SET[*]} " =~ " $component " ]]; then
COMPONENTS_SET+=("$component")
fi
done
# Neue Zeile mit ursprünglichem APT-Befehl, URL, Distribution und aktualisierten Komponenten schreiben
echo "$APT_CMD $APT_URL $APT_DIST ${COMPONENTS_SET[*]}" >>"$TEMP_FILE"
done <"$SOURCE_LIST"
# Originaldatei ersetzen
mv "$TEMP_FILE" "$SOURCE_LIST"
# apt aktualisieren
echo "🔄 Aktualisiere APT..."
apt update
echo "✅ Fertig! $SOURCE_LIST wurde aktualisiert."
fi
apt install -y git sudo 7zip unrar unzip network-manager software-properties-common tree bluetooth wget curl
# GRUB-Config
read -p "❓ Soll GRUB so konfiguriert werden, dass es nur im Fehlerfall angezeigt wird? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
echo "️ GRUB wird so konfiguriert, dass es nur im Fehlerfall angezeigt wird..."
# Sicherstellen, dass die Datei existiert
GRUB_CFG="/etc/default/grub"
if [[ ! -f "$GRUB_CFG" ]]; then
echo "❌ Fehler: $GRUB_CFG nicht gefunden!"
else
# Backup der aktuellen GRUB-Konfiguration
cp "$GRUB_CFG" "$GRUB_CFG.bak"
# Konfigurationsänderungen vornehmen
sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' "$GRUB_CFG"
sed -i 's/^GRUB_TIMEOUT_STYLE=.*/GRUB_TIMEOUT_STYLE=hidden/' "$GRUB_CFG"
# Falls die Einträge nicht existieren, hinzufügen
grep -q '^GRUB_TIMEOUT=' "$GRUB_CFG" || echo 'GRUB_TIMEOUT=0' >>"$GRUB_CFG"
grep -q '^GRUB_TIMEOUT_STYLE=' "$GRUB_CFG" || echo 'GRUB_TIMEOUT_STYLE=hidden' >>"$GRUB_CFG"
# GRUB-Konfiguration aktualisieren
update-grub
echo "✅ GRUB wurde erfolgreich angepasst. Änderungen werden beim nächsten Boot wirksam."
fi
fi
# sbin in Path
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
# Der Code, der eingefügt werden soll
CONFIG_BLOCK='if groups | grep -q "\bsudo\b"; then
case ":$PATH:" in
*":/sbin:"*) ;;
*) export PATH="$PATH:/sbin" ;;
@@ -118,40 +19,33 @@ if groups | grep -q "\bsudo\b"; then
*":/usr/sbin:"*) ;;
*) export PATH="$PATH:/usr/sbin" ;;
esac
fi
EOF
fi'
echo "️ sbin wurde zum PATH für sudo-Nutzer hinzugefügt."
fi
# Saubere Lösung über /etc/profile.d/
echo "$CONFIG_BLOCK" >/etc/profile.d/custom_path.sh
# sudo-Hinweis
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
# Sudo-Hinweis für bash.bashrc
SUDO_HINT_BLOCK='# sudo hint
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
case " $(groups) " in *\ admin\ *|*\ sudo\ *)
if [ -x /usr/bin/sudo ]; then
echo 'To run a command as administrator (user "root"), use "sudo <command>".'
echo 'See "man sudo_root" for details.'
cat <<-EOF
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
EOF
fi
esac
fi
EOF
fi'
echo "️ sudo-Hinweis wurde hinzugefügt!"
# Prüfen, ob der sudo-Hinweis bereits existiert
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
# 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
XDG_BLOCK='# /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_DATA_DIRS="/usr/local/share/:/usr/share/"
@@ -176,11 +70,77 @@ if [ -n "$DESKTOP_SESSION" ]; then
export XDG_DATA_DIRS
fi
fi
EOF
'
echo "️ XDG-Data-Dirs wurden gesetzt!"
echo "$XDG_BLOCK" >/etc/profile.d/xdg_dirs_desktop_session.sh
echo "Passwort für sudo-Nutzer setzen..."
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
chmod +x /etc/profile.d/*
# Wenn nur ein Adapter gefunden wurde, automatisch auswählen
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
echo "✅ Abgeschlossen. Zum Anwenden der Änderungen bitte neu einloggen!"
# 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
+3 -54
View File
@@ -4,7 +4,7 @@ set -e # Skript bricht bei Fehlern ab
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
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
fi
@@ -234,61 +234,10 @@ flatpak install flathub net.nokyan.Resources -y
flatpak install flathub org.gnome.World.Secrets -y
# Archivverwaltung
flatpak install flathub org.gnome.FileRoller -y
# Obfuscate
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 'deb http://download.opensuse.org/repositories/home:/unit193:/veracrypt/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/home:unit193:veracrypt.list
curl -fsSL https://download.opensuse.org/repositories/home:unit193:veracrypt/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_unit193_veracrypt.gpg > /dev/null
sudo add-apt-repository ppa:unit193/encryption -y
sudo apt update
sudo apt install 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
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
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
sudo apt install -y veracrypt
echo "✅ Alle Programme wurden erfolgreich installiert!"
-40
View File
@@ -1,40 +0,0 @@
#!/bin/bash
# Root-Rechte prüfen
if [ "$(id -u)" -ne 0 ]; then
echo "❌ Bitte als root ausführen!"
exit 1
fi
# Sicherheitsabfrage
read -p "⚠️ Achtung! Du führst ein Release-Upgrade auf Debian Trixie durch. Fortfahren? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" != "j" ]] && [[ "$answer" != "y" ]]; then
echo "❌ Upgrade abgebrochen."
exit 0
fi
echo "️ Aktualisiere Paketlisten..."
sudo apt-get update
echo "️ Starte System-Upgrade..."
sudo apt-get full-upgrade -y
echo "️ Ändere die Paketquellen auf Debian Trixie..."
sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sudo find /etc/apt/sources.list.d -type f -exec sed -i 's/bookworm/trixie/g' {} \;
echo "️ Aktualisiere Paketlisten erneut..."
sudo apt-get update
echo "️ Starte vollständiges Release-Upgrade..."
sudo apt-get full-upgrade -y
read -p "❓ Drücke [ENTER], um das System jetzt neuzustarten."
echo "️ System wird jetzt neu gestartet..."
sudo reboot
+8 -13
View File
@@ -2,30 +2,25 @@
# Root-Rechte prüfen
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
fi
# Verzeichnis setzen
REPO_DIR="/tmp/Linux-Active-Directory-join-script"
REPO_DIR="$HOME/Linux-Active-Directory-join-script"
# Repository klonen, falls es noch nicht existiert
if [ -d "$REPO_DIR" ]; then
echo "Repository existiert bereits. Überspringe das Klonen."
echo "Repository existiert bereits. Überspringe das Klonen."
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"
fi
# 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
if [ -f "ADconnection.sh" ]; then
chmod +x ADconnection.sh
echo "️ Starte Active Directory setup..."
./ADconnection.sh
else
echo "❌ Fehler: ADconnection.sh nicht gefunden!"
exit 1
fi
echo "Starte Active Directory Verbindung..."
sudo bash ADconnection.sh
+4 -26
View File
@@ -1,31 +1,9 @@
#!/bin/bash
# Root-Rechte prüfen
if [ "$(id -u)" -eq 0 ]; then
echo "Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
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."
exit 1
fi
# Repository-Pfad definieren
REPO_DIR="/tmp/Debian-Hyprland"
# Falls das Repository bereits existiert, überspringen
if [ -d "$REPO_DIR" ]; then
echo "️ Repository existiert bereits. Überspringe das klonen..."
else
echo "️ Klonen des Repositories..."
git clone --depth=1 https://github.com/JaKooLit/Debian-Hyprland.git "$REPO_DIR" || { echo "Fehler beim Klonen!"; exit 1; }
fi
# In das Verzeichnis wechseln
cd "$REPO_DIR" || { echo "❌ Fehler: Konnte nicht in das Verzeichnis wechseln!"; exit 1; }
# Sicherstellen, dass das Installationsskript existiert und ausführbar ist
if [ -f "install.sh" ]; then
chmod +x install.sh
echo "️ Starte Installation..."
./install.sh
else
echo "❌ Fehler: install.sh nicht gefunden!"
exit 1
fi
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Ubuntu-Hyprland/24.04/auto-install.sh)
+32 -12
View File
@@ -2,24 +2,19 @@
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
if [[ $EUID -ne 0 ]]; then
echo "❌ Bitte als root ausführen!"
echo "Dieses Skript muss als root ausgeführt werden."
exit 1
fi
# Tatsächlichen Benutzer ermitteln (nicht root)
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
fi
USER_NAME="$SUDO_USER"
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
USER_ENTRY=$(getent passwd "$USER_NAME")
@@ -29,17 +24,17 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
if grep -q "^$USER_NAME:" /etc/passwd; then
# Existierenden Eintrag aktualisieren
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
# Neuen Eintrag hinzufügen
UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }')
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
# Repository klonen
REPO_DIR="$USER_HOME/Debian-Hyprland"
sudo -u "$USER_NAME" git clone https://github.com/JaKooLit/Debian-Hyprland.git "$REPO_DIR"
REPO_DIR="$USER_HOME/Ubuntu-Hyprland"
sudo -u "$USER_NAME" git clone -b 24.04 https://github.com/JaKooLit/Ubuntu-Hyprland.git "$REPO_DIR"
# Ordner nach ~/.oh-my-zsh/themes kopieren
THEME_SRC="$REPO_DIR/assets/add_zsh_theme"
@@ -63,6 +58,31 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
else
echo "️ 'source /etc/profile' ist bereits in /etc/zsh/zprofile vorhanden."
fi
# Den tatsächlichen Benutzer ermitteln, der das Skript mit sudo ausführt
if [[ -n "$SUDO_USER" ]]; then
USER_HOME=$(eval echo "~$SUDO_USER")
else
USER_HOME="$HOME"
fi
echo "✅ Shell wurde erfolgreich auf ZSH gesetzt! Zum Anwenden, neue Terminal-Sitzung öffnen."
# Pfad zur .zshrc-Datei des tatsächlichen Benutzers
ZSHRC_FILE="$USER_HOME/.zshrc"
# Sicherstellen, dass die Datei existiert
if [[ -f "$ZSHRC_FILE" ]]; then
# Zeilen mit "fastfetch" am Anfang auskommentieren
sed -i '/^fastfetch/ s/^/#/' "$ZSHRC_FILE"
# Prüfen, ob "neofetch" bereits in der Datei steht
if ! grep -q "^neofetch$" "$ZSHRC_FILE"; then
# Zwei Zeilenumbrüche vor und ein Zeilenumbruch nach "neofetch" hinzufügen
echo -e "\n\nneofetch\n" >> "$ZSHRC_FILE"
fi
echo "Die Änderungen wurden erfolgreich vorgenommen."
else
echo "Die Datei $ZSHRC_FILE wurde nicht gefunden."
fi
echo "✅ Installation abgeschlossen!"
+5 -11
View File
@@ -2,18 +2,13 @@
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
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
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_CONF_DIR="/etc/sddm.conf.d"
SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/ad_login.conf"
SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/custom.conf"
mkdir -p "$SDDM_CONF_DIR"
# Bestehende Konfiguration sichern und anpassen
@@ -21,13 +16,13 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF"
sed -i '/MinimumUid/d' "$SDDM_CUSTOM_CONF"
sed -i '/HideShells/d' "$SDDM_CUSTOM_CONF"
echo "MaximumUid=99999999999999999999" >>"$SDDM_CUSTOM_CONF"
echo "MaximumUid=9999999999" >>"$SDDM_CUSTOM_CONF"
echo "MinimumUid=1000" >>"$SDDM_CUSTOM_CONF"
echo "HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin" >>"$SDDM_CUSTOM_CONF"
else
cat <<EOF >"$SDDM_CUSTOM_CONF"
[Users]
MaximumUid=999999999999999999
MaximumUid=9999999999
MinimumUid=1000
HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin
EOF
@@ -48,6 +43,5 @@ EOF
# SSSD und SDDM neu starten
systemctl restart sssd
systemctl restart sddm
fi
echo "✅ Konfiguration von SDDM und sssd abgeschlossen!"
echo "SDDM wurde so konfiguriert, dass lokale und bereits angemeldete Domänenbenutzer angezeigt werden."
+38 -47
View File
@@ -2,57 +2,35 @@
set -e # Skript bricht bei Fehlern ab
# Root-Rechte prüfen
if [ "$(id -u)" -eq 0 ]; then
echo "Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
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."
exit 1
fi
# System aktualisieren und benötigte Pakete installieren
echo "🔄 System wird aktualisiert..."
sudo apt update && sudo apt upgrade -y
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
echo "️ Firewall (ufw) wird installiert..."
sudo apt install -y ufw
echo "🔄 Entferne Pakete..."
sudo apt remove -y firefox kmahjongg kmines kpat ksudoku nextcloud-desktop skanlite thunderbird virtualbox
echo "🔄 Installiere Pakete..."
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 libclamunrar9 clamav-daemon
sudo ufw enable
echo "️ Virenschutz (clamav) wird installiert..."
sudo apt install -y clamav clamav-freshclam clamav-docs libclamunrar9 clamav-daemon
echo "️ Installiere Flatpak..."
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
echo "️ Installiere nützliche Pakete..."
sudo apt install -y neovim rfkill xdg-user-dirs rsync bleachbit network-manager-gnome
# 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
sudo apt install -y /tmp/portmaster-installer.deb
rm /tmp/portmaster-installer.deb
echo "✅ Portmaster wurde installiert!"
fi
# 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..."
sudo apt remove -y firefox
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://download.opensuse.org/repositories/home:hawkeye116477:waterfox/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_hawkeye116477_waterfox.gpg > /dev/null
echo 'deb https://download.opensuse.org/repositories/home:/hawkeye116477:/waterfox/Debian_12/ /' | 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
sudo apt update && sudo apt install -y waterfox
echo "✅ Waterfox wurde installiert!"
# Waterfox als Standardbrowser setzen
echo "🌍 Setze Waterfox als Standardbrowser..."
@@ -68,14 +46,8 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
else
echo "❌ 'xdg-settings' ist nicht verfügbar. Bitte manuell den Standardbrowser setzen."
fi
fi
# Hyprland User Bindings
read -p "❓ Sollen Anpassungen an den Hyprland-Keybinds vorgenomen werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
HYPR_CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
mkdir -p "$HYPR_CONFIG_DIR"
@@ -95,6 +67,26 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
echo "️ Keybind existiert bereits: ${KEYBINDS[$BIND]}"
fi
done
echo "🔄 Füge Autostart-Apps hinzu..."
# Pfad zur Konfigurationsdatei
CONFIG_FILE="$HOME/.config/hypr/UserConfigs/Startup_Apps.conf"
# Zeile, die hinzugefügt werden soll
LINE_TO_ADD="exec-once = tuxedo-control-center --tray"
# Überprüfen, ob die Datei existiert
if [ -f "$CONFIG_FILE" ]; then
# Überprüfen, ob die Zeile bereits existiert
if ! grep -Fxq "$LINE_TO_ADD" "$CONFIG_FILE"; then
# Zeile hinzufügen
echo "$LINE_TO_ADD" >> "$CONFIG_FILE"
echo "Zeile wurde erfolgreich hinzugefügt."
else
echo "Die Zeile existiert bereits in der Datei."
fi
else
echo "Die Datei $CONFIG_FILE existiert nicht."
fi
# Standardvorlagen ablegen
@@ -127,11 +119,6 @@ TARGET_DIR="$HOME/.config/hypr/UserScripts"
CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
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
echo "📂 Überprüfe und bereinige Dateien im Verzeichnis $TARGET_DIR..."
if [[ -d "$TARGET_DIR" ]]; then
@@ -228,9 +215,13 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
echo "⚠️ Datei $USER_KEYBINDS_FILE existiert nicht. Überspringe Anpassung der Verweise."
fi
# Überprüfen, ob der Ordner existiert
if [ -d "$(xdg-user-dir)/Pictures" ]; then
echo "📂 Verschiebe $(xdg-user-dir)/Pictures nach $(xdg-user-dir PICTURES)..."
rsync -av --ignore-existing "$(xdg-user-dir)/Pictures/" "$(xdg-user-dir PICTURES)/"
rm -r "$(xdg-user-dir)/Pictures/"
else
echo "📂 Der Ordner $(xdg-user-dir)/Pictures existiert nicht. Kein Verschieben notwendig."
fi
echo "✅ Skript erfolgreich ausgeführt!"
-36
View File
@@ -1,36 +0,0 @@
#!/bin/bash
set -e # Skript bricht bei Fehlern ab
# Theme-Name
THEME_NAME="vimix"
# Prüfen, ob GRUB bereits das Theme verwendet
if grep -q "GRUB_THEME=" /etc/default/grub && grep -q "$THEME_NAME" /etc/default/grub; then
echo "✅ Das Theme '$THEME_NAME' ist bereits installiert und aktiv."
exit 0
fi
echo "🔄 Installiere das GRUB-Theme '$THEME_NAME'..."
# Falls der Ordner existiert, vorher löschen
THEME_DIR="$HOME/grub-themes"
if [[ -d "$THEME_DIR" ]]; then
rm -rf "$THEME_DIR"
fi
# Repository klonen
git clone https://github.com/vinceliuice/grub2-themes.git "$THEME_DIR"
cd "$THEME_DIR"
# Theme installieren
sudo ./install.sh -b -t "$THEME_NAME"
# GRUB-Konfiguration aktualisieren
echo "🔄 Aktualisiere die GRUB-Konfiguration..."
sudo update-grub
# Aufräumen
rm -rf "$THEME_DIR"
echo "✅ GRUB-Theme '$THEME_NAME' erfolgreich installiert und aktiviert!"
-59
View File
@@ -1,59 +0,0 @@
#!/bin/bash
set -e # Skript bricht bei Fehlern ab
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
if [[ $EUID -ne 0 ]]; then
echo "❌ Dieses Skript muss als root ausgeführt werden."
exit 1
fi
echo "🔄 Plymouth und benötigte Pakete installieren..."
if ! dpkg -l | grep -qw plymouth; then
apt update && apt install -y plymouth plymouth-themes
else
echo "✅ Plymouth ist bereits installiert."
fi
# Plymouth in initramfs aktivieren
MKINIT_CONF="/etc/mkinitcpio.conf"
if [[ -f "$MKINIT_CONF" ]]; then
if grep -q "^HOOKS=" "$MKINIT_CONF"; then
sed -i 's/^HOOKS=.*/HOOKS=(base udev plymouth autodetect modconf block encrypt lvm2 filesystems keyboard fsck)/' "$MKINIT_CONF"
else
echo 'HOOKS=(base udev plymouth autodetect modconf block encrypt lvm2 filesystems keyboard fsck)' >>"$MKINIT_CONF"
fi
fi
# Falls Dracut genutzt wird, initramfs neu erstellen
if command -v dracut &>/dev/null; then
echo "🔄 Dracut erkannt, erstelle neues initramfs..."
dracut -f
else
echo "🔄 Initramfs wird aktualisiert..."
update-initramfs -u
fi
# Plymouth-Theme setzen
PLYMOUTH_THEME="spinner"
echo "🎨 Setze Plymouth-Theme auf '$PLYMOUTH_THEME'..."
plymouth-set-default-theme -R "$PLYMOUTH_THEME"
# Kernel-Boot-Parameter in GRUB anpassen
GRUB_CFG="/etc/default/grub"
GRUB_BACKUP="/etc/default/grub.bak"
echo "🔍 Überprüfe GRUB-Einstellungen..."
NEW_CMDLINE="quiet splash vt.global_cursor_default=0 loglevel=3 rd.luks.options=discard plymouth.ignore-serial-consoles"
if grep -q "^GRUB_CMDLINE_LINUX_DEFAULT=.*" "$GRUB_CFG"; then
sed -i "s|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"$NEW_CMDLINE\"|" "$GRUB_CFG"
echo "🔄 GRUB wird aktualisiert..."
update-grub
else
echo "GRUB_CMDLINE_LINUX_DEFAULT=\"$NEW_CMDLINE\"" >>"$GRUB_CFG"
echo "🔄 GRUB wird aktualisiert..."
update-grub
fi
echo "✅ Einrichtung abgeschlossen. Bitte starte das System neu, um die Änderungen zu übernehmen."
+3 -31
View File
@@ -2,7 +2,7 @@
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
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
fi
@@ -10,38 +10,10 @@ fi
apt update && apt upgrade -y
# 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
apt update
apt install -y wget curl
wget -O /tmp/steam.deb https://cdn.akamai.steamstatic.com/client/installer/steam.deb
apt install -y /tmp/steam.deb
rm /tmp/steam.deb
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
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
LUTRIS_KEYRING="/etc/apt/keyrings/lutris.gpg"
LUTRIS_REPO="https://download.opensuse.org/repositories/home:/strycore/Debian_12/"
mkdir -p /etc/apt/keyrings
wget -qO /tmp/lutris-key.gpg "${LUTRIS_REPO}Release.key"
gpg --dearmor </tmp/lutris-key.gpg >"$LUTRIS_KEYRING"
rm /tmp/lutris-key.gpg
echo "deb [signed-by=$LUTRIS_KEYRING] $LUTRIS_REPO ./" >/etc/apt/sources.list.d/lutris.list
apt update
apt install -y lutris
fi
echo "✅ Skript abgeschlossen!"
echo "✅ Installation von Steam und Lutris abgeschlossen!"
+2 -1
View File
@@ -5,7 +5,8 @@
Dieses Repository enthält Skripte um ein Linux System mit Hyprland und diversen Programmen aufzusetzen.
Die entsprechenden Skripte befinden sich in den Branches zur jeweiligen Distribution.
**Mit diesen Skripten kann *Debian 12 (Bookworm)* mit *Hyprland* und diversen Programmen aufgesetzt werden.**
**Mit diesen Skripten kann *Tuxedo OS*, das auf Ubuntu 24.04 (Noble Numbat) basiert, mit *Hyprland* und diversen
Programmen aufgesetzt werden.**
## Anforderungen