28 Commits
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
16 changed files with 553 additions and 863 deletions
+95 -170
View File
@@ -1,150 +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
# System aktualisieren und benötigte Pakete installieren
pacman -Syu --noconfirm git sudo p7zip unrar unzip networkmanager tree bluez bluez-utils wget curl less ineturils
apt update && apt upgrade -y
apt install -y git sudo
# Aktivieren und Starten von NetworkManager und Bluetooth-Diensten
systemctl enable --now NetworkManager
systemctl enable --now bluetooth
# yay Installation
read -p "❓ Soll der Paketmanager Yay für AUR-Pakete installiert werden? (j/n) [n]: " answer
answer=${answer,,}
answer=${answer:-n}
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# 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."
exit 1
fi
CURRENT_DIR=$(pwd)
USER_NAME="$SUDO_USER"
AUR_CODE_DIR="/var/lib/user_aur_code"
# Sicherstellen, dass benötigte Pakete installiert sind
pacman -Syu --noconfirm glib2 git base-devel --needed
# AUR-Verzeichnis erstellen
mkdir -p $AUR_CODE_DIR
sudo chmod -R 777 $AUR_CODE_DIR
# Installiere yay
cd $AUR_CODE_DIR
sudo -u $USER_NAME git clone https://aur.archlinux.org/yay.git
cd yay
sudo -u $USER_NAME makepkg -sic --noconfirm || { echo "❌ Fehler beim Erstellen von Yay"; exit 1; }
sudo -u $USER_NAME git clean -dfx
cd $CURRENT_DIR
fi
# multilib Repo
read -p "❓ Soll das multilib-Repository aktiviert werden? (j/n) [n]: " answer
answer=${answer,,}
answer=${answer:-n}
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# Multilib-Repository aktivieren
echo "🔄 Aktiviere Multilib-Repository..."
# Zeilen einkommentieren, falls sie auskommentiert sind
if grep -q "^\[multilib\]" /etc/pacman.conf && grep -q "#Include = /etc/pacman.d/mirrorlist" /etc/pacman.conf; then
sudo sed -i 's/#\[multilib\]/\[multilib\]/g' /etc/pacman.conf
sudo sed -i 's/#Include = \/etc\/pacman.d\/mirrorlist/Include = \/etc\/pacman.d\/mirrorlist/g' /etc/pacman.conf
fi
# Falls der Block nicht vorhanden ist, füge ihn hinzu
if ! grep -q "^\[multilib\]" /etc/pacman.conf; then
echo "[multilib]" | sudo tee -a /etc/pacman.conf
echo "Include = /etc/pacman.d/mirrorlist" | sudo tee -a /etc/pacman.conf
fi
# Paketdatenbank aktualisieren
echo "🔄 Aktualisiere die Paketdatenbank..."
pacman -Sy --noconfirm
fi
# systemd-boot Config
read -p "❓ Soll systemd-boot so angepasst werden, dass es nur im Fehlerfall angezeigt wird? (j/n) [n]: " answer
answer=${answer,,}
answer=${answer:-n}
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
LOADER_CONF="/boot/loader/loader.conf"
# Überprüfen, ob die Datei exists
if [[ ! -f "$LOADER_CONF" ]]; then
echo "❌ Datei $LOADER_CONF nicht gefunden!"
exit 1
fi
# Überprüfen, ob die "timeout"-Option bereits auf 0 gesetzt ist
if grep -q "^timeout 0" "$LOADER_CONF"; then
echo "️ 'timeout 0' ist bereits gesetzt."
else
# Timeout auf 0 setzen
echo "🔄 Setze 'timeout 0' in der loader.conf..."
# Falls bereits eine timeout-Zeile existiert, diese ersetzen
sed -i 's/^timeout .*/timeout 0/' "$LOADER_CONF"
# Falls keine timeout-Zeile existiert, diese hinzufügen
if ! grep -q "^timeout" "$LOADER_CONF"; then
echo "timeout 0" >>"$LOADER_CONF"
fi
echo "✅ 'timeout 0' wurde erfolgreich gesetzt."
fi
fi
# Gruppe "sudo" und Sudoers-Regel hinzufügen
read -p "❓ Soll die Gruppe 'sudo' erstellt und ihr Sudo-Zugriff gewährt werden? (j/n) [n]: " answer
answer=${answer,,}
answer=${answer:-n}
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# Gruppe "sudo" erstellen, falls sie nicht existiert
if ! grep -q "^sudo:" /etc/group; then
groupadd sudo
echo "️ Gruppe 'sudo' wurde erstellt."
else
echo "️ Gruppe 'sudo' existiert bereits."
fi
# Sudoers-Regel für die Gruppe "sudo" erstellen
SUDOERS_FILE="/etc/sudoers.d/00-sudo-group"
if [ ! -f "$SUDOERS_FILE" ]; then
echo "%sudo ALL=(ALL:ALL) ALL" >"$SUDOERS_FILE"
chmod 440 "$SUDOERS_FILE"
echo "️ Sudo-Regel für die Gruppe 'sudo' wurde erstellt."
else
echo "️ Sudo-Regel für die Gruppe 'sudo' existiert bereits."
fi
# Abfrage, ob ein Benutzer der Gruppe hinzugefügt werden soll
read -p "❓ Welcher Benutzer soll zur Gruppe 'sudo' hinzugefügt werden? (Leer lassen für keinen): " username
if [[ -n "$username" ]]; then
if id "$username" &>/dev/null; then
usermod -aG sudo "$username"
echo "️ Benutzer '$username' wurde zur Gruppe 'sudo' hinzugefügt."
else
echo "❌ Benutzer '$username' existiert nicht!"
fi
fi
fi
# sbin in PATH aufnehmen
read -p "❓ Soll sbin für sudo-Nutzer in den PATH aufgenommen werden? (j/n) [n]: " answer
answer=${answer,,}
answer=${answer:-n}
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" ;;
@@ -153,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,,}
answer=${answer:-n}
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 *\ sudo\ *)
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
# XDG-Data-Dirs setzen
read -p "❓ Sollen die XDG-Data-Dirs gesetzt werden? (j/n) [n]: " answer
answer=${answer,,}
answer=${answer:-n}
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/"
@@ -211,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
+27 -86
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
@@ -22,8 +22,8 @@ declare -A FLATPAK_APPS=(
)
for APP in "${!FLATPAK_APPS[@]}"; do
if pacman -Qs "${FLATPAK_APPS[$APP]}" &>/dev/null; then
echo "${FLATPAK_APPS[$APP]} ist bereits als Paket installiert."
if dpkg -l | grep -iq "${FLATPAK_APPS[$APP]}"; then
echo "${FLATPAK_APPS[$APP]} ist bereits als DEB-Paket installiert."
elif flatpak list | grep -q "$APP"; then
echo "${FLATPAK_APPS[$APP]} ist bereits als Flatpak installiert."
else
@@ -42,7 +42,7 @@ if flatpak list | grep -q "org.libreoffice.LibreOffice"; then
elif command -v libreoffice &>/dev/null; then
LO_CMD="libreoffice"
else
echo "❌ Fehler: LibreOffice ist weder als Flatpak noch als Paket installiert."
echo "❌ Fehler: LibreOffice ist weder als Flatpak noch als DEB-Paket installiert."
exit 1
fi
@@ -63,13 +63,27 @@ fi
# Spotify-Installation
echo "🎵 Überprüfe Spotify-Installation..."
SPOTIFY_KEY="/etc/apt/trusted.gpg.d/spotify.gpg"
SPOTIFY_REPO="/etc/apt/sources.list.d/spotify.list"
if pacman -Qs spotify &>/dev/null; then
if dpkg -l | grep -q "spotify-client"; then
echo "✅ Spotify ist bereits installiert."
else
echo "🔄 Installiere Spotify..."
sudo pacman -S --noconfirm spotify
if [[ ! -f "$SPOTIFY_KEY" ]]; then
curl -sS https://download.spotify.com/debian/pubkey_C85668DF69375001.gpg | sudo gpg --dearmor -o "$SPOTIFY_KEY"
else
echo "✅ Spotify GPG-Key ist bereits vorhanden."
fi
if [[ ! -f "$SPOTIFY_REPO" ]]; then
echo "deb http://repository.spotify.com stable non-free" | sudo tee "$SPOTIFY_REPO"
else
echo "✅ Spotify-Repository ist bereits konfiguriert."
fi
sudo apt update && sudo apt install -y spotify-client
fi
# Spotify .desktop-Datei erstellen
@@ -96,7 +110,7 @@ dependencies=(man fzf ripgrep awk w3m coreutils parallel)
for dep in "${dependencies[@]}"; do
if ! command -v "$dep" &>/dev/null; then
echo "🔄 Installiere $dep..."
sudo pacman -S --noconfirm "$dep"
sudo apt install -y "$dep"
else
echo "$dep ist bereits installiert."
fi
@@ -106,7 +120,7 @@ done
# Tealdeer (tldr-Client) installieren
if ! command -v tldr &>/dev/null; then
echo "🔄 Installiere tealdeer..."
sudo pacman -S --noconfirm tealdeer
sudo apt install -y tealdeer
else
echo "✅ Tealdeer ist bereits installiert."
fi
@@ -130,7 +144,7 @@ if ! command -v wikiman &>/dev/null; then
# Prüfen, ob `make` installiert ist
if ! command -v make &>/dev/null; then
echo "🔄 Installiere make..."
sudo pacman -S --noconfirm make
sudo apt install -y make
fi
git clone 'https://github.com/filiparag/wikiman' ~/wikiman
@@ -171,7 +185,7 @@ xdg-mime default org.gnome.Loupe.desktop image/jpeg
xdg-mime default org.gnome.Loupe.desktop image/png
# Disk-Utility, PDF-Viewer (Okular), Softwarecenter und Flatpak-Plugin, Systemmonitor
sudo pacman -S --noconfirm gnome-disk-utility okular gnome-software gnome-system-monitor
sudo apt -y install gnome-disk-utility okular gnome-software gnome-software-plugin-flatpak gnome-system-monitor
# Okular als Standard-PDF-Viewer setzen
xdg-mime default okularApplication_pdf.desktop application/pdf
# Betterbird als Standard-Mail-Programm setzen
@@ -220,83 +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" ]] || [[ "$answer" == "y" ]]; then
echo "🔄 Installiere VeraCrypt..."
# VeraCrypt aus den Arch-Repositories installieren
if ! command -v veracrypt &>/dev/null; then
sudo pacman -S --noconfirm veracrypt
else
echo "✅ VeraCrypt ist bereits installiert."
fi
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" ]] || [[ "$answer" == "y" ]]; then
echo "🔄 Installiere Webmin..."
# Webmin aus dem AUR installieren (falls yay vorhanden ist)
if command -v yay &>/dev/null; then
yay -S --noconfirm webmin
else
echo "❌ Bitte installiere yay oder einen anderen AUR-Helper, um Webmin zu installieren."
fi
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" ]] || [[ "$answer" == "y" ]]; then
echo "🔄 Installiere Waydroid über AUR..."
# Überprüfen, ob yay installiert ist
if ! command -v yay &>/dev/null; then
echo "❌ Yay ist nicht installiert. Bitte installiere yay und versuche es erneut."
exit 1
fi
# Waydroid über AUR installieren
yay -S --noconfirm waydroid
# UFW konfigurieren (falls installiert)
if command -v ufw &>/dev/null; then
sudo ufw allow 53
sudo ufw allow 67
sudo ufw default allow FORWARD
else
echo "❌ UFW ist nicht installiert. Bitte installiere es manuell, falls benötigt."
fi
# Waydroid-Container aktivieren
sudo systemctl enable --now waydroid-container
# Skript zum Verstecken der Waydroid-Apps erstellen
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 add-apt-repository ppa:unit193/encryption -y
sudo apt update
sudo apt install -y veracrypt
echo "✅ Alle Programme wurden erfolgreich installiert!"
-75
View File
@@ -1,75 +0,0 @@
#!/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."
exit 1
fi
yay -Syu
# Installiere adcli mit yay
yay -S --noconfirm adcli || { echo "❌ Fehler beim Installieren von adcli"; exit 1; }
# Installiere realmd mit yay
yay -S --noconfirm realmd || { echo "❌ Fehler beim Installieren von realmd"; exit 1; }
# Samba-Verzeichnis erstellen
sudo mkdir -p /var/lib/samba/private/
# Installiere notwendige Pakete
sudo pacman -Syu --noconfirm sssd curl ntp polkit
echo "❓ Daten für Domainjoin:"
read -p "Domänenname: " DOMAIN
read -p "Adminuser: " ADMIN
# NetBIOS und COMS extrahieren
NetBios=$(echo "$DOMAIN" | cut -d '.' -f1)
coms=$(echo "$DOMAIN" | cut -d '.' -f2)
# Realm joinen
sudo realm join --verbose --user="$ADMIN" "$DOMAIN" --install=/ || { echo "❌ Fehler beim Domainjoin"; exit 1; }
# SSSD aktivieren und starten
sudo systemctl enable sssd
sudo systemctl start sssd
# PAM-Konfiguration überprüfen und anpassen
homedir=$(grep homedir /etc/pam.d/common-session | grep 0077 | cut -d '=' -f3 | head -1)
if [ "$homedir" = "0077" ]; then
echo "️ pam_mkhomedir.so konfiguriert"
sleep 1
else
echo "session required pam_mkhomedir.so skel=/etc/skel/ umask=0077" | sudo tee -a /etc/pam.d/common-session
fi
# SSSD-Konfigurationsdatei anpassen
sudo sed -i -e 's/fallback_homedir = \/home\/%u@%d/#fallback_homedir = \/home\/%u@%d/g' /etc/sssd/sssd.conf
sudo sed -i -e 's/use_fully_qualified_names = True/use_fully_qualified_names = False/g' /etc/sssd/sssd.conf
sudo sed -i -e 's/access_provider = ad/access_provider = simple/g' /etc/sssd/sssd.conf
sudo sed -i -e 's/sudoers: files sss/sudoers: files/g' /etc/nsswitch.conf
echo "override_homedir = /home/%u" | sudo tee -a /etc/sssd/sssd.conf
sudo grep -i override /etc/sssd/sssd.conf
# Weitere Anpassungen an der SSSD-Konfiguration
sudo sed -i '/krb5_realm =/a entry_cache_group_timeout = 5400' /etc/sssd/sssd.conf
sudo sed -i '/krb5_realm =/a entry_cache_user_timeout = 5400' /etc/sssd/sssd.conf
# Zusätzliche SSSD-Alternativen
sudo echo "#entry_cache_user_timeout = 5400
#entry_cache_group_timeout = 5400
#cache_credentials = TRUE
### Added to help with group mapping
###ldap_use_tokengroups = False
#ldap_schema = rfc2307bis
#ldap_schema = rfc2307
#ldap_schema = IPA
#ldap_schema = AD
#ldap_search_base = DC=$NetBios,DC=$coms
#ldap_group_member = uniquemember
#ad_enable_gc = False
entry_cache_timeout = 600
entry_cache_nowait_percentage = 75 " | sudo tee -a /etc/sssd/sssd.alternatives
echo "✅ Der Computer muss jetzt neugestartet werden. Vor dem Anmelden etwa 3 Minuten warten!"
Executable
+26
View File
@@ -0,0 +1,26 @@
#!/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."
exit 1
fi
# Verzeichnis setzen
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."
else
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; }
# AD-Skript ausführen
echo "Starte Active Directory Verbindung..."
sudo bash ADconnection.sh
-22
View File
@@ -1,22 +0,0 @@
#!/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."
exit 1
fi
sudo pacman -Syu
yay -Syu
# Temporären Ordner erstellen
TEMP_DIR=$(mktemp -d)
# Skript in den temporären Ordner herunterladen
curl -L https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/auto-install.sh -o "$TEMP_DIR/auto-install.sh"
# Das heruntergeladene Skript mit sh ausführen
sh "$TEMP_DIR/auto-install.sh"
# Temporären Ordner löschen
rm -rf "$TEMP_DIR"
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
# 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
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Ubuntu-Hyprland/24.04/auto-install.sh)
-74
View File
@@ -1,74 +0,0 @@
#!/bin/bash
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
if [[ $EUID -ne 0 ]]; then
echo "❌ Bitte als root ausführen!"
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."
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
# ZSH-Installation prüfen und ggf. installieren
if ! command -v zsh &> /dev/null; then
echo "️ ZSH wird installiert..."
sudo pacman -S --noconfirm zsh
fi
# Eintrag aus getent passwd holen
USER_ENTRY=$(getent passwd "$USER_NAME")
# Backup der passwd Datei
cp /etc/passwd /etc/passwd.bak
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."
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."
fi
# Repository klonen
REPO_DIR="$USER_HOME/Debian-Hyprland"
sudo -u "$USER_NAME" git clone https://github.com/JaKooLit/Arch-Hyprland.git "$REPO_DIR"
# Ordner nach ~/.oh-my-zsh/themes kopieren
THEME_SRC="$REPO_DIR/assets/add_zsh_theme"
THEME_DEST="$USER_HOME/.oh-my-zsh/themes"
if [[ -d "$THEME_SRC" ]]; then
sudo -u "$USER_NAME" mkdir -p "$THEME_DEST"
sudo -u "$USER_NAME" cp -r "$THEME_SRC"/* "$THEME_DEST/"
echo "🎨 ZSH-Theme wurde nach $THEME_DEST kopiert."
else
echo "⚠️ Fehler: Theme-Ordner wurde nicht gefunden!"
fi
# Repository löschen
rm -rf "$REPO_DIR"
# /etc/profile in /etc/zsh/zprofile einfügen, falls nicht bereits vorhanden
if ! grep -q "source /etc/profile" /etc/zsh/zprofile; then
echo "source /etc/profile" >>/etc/zsh/zprofile
echo "🔧 'source /etc/profile' wurde in /etc/zsh/zprofile hinzugefügt."
else
echo "️ 'source /etc/profile' ist bereits in /etc/zsh/zprofile vorhanden."
fi
fi
echo "✅ Shell wurde erfolgreich auf ZSH gesetzt! Zum Anwenden, neue Terminal-Sitzung öffnen."
-70
View File
@@ -1,70 +0,0 @@
#!/bin/bash
# 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
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"
mkdir -p "$SDDM_CONF_DIR"
# SDDM-Konfigurationsdatei sichern
if [[ -f "$SDDM_CUSTOM_CONF" ]]; then
cp "$SDDM_CUSTOM_CONF" "$SDDM_CUSTOM_CONF.bak"
echo "️ SDDM-Konfigurationsdatei gesichert als $SDDM_CUSTOM_CONF.bak"
else
echo "⚠️ SDDM-Konfigurationsdatei nicht gefunden, keine Sicherung vorgenommen."
fi
# Bestehende Konfiguration sichern und anpassen
if [[ -f "$SDDM_CUSTOM_CONF" ]]; 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 "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
MinimumUid=1000
HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin
EOF
fi
# SSSD-Konfiguration anpassen, falls die Datei existiert
SSSD_CONF="/etc/sssd/sssd.conf"
# SSSD-Konfigurationsdatei sichern
if [[ -f "$SSSD_CONF" ]]; then
cp "$SSSD_CONF" "$SSSD_CONF.bak"
echo "️ SSSD-Konfigurationsdatei gesichert als $SSSD_CONF.bak"
else
echo "⚠️ SSSD-Konfigurationsdatei nicht gefunden, keine Sicherung vorgenommen."
fi
if [[ -f "$SSSD_CONF" ]]; then
if grep -q "^enumerate" "$SSSD_CONF"; then
sed -i 's/^enumerate.*/enumerate = false/' "$SSSD_CONF"
else
echo "enumerate = false" >>"$SSSD_CONF"
fi
# Berechtigungen für SSSD-Konfigurationsdatei setzen
chmod 600 "$SSSD_CONF"
fi
# SSSD und SDDM neu starten
systemctl restart sssd
systemctl restart sddm
fi
echo "✅ Konfiguration von SDDM und sssd abgeschlossen!"
+88
View File
@@ -0,0 +1,88 @@
#!/bin/bash
# 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
# 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."
exit 1
fi
USER_NAME="$SUDO_USER"
USER_HOME=$(eval echo ~$USER_NAME)
# Eintrag aus getent passwd holen
USER_ENTRY=$(getent passwd "$USER_NAME")
# Backup der passwd Datei
cp /etc/passwd /etc/passwd.bak
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."
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."
fi
# Repository klonen
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"
THEME_DEST="$USER_HOME/.oh-my-zsh/themes"
if [[ -d "$THEME_SRC" ]]; then
sudo -u "$USER_NAME" mkdir -p "$THEME_DEST"
sudo -u "$USER_NAME" cp -r "$THEME_SRC"/* "$THEME_DEST/"
echo "🎨 ZSH-Theme wurde nach $THEME_DEST kopiert."
else
echo "⚠️ Fehler: Theme-Ordner wurde nicht gefunden!"
fi
# Repository löschen
rm -rf "$REPO_DIR"
# /etc/profile in /etc/zsh/zprofile einfügen, falls nicht bereits vorhanden
if ! grep -q "source /etc/profile" /etc/zsh/zprofile; then
echo "source /etc/profile" >>/etc/zsh/zprofile
echo "🔧 'source /etc/profile' wurde in /etc/zsh/zprofile hinzugefügt."
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
# 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!"
+47
View File
@@ -0,0 +1,47 @@
#!/bin/bash
# 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
# SDDM-Konfigurationsdatei in sddm.conf.d erstellen
SDDM_CONF_DIR="/etc/sddm.conf.d"
SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/custom.conf"
mkdir -p "$SDDM_CONF_DIR"
# Bestehende Konfiguration sichern und anpassen
if [[ -f "$SDDM_CUSTOM_CONF" ]]; then
sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF"
sed -i '/MinimumUid/d' "$SDDM_CUSTOM_CONF"
sed -i '/HideShells/d' "$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=9999999999
MinimumUid=1000
HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin
EOF
fi
# SSSD-Konfiguration anpassen, falls die Datei existiert
SSSD_CONF="/etc/sssd/sssd.conf"
if [[ -f "$SSSD_CONF" ]]; then
if grep -q "^enumerate" "$SSSD_CONF"; then
sed -i 's/^enumerate.*/enumerate = false/' "$SSSD_CONF"
else
echo "enumerate = false" >>"$SSSD_CONF"
fi
# Berechtigungen für SSSD-Konfigurationsdatei setzen
chmod 600 "$SSSD_CONF"
fi
# SSSD und SDDM neu starten
systemctl restart sssd
systemctl restart sddm
echo "SDDM wurde so konfiguriert, dass lokale und bereits angemeldete Domänenbenutzer angezeigt werden."
-236
View File
@@ -1,236 +0,0 @@
#!/bin/bash
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."
exit 1
fi
# System aktualisieren und benötigte Pakete installieren
echo "🔄 System wird aktualisiert..."
sudo pacman -Syu --noconfirm
yay -Syu --noconfirm
echo "️ Firewall (ufw) wird installiert..."
sudo pacman -S --noconfirm ufw
sudo ufw enable
echo "️ Virenschutz (clamav) wird installiert..."
sudo pacman -S --noconfirm clamav
sudo systemctl enable --now clamav-freshclam
echo "️ Installiere Flatpak..."
sudo pacman -S --noconfirm flatpak
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
echo "️ Installiere nützliche Pakete..."
sudo pacman -S --noconfirm neovim rfkill xdg-user-dirs rsync bleachbit networkmanager
# 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
yay -S portmaster-stub-bin --noconfirm
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
if pacman -Q firefox &>/dev/null; then
sudo pacman -Rns --noconfirm firefox
fi
echo "🌍 Waterfox wird installiert..."
yay -S --noconfirm waterfox
echo "✅ Waterfox wurde installiert!"
# Waterfox als Standardbrowser setzen
echo "🌍 Setze Waterfox als Standardbrowser..."
if command -v xdg-settings >/dev/null 2>&1; then
xdg-settings set default-web-browser waterfox.desktop
echo "✅ Waterfox wurde als Standardbrowser gesetzt."
# Standardanwendungen für spezifische Dateitypen setzen
xdg-mime default waterfox.desktop text/html
xdg-mime default waterfox.desktop application/xhtml+xml
xdg-mime default waterfox.desktop x-scheme-handler/http
xdg-mime default waterfox.desktop x-scheme-handler/https
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"
# Keybinds hinzufügen (falls nicht vorhanden)
declare -A KEYBINDS=(
["bindr = \$mainMod, \$mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window"]="rofi menu"
["bindr = \$mainMod, L, exec, \$scriptsDir/LockScreen.sh"]="screen lock"
["bindr = \$mainMod, V, exec, \$scriptsDir/ClipManager.sh"]="Clipboard Manager"
)
for BIND in "${!KEYBINDS[@]}"; do
FULL_BIND="$BIND # ${KEYBINDS[$BIND]}"
if ! grep -Fxq "$FULL_BIND" "$HYPR_CONFIG_DIR/UserKeybinds.conf" 2>/dev/null; then
echo "$FULL_BIND" >>"$HYPR_CONFIG_DIR/UserKeybinds.conf"
echo "✅ Keybind hinzugefügt: ${KEYBINDS[$BIND]}"
else
echo "️ Keybind existiert bereits: ${KEYBINDS[$BIND]}"
fi
done
fi
# Standardvorlagen ablegen
echo "📂 Standardvorlagen werden im Vorlagen-Ordner erstellt..."
TEMPLATES_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Vorlagen")
mkdir -p "$TEMPLATES_DIR"
# Vorlagenliste
declare -A TEMPLATES=(
["Textdokument.txt"]="Dies ist eine Standard-Textdatei."
["Markdown-Dokument.md"]="# Markdown-Vorlage\n\nHier beginnt dein Markdown-Dokument."
["Bash-Skript.sh"]="#!/bin/bash\n\necho 'Hello, world!'"
["Python-Skript.py"]='#!/usr/bin/env python3\n\nprint("Hello, world!")'
)
for FILE in "${!TEMPLATES[@]}"; do
TEMPLATE_PATH="$TEMPLATES_DIR/$FILE"
if [[ ! -f "$TEMPLATE_PATH" ]]; then
echo -e "${TEMPLATES[$FILE]}" >"$TEMPLATE_PATH"
chmod +x "$TEMPLATE_PATH" # Falls Skript
echo "✅ Vorlage erstellt: $FILE"
else
echo "️ Vorlage existiert bereits: $FILE"
fi
done
# Zielverzeichnis und UserKeybinds-Datei definieren
SOURCE_DIR="$HOME/.config/hypr/scripts"
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
for FILE in "$TARGET_DIR"/*; do
if [[ -f "$FILE" ]]; then
BASENAME=$(basename "$FILE")
SOURCE_FILE="$SOURCE_DIR/$BASENAME"
# Prüfen, ob die Datei im Quellverzeichnis existiert und angepasst werden musste
if [[ -f "$SOURCE_FILE" ]] && ! grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos' "$SOURCE_FILE"; then
echo "🗑️ Entferne fälschlicherweise kopierte Datei: $BASENAME"
rm "$FILE"
# Rückgängig machen der falschen Verweise in UserKeybinds.conf
if [[ -f "$USER_KEYBINDS_FILE" ]]; then
echo "🔄 Setze falschen Verweis für $BASENAME in $USER_KEYBINDS_FILE zurück..."
sed -i "s|\$UserScripts/$BASENAME|\$scriptsDir/$BASENAME|g" "$USER_KEYBINDS_FILE"
echo "✅ Verweis für $BASENAME zurückgesetzt."
fi
else
echo "✅ Datei $BASENAME ist korrekt und bleibt erhalten."
fi
fi
done
else
echo "⚠️ Zielverzeichnis $TARGET_DIR existiert nicht. Keine Bereinigung erforderlich."
fi
# Kopiere nur relevante Dateien und behalte die Verzeichnisstruktur bei
echo "📂 Verarbeite Dateien im Verzeichnis $SOURCE_DIR..."
mkdir -p "$TARGET_DIR"
COPIED_FILES=() # Array, um die tatsächlich kopierten Dateien zu speichern
if [[ -d "$SOURCE_DIR" ]]; then
find "$SOURCE_DIR" -type f | while read -r FILE; do
RELATIVE_PATH="${FILE#$SOURCE_DIR/}" # Relativer Pfad zur Datei
TARGET_PATH="$TARGET_DIR/$RELATIVE_PATH"
# Prüfen, ob die Datei angepasst werden muss
if grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos|/home/[a-zA-Z0-9._-]*/Desktop|/home/[a-zA-Z0-9._-]*/Downloads|/home/[a-zA-Z0-9._-]*/Documents|/home/[a-zA-Z0-9._-]*/Pictures|/home/[a-zA-Z0-9._-]*/Music|/home/[a-zA-Z0-9._-]*/Videos|\$\(xdg-user-dir\)/Desktop|\$\(xdg-user-dir\)/Downloads|\$\(xdg-user-dir\)/Documents|\$\(xdg-user-dir\)/Pictures|\$\(xdg-user-dir\)/Music|\$\(xdg-user-dir\)/Videos' "$FILE"; then
echo "🔄 Kopiere Datei zur Anpassung: $RELATIVE_PATH"
mkdir -p "$(dirname "$TARGET_PATH")" # Zielverzeichnis erstellen
cp "$FILE" "$TARGET_PATH"
COPIED_FILES+=("$RELATIVE_PATH") # Relativen Pfad speichern
else
echo "️ Datei $RELATIVE_PATH benötigt keine Anpassung. Überspringe Kopieren."
fi
done
else
echo "⚠️ Quellverzeichnis $SOURCE_DIR existiert nicht. Überspringe Verarbeitung."
fi
# Ersetzungen in allen Dateien im Verzeichnis UserScripts vornehmen
echo "🔄 Ersetze absolute Pfade, XDG-Verzeichnisse und Platzhalter in allen Dateien im Verzeichnis $TARGET_DIR..."
for FILE in "$TARGET_DIR"/*; do
if [[ -f "$FILE" ]]; then
echo "Verarbeite Datei: $FILE"
# Ersetzungen vornehmen
sed -i \
-e 's|\$HOME/Desktop|$(xdg-user-dir DESKTOP)|g' \
-e 's|\$HOME/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
-e 's|\$HOME/Documents|$(xdg-user-dir DOCUMENTS)|g' \
-e 's|\$HOME/Pictures|$(xdg-user-dir PICTURES)|g' \
-e 's|\$HOME/Music|$(xdg-user-dir MUSIC)|g' \
-e 's|\$HOME/Videos|$(xdg-user-dir VIDEOS)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Desktop|$(xdg-user-dir DESKTOP)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Documents|$(xdg-user-dir DOCUMENTS)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Pictures|$(xdg-user-dir PICTURES)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Music|$(xdg-user-dir MUSIC)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Videos|$(xdg-user-dir VIDEOS)|g' \
-e 's|$(xdg-user-dir)/Desktop|$(xdg-user-dir DESKTOP)|g' \
-e 's|$(xdg-user-dir)/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
-e 's|$(xdg-user-dir)/Documents|$(xdg-user-dir DOCUMENTS)|g' \
-e 's|$(xdg-user-dir)/Pictures|$(xdg-user-dir PICTURES)|g' \
-e 's|$(xdg-user-dir)/Music|$(xdg-user-dir MUSIC)|g' \
-e 's|$(xdg-user-dir)/Videos|$(xdg-user-dir VIDEOS)|g' \
"$FILE"
echo "✅ Ersetzungen in $FILE abgeschlossen."
fi
done
# Verweise in UserKeybinds.conf anpassen
if [[ -f "$USER_KEYBINDS_FILE" ]]; then
echo "🔄 Passe Verweise in $USER_KEYBINDS_FILE an..."
for SCRIPT in "${COPIED_FILES[@]}"; do
# Ersetze $scriptsDir/<Dateiname> durch $UserScripts/<Dateiname>
sed -i "s|\$scriptsDir/$SCRIPT|\$UserScripts/$SCRIPT|g" "$USER_KEYBINDS_FILE"
echo "✅ Verweis für $SCRIPT angepasst."
done
else
echo "⚠️ Datei $USER_KEYBINDS_FILE existiert nicht. Überspringe Anpassung der Verweise."
fi
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/"
fi
echo "✅ Skript erfolgreich ausgeführt!"
-77
View File
@@ -1,77 +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
if [[ -z "$SUDO_USER" || "$SUDO_USER" == "root" ]]; then
echo "❌ Fehler: Das Skript muss mit 'sudo' von einem normalen Benutzer ausgeführt werden."
exit 1
fi
USER_NAME="$SUDO_USER"
echo "🔄 Plymouth und benötigte Pakete installieren..."
pacman -Syu --noconfirm plymouth
sudo -u $USER_NAME yay -Syu plymouth-theme-archlinux --noconfirm
# 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
# Initramfs neu erstellen
echo "🔄 Initramfs wird aktualisiert..."
mkinitcpio -P
# Arch Plymouth-Theme setzen
echo "🎨 Setze Plymouth-Theme auf 'arch'..."
plymouth-set-default-theme -R archlinux
# Korrekte systemd-boot Konfigurationsdatei suchen
BOOT_ENTRY_DIR="/boot/loader/entries"
BOOT_ENTRY_FILE=$(find "$BOOT_ENTRY_DIR" -name "*.conf" | head -n 1)
if [[ -z "$BOOT_ENTRY_FILE" ]]; then
echo "❌ Keine systemd-boot Eintragsdatei gefunden!"
exit 1
fi
echo "🔍 Gefundene Konfigurationsdatei: $BOOT_ENTRY_FILE"
# Backup erstellen
BACKUP_FILE="${BOOT_ENTRY_FILE}.backup_$(date +%Y%m%d%H%M%S)"
cp "$BOOT_ENTRY_FILE" "$BACKUP_FILE"
echo "🛑 Backup gespeichert unter: $BACKUP_FILE"
NEW_PARAMS="quiet splash vt.global_cursor_default=0 loglevel=3 rd.luks.options=discard plymouth.ignore-serial-consoles"
# Prüfen, ob bereits eine "options"-Zeile existiert
if grep -q "^options " "$BOOT_ENTRY_FILE"; then
# Vorhandene Optionen extrahieren
EXISTING_PARAMS=$(grep "^options " "$BOOT_ENTRY_FILE" | cut -d' ' -f2-)
# Fehlende Parameter hinzufügen
for param in $NEW_PARAMS; do
if ! grep -qw "$param" <<< "$EXISTING_PARAMS"; then
EXISTING_PARAMS+=" $param"
fi
done
# Datei mit neuen Optionen aktualisieren
sed -i "s|^options .*|options $EXISTING_PARAMS|" "$BOOT_ENTRY_FILE"
else
# Falls keine options-Zeile existiert, einfach neue hinzufügen
echo "options $NEW_PARAMS" >> "$BOOT_ENTRY_FILE"
fi
echo "✅ Einrichtung abgeschlossen. Bitte starte das System neu, um die Änderungen zu übernehmen."
Executable
+227
View File
@@ -0,0 +1,227 @@
#!/bin/bash
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."
exit 1
fi
# System aktualisieren und benötigte Pakete installieren
echo "🔄 System wird aktualisiert..."
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
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
# Flatpak Flathub-Repo hinzufügen
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Waterfox-Installation
echo "🌍 Waterfox wird installiert..."
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
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
# Waterfox als Standardbrowser setzen
echo "🌍 Setze Waterfox als Standardbrowser..."
if command -v xdg-settings >/dev/null 2>&1; then
xdg-settings set default-web-browser waterfox.desktop
echo "✅ Waterfox wurde als Standardbrowser gesetzt."
# Standardanwendungen für spezifische Dateitypen setzen
xdg-mime default waterfox.desktop text/html
xdg-mime default waterfox.desktop application/xhtml+xml
xdg-mime default waterfox.desktop x-scheme-handler/http
xdg-mime default waterfox.desktop x-scheme-handler/https
else
echo "❌ 'xdg-settings' ist nicht verfügbar. Bitte manuell den Standardbrowser setzen."
fi
# Hyprland User Bindings
HYPR_CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
mkdir -p "$HYPR_CONFIG_DIR"
# Keybinds hinzufügen (falls nicht vorhanden)
declare -A KEYBINDS=(
["bindr = \$mainMod, \$mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window"]="rofi menu"
["bindr = \$mainMod, L, exec, \$scriptsDir/LockScreen.sh"]="screen lock"
["bindr = \$mainMod, V, exec, \$scriptsDir/ClipManager.sh"]="Clipboard Manager"
)
for BIND in "${!KEYBINDS[@]}"; do
FULL_BIND="$BIND # ${KEYBINDS[$BIND]}"
if ! grep -Fxq "$FULL_BIND" "$HYPR_CONFIG_DIR/UserKeybinds.conf" 2>/dev/null; then
echo "$FULL_BIND" >>"$HYPR_CONFIG_DIR/UserKeybinds.conf"
echo "✅ Keybind hinzugefügt: ${KEYBINDS[$BIND]}"
else
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
echo "📂 Standardvorlagen werden im Vorlagen-Ordner erstellt..."
TEMPLATES_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Vorlagen")
mkdir -p "$TEMPLATES_DIR"
# Vorlagenliste
declare -A TEMPLATES=(
["Textdokument.txt"]="Dies ist eine Standard-Textdatei."
["Markdown-Dokument.md"]="# Markdown-Vorlage\n\nHier beginnt dein Markdown-Dokument."
["Bash-Skript.sh"]="#!/bin/bash\n\necho 'Hello, world!'"
["Python-Skript.py"]='#!/usr/bin/env python3\n\nprint("Hello, world!")'
)
for FILE in "${!TEMPLATES[@]}"; do
TEMPLATE_PATH="$TEMPLATES_DIR/$FILE"
if [[ ! -f "$TEMPLATE_PATH" ]]; then
echo -e "${TEMPLATES[$FILE]}" >"$TEMPLATE_PATH"
chmod +x "$TEMPLATE_PATH" # Falls Skript
echo "✅ Vorlage erstellt: $FILE"
else
echo "️ Vorlage existiert bereits: $FILE"
fi
done
# Zielverzeichnis und UserKeybinds-Datei definieren
SOURCE_DIR="$HOME/.config/hypr/scripts"
TARGET_DIR="$HOME/.config/hypr/UserScripts"
CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
USER_KEYBINDS_FILE="$CONFIG_DIR/UserKeybinds.conf" # Definition an der richtigen Stelle
# Bereinige fälschlicherweise kopierte Dateien
echo "📂 Überprüfe und bereinige Dateien im Verzeichnis $TARGET_DIR..."
if [[ -d "$TARGET_DIR" ]]; then
for FILE in "$TARGET_DIR"/*; do
if [[ -f "$FILE" ]]; then
BASENAME=$(basename "$FILE")
SOURCE_FILE="$SOURCE_DIR/$BASENAME"
# Prüfen, ob die Datei im Quellverzeichnis existiert und angepasst werden musste
if [[ -f "$SOURCE_FILE" ]] && ! grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos' "$SOURCE_FILE"; then
echo "🗑️ Entferne fälschlicherweise kopierte Datei: $BASENAME"
rm "$FILE"
# Rückgängig machen der falschen Verweise in UserKeybinds.conf
if [[ -f "$USER_KEYBINDS_FILE" ]]; then
echo "🔄 Setze falschen Verweis für $BASENAME in $USER_KEYBINDS_FILE zurück..."
sed -i "s|\$UserScripts/$BASENAME|\$scriptsDir/$BASENAME|g" "$USER_KEYBINDS_FILE"
echo "✅ Verweis für $BASENAME zurückgesetzt."
fi
else
echo "✅ Datei $BASENAME ist korrekt und bleibt erhalten."
fi
fi
done
else
echo "⚠️ Zielverzeichnis $TARGET_DIR existiert nicht. Keine Bereinigung erforderlich."
fi
# Kopiere nur relevante Dateien und behalte die Verzeichnisstruktur bei
echo "📂 Verarbeite Dateien im Verzeichnis $SOURCE_DIR..."
mkdir -p "$TARGET_DIR"
COPIED_FILES=() # Array, um die tatsächlich kopierten Dateien zu speichern
if [[ -d "$SOURCE_DIR" ]]; then
find "$SOURCE_DIR" -type f | while read -r FILE; do
RELATIVE_PATH="${FILE#$SOURCE_DIR/}" # Relativer Pfad zur Datei
TARGET_PATH="$TARGET_DIR/$RELATIVE_PATH"
# Prüfen, ob die Datei angepasst werden muss
if grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos|/home/[a-zA-Z0-9._-]*/Desktop|/home/[a-zA-Z0-9._-]*/Downloads|/home/[a-zA-Z0-9._-]*/Documents|/home/[a-zA-Z0-9._-]*/Pictures|/home/[a-zA-Z0-9._-]*/Music|/home/[a-zA-Z0-9._-]*/Videos|\$\(xdg-user-dir\)/Desktop|\$\(xdg-user-dir\)/Downloads|\$\(xdg-user-dir\)/Documents|\$\(xdg-user-dir\)/Pictures|\$\(xdg-user-dir\)/Music|\$\(xdg-user-dir\)/Videos' "$FILE"; then
echo "🔄 Kopiere Datei zur Anpassung: $RELATIVE_PATH"
mkdir -p "$(dirname "$TARGET_PATH")" # Zielverzeichnis erstellen
cp "$FILE" "$TARGET_PATH"
COPIED_FILES+=("$RELATIVE_PATH") # Relativen Pfad speichern
else
echo "️ Datei $RELATIVE_PATH benötigt keine Anpassung. Überspringe Kopieren."
fi
done
else
echo "⚠️ Quellverzeichnis $SOURCE_DIR existiert nicht. Überspringe Verarbeitung."
fi
# Ersetzungen in allen Dateien im Verzeichnis UserScripts vornehmen
echo "🔄 Ersetze absolute Pfade, XDG-Verzeichnisse und Platzhalter in allen Dateien im Verzeichnis $TARGET_DIR..."
for FILE in "$TARGET_DIR"/*; do
if [[ -f "$FILE" ]]; then
echo "Verarbeite Datei: $FILE"
# Ersetzungen vornehmen
sed -i \
-e 's|\$HOME/Desktop|$(xdg-user-dir DESKTOP)|g' \
-e 's|\$HOME/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
-e 's|\$HOME/Documents|$(xdg-user-dir DOCUMENTS)|g' \
-e 's|\$HOME/Pictures|$(xdg-user-dir PICTURES)|g' \
-e 's|\$HOME/Music|$(xdg-user-dir MUSIC)|g' \
-e 's|\$HOME/Videos|$(xdg-user-dir VIDEOS)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Desktop|$(xdg-user-dir DESKTOP)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Documents|$(xdg-user-dir DOCUMENTS)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Pictures|$(xdg-user-dir PICTURES)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Music|$(xdg-user-dir MUSIC)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Videos|$(xdg-user-dir VIDEOS)|g' \
-e 's|$(xdg-user-dir)/Desktop|$(xdg-user-dir DESKTOP)|g' \
-e 's|$(xdg-user-dir)/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
-e 's|$(xdg-user-dir)/Documents|$(xdg-user-dir DOCUMENTS)|g' \
-e 's|$(xdg-user-dir)/Pictures|$(xdg-user-dir PICTURES)|g' \
-e 's|$(xdg-user-dir)/Music|$(xdg-user-dir MUSIC)|g' \
-e 's|$(xdg-user-dir)/Videos|$(xdg-user-dir VIDEOS)|g' \
"$FILE"
echo "✅ Ersetzungen in $FILE abgeschlossen."
fi
done
# Verweise in UserKeybinds.conf anpassen
if [[ -f "$USER_KEYBINDS_FILE" ]]; then
echo "🔄 Passe Verweise in $USER_KEYBINDS_FILE an..."
for SCRIPT in "${COPIED_FILES[@]}"; do
# Ersetze $scriptsDir/<Dateiname> durch $UserScripts/<Dateiname>
sed -i "s|\$scriptsDir/$SCRIPT|\$UserScripts/$SCRIPT|g" "$USER_KEYBINDS_FILE"
echo "✅ Verweis für $SCRIPT angepasst."
done
else
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!"
-39
View File
@@ -1,39 +0,0 @@
#!/bin/bash
# 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
# System aktualisieren
echo "🔄 System wird aktualisiert..."
pacman -Syu --noconfirm || { echo "❌ Fehler beim Aktualisieren des Systems."; exit 1; }
# 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
echo "🔄 Steam wird installiert..."
# Steam aus dem offiziellen Repository installieren
pacman -S --noconfirm steam || { echo "❌ Fehler beim Installieren von Steam."; exit 1; }
echo "✅ Steam wurde erfolgreich installiert."
fi
# 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
echo "🔄 Lutris wird installiert..."
# Lutris aus dem offiziellen Repository installieren
pacman -S --noconfirm lutris || { echo "❌ Fehler beim Installieren von Lutris."; exit 1; }
echo "✅ Lutris wurde erfolgreich installiert."
fi
echo "✅ Skript abgeschlossen!"
+19
View File
@@ -0,0 +1,19 @@
#!/bin/bash
# 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
# System aktualisieren
apt update && apt upgrade -y
# Steam-Installation
dpkg --add-architecture i386
apt update
apt install -y wget curl
apt install -y steam lutris
echo "✅ Installation von Steam und Lutris abgeschlossen!"
+3 -2
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 *ARCH Linux* 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
@@ -19,7 +20,7 @@ Um die Skripte in diesem Repository auszuführen, stelle sicher, dass die folgen
1. Klone das Repository:
```bash
git clone -b arch https://gitea.creative-dragonslayer.de/DragonSlayer_14/Setup.git
git clone https://gitea.creative-dragonslayer.de/DragonSlayer_14/Setup.git
```
2. Wechsle in den richtigen Branch.
3. Navigiere in das Verzeichnis `Setup`, um die ausführbaren Dateien und Ressourcen zu finden.