35 Commits

Author SHA1 Message Date
a8f6424d7c Fix: Flasche Formatierung. 2025-03-27 12:16:33 +01:00
112effff69 Fix: Aktiviert ufw. 2025-03-27 12:12:24 +01:00
49630272c5 Ref: Ändert Dateibenennung. 2025-03-25 11:26:24 +01:00
50468884d2 Feat: Logging mit Abfrage. 2025-03-25 11:24:06 +01:00
5d723f8c26 Feat: Fügt network-manager-gnome hinzu. 2025-03-23 16:30:21 +01:00
3fa1f007c2 Feat: Fügt Obfuscate hinzu 2025-03-13 16:10:03 +01:00
794a23cf01 Feat: installiert Bleachbit 2025-03-13 09:32:59 +01:00
a1635cc40e feat: Fügt Virenschutz hinzu. 2025-03-13 08:56:51 +01:00
dfaac4730e Feat: Setzt an andere Stellen. 2025-03-10 18:38:25 +01:00
68c2534576 Feat: Fügt tuxedo-control-center zum Autostart hinzu. 2025-03-10 18:35:52 +01:00
673849b3c2 Feat: Entfernt weitere Pakete von der Deinstallation. 2025-03-10 17:45:41 +01:00
515e978581 Feat: Passt Pakete an, die entfernt werden. 2025-03-10 17:18:06 +01:00
320060fa65 Feat: Entferne Grub-Config Anpassung. 2025-03-10 17:07:56 +01:00
7193e5cff3 Feat: Fügt ppa für VeraCrypt autoamtisch hinzu 2025-03-10 17:07:14 +01:00
1da25afe66 Ref: Entfernt unnötige Dinge. 2025-03-10 16:34:55 +01:00
f7b1bd93a1 Feat: Manuelles setzen des Plymouth Themes. 2025-03-10 16:26:00 +01:00
fe4d7f79be Feat: Fügt ein -y hinzu. 2025-03-10 15:49:52 +01:00
b438ae765b Feat: Fügt das isntallieren von Plymouth noch an einer anderes Stelle hinzu. 2025-03-10 15:39:06 +01:00
e68a2a312d Fix: Umbrüche bei neofetch und nur einfügen, wenn nicht vorhanden 2025-03-10 15:30:33 +01:00
8bfe82c40a Fix: Verwendet den richtigen User. 2025-03-10 15:27:44 +01:00
f9f32faa1b Feat: Ersetzt fastfetch mit neofetch. 2025-03-10 15:24:11 +01:00
badffdf682 Fix: Entferne das entfernen von Paketen. 2025-03-10 14:27:30 +01:00
10c3de710f Fix: Konfiguriert Tastatur. 2025-03-10 13:55:39 +01:00
75e39c2a4d Feat: Passt Pakete an. 2025-03-10 12:47:36 +01:00
84f7909292 Fix: Entfernt ein Paket. 2025-03-10 11:36:48 +01:00
d307b0a2f2 Fix: Tastaturpakete on hold setzen. 2025-03-10 11:31:58 +01:00
beccffac1e Fix: Passt install an. 2025-03-10 10:13:53 +01:00
4ca16ec273 Fix: Passt Berechtigungen an. 2025-03-10 10:02:32 +01:00
798629e756 Feat: Fügt Pakete zur Installation hinzu. 2025-03-10 09:41:33 +01:00
e9ac090a97 Ref: Entfernen von grafischer Benutzeroberfläche passiert an anderer Stelle. 2025-03-10 09:41:20 +01:00
84273f27df Feat: Entfernt grafische Oberfläche und etabliert eine Internetverbindung- 2025-03-10 09:40:03 +01:00
d991228c6b Feat: Passt die Debian 12 bookworm Install-Skripte für Tuxedo OS an. 2025-03-09 23:31:50 +01:00
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
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
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
11 changed files with 245 additions and 467 deletions

View File

@@ -6,144 +6,16 @@ if [ "$(id -u)" -ne 0 ]; then
exit 1 exit 1
fi fi
# System aktualisieren und benötigte Pakete installieren apt update && apt upgrade -y
pacman -Syu --noconfirm git sudo p7zip unrar unzip networkmanager tree bluez bluez-utils wget curl less ineturils apt install -y git sudo 7zip unrar unzip network-manager software-properties-common tree bluetooth wget curl
# Aktivieren und Starten von NetworkManager und Bluetooth-Diensten # sbin in Path
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 read -p "❓ Soll sbin für sudo-Nutzer in den PATH aufgenommen werden? (j/n) [n]: " answer
answer=${answer,,} answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
cat << 'EOF' >/etc/profile.d/sbin_in_path.sh cat << 'EOF' > /etc/profile.d/sbin_in_path.sh
if groups | grep -q "\bsudo\b"; then if groups | grep -q "\bsudo\b"; then
case ":$PATH:" in case ":$PATH:" in
*":/sbin:"*) ;; *":/sbin:"*) ;;
@@ -161,13 +33,13 @@ fi
# sudo-Hinweis # sudo-Hinweis
read -p "❓ Soll ein sudo-Hinweis hinzugefügt werden? (j/n) [n]: " answer read -p "❓ Soll ein sudo-Hinweis hinzugefügt werden? (j/n) [n]: " answer
answer=${answer,,} answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
cat << 'EOF' >/etc/profile.d/sudo_hint.sh 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 *\ sudo\ *) case " $(groups) " in *\ admin\ *|*\ sudo\ *)
if [ -x /usr/bin/sudo ]; then if [ -x /usr/bin/sudo ]; then
echo 'To run a command as administrator (user "root"), use "sudo <command>".' echo 'To run a command as administrator (user "root"), use "sudo <command>".'
echo 'See "man sudo_root" for details.' echo 'See "man sudo_root" for details.'
@@ -179,13 +51,13 @@ EOF
echo " sudo-Hinweis wurde hinzugefügt!" echo " sudo-Hinweis wurde hinzugefügt!"
fi fi
# XDG-Data-Dirs setzen # sudo-Hinweis
read -p "❓ Sollen die XDG-Data-Dirs gesetzt werden? (j/n) [n]: " answer read -p "❓ Sollen die XDG-Data-Dirs gesetzt werden? (j/n) [n]: " answer
answer=${answer,,} answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
cat << 'EOF' >/etc/profile.d/xdg_dirs_desktop_session.sh 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 # /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"
@@ -218,4 +90,13 @@ fi
chmod +x /etc/profile.d/* 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
fi
echo "✅ Abgeschlossen. Zum Anwenden der Änderungen bitte neu einloggen!" echo "✅ Abgeschlossen. Zum Anwenden der Änderungen bitte neu einloggen!"

View File

@@ -6,70 +6,26 @@ if [ "$(id -u)" -eq 0 ]; then
exit 1 exit 1
fi fi
yay -Syu # Verzeichnis setzen
REPO_DIR="/tmp/Linux-Active-Directory-join-script"
# Installiere adcli mit yay # Repository klonen, falls es noch nicht existiert
yay -S --noconfirm adcli || { echo "❌ Fehler beim Installieren von adcli"; exit 1; } if [ -d "$REPO_DIR" ]; then
echo " Repository existiert bereits. Überspringe das Klonen."
# 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 else
echo "session required pam_mkhomedir.so skel=/etc/skel/ umask=0077" | sudo tee -a /etc/pam.d/common-session echo " Klonen des Repositories..."
git clone https://gitea.creative-dragonslayer.de/DragonSlayer_14/Linux-Active-Directory-join-script.git "$REPO_DIR"
fi fi
# SSSD-Konfigurationsdatei anpassen # In das Verzeichnis wechseln
sudo sed -i -e 's/fallback_homedir = \/home\/%u@%d/#fallback_homedir = \/home\/%u@%d/g' /etc/sssd/sssd.conf cd "$REPO_DIR" || { echo "❌ Fehler: Konnte nicht in das Verzeichnis wechseln!"; exit 1; }
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 # AD-Skript ausführen
sudo sed -i '/krb5_realm =/a entry_cache_group_timeout = 5400' /etc/sssd/sssd.conf if [ -f "ADconnection.sh" ]; then
sudo sed -i '/krb5_realm =/a entry_cache_user_timeout = 5400' /etc/sssd/sssd.conf chmod +x ADconnection.sh
echo " Starte Active Directory setup mit: ./ADconnection.sh"
# Zusätzliche SSSD-Alternativen echo "⚠️ Achtung! Das Skript erkennt Tuxedo nicht. Passe es an, dass der ADJoin von Ubuntu ausgeführt wird!"
sudo echo "#entry_cache_user_timeout = 5400 else
#entry_cache_group_timeout = 5400 echo "❌ Fehler: ADconnection.sh nicht gefunden!"
#cache_credentials = TRUE exit 1
### Added to help with group mapping fi
###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!"

View File

@@ -1,22 +1,14 @@
#!/bin/bash #!/bin/bash
# Root-Rechte prüfen # Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
if [ "$(id -u)" -eq 0 ]; then if [[ $EUID -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
sudo pacman -Syu DIR = "/tmp/setup-hyprland"
yay -Syu
# Temporären Ordner erstellen mkdir -p $DIR
TEMP_DIR=$(mktemp -d) cd $DIR
# Skript in den temporären Ordner herunterladen sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Ubuntu-Hyprland/24.04/auto-install.sh)
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"

View File

@@ -15,17 +15,11 @@ 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 read -p "❓ Soll die shell für $USER_NAME auf ZSH gesetzt werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then 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 # Eintrag aus getent passwd holen
USER_ENTRY=$(getent passwd "$USER_NAME") USER_ENTRY=$(getent passwd "$USER_NAME")
@@ -44,8 +38,8 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
fi fi
# Repository klonen # Repository klonen
REPO_DIR="$USER_HOME/Debian-Hyprland" REPO_DIR="$USER_HOME/Ubuntu-Hyprland"
sudo -u "$USER_NAME" git clone https://github.com/JaKooLit/Arch-Hyprland.git "$REPO_DIR" 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 # Ordner nach ~/.oh-my-zsh/themes kopieren
THEME_SRC="$REPO_DIR/assets/add_zsh_theme" THEME_SRC="$REPO_DIR/assets/add_zsh_theme"
@@ -69,6 +63,32 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
else else
echo " 'source /etc/profile' ist bereits in /etc/zsh/zprofile vorhanden." echo " 'source /etc/profile' ist bereits in /etc/zsh/zprofile vorhanden."
fi 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
fi fi
echo "✅ Shell wurde erfolgreich auf ZSH gesetzt! Zum Anwenden, neue Terminal-Sitzung öffnen." echo "✅ Shell wurde erfolgreich auf ZSH gesetzt! Zum Anwenden, neue Terminal-Sitzung öffnen."

View File

@@ -16,14 +16,6 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/ad_login.conf" SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/ad_login.conf"
mkdir -p "$SDDM_CONF_DIR" 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 # Bestehende Konfiguration sichern und anpassen
if [[ -f "$SDDM_CUSTOM_CONF" ]]; then if [[ -f "$SDDM_CUSTOM_CONF" ]]; then
sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF" sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF"
@@ -43,15 +35,6 @@ EOF
# SSSD-Konfiguration anpassen, falls die Datei existiert # SSSD-Konfiguration anpassen, falls die Datei existiert
SSSD_CONF="/etc/sssd/sssd.conf" 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 [[ -f "$SSSD_CONF" ]]; then
if grep -q "^enumerate" "$SSSD_CONF"; then if grep -q "^enumerate" "$SSSD_CONF"; then
sed -i 's/^enumerate.*/enumerate = false/' "$SSSD_CONF" sed -i 's/^enumerate.*/enumerate = false/' "$SSSD_CONF"

View File

@@ -10,53 +10,63 @@ fi
# System aktualisieren und benötigte Pakete installieren # System aktualisieren und benötigte Pakete installieren
echo "🔄 System wird aktualisiert..." echo "🔄 System wird aktualisiert..."
sudo pacman -Syu --noconfirm sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
yay -Syu --noconfirm
echo " Firewall (ufw) wird installiert..." # Unnötige Pakete entfernen
sudo pacman -S --noconfirm ufw read -p "❓ Sollen unnötige KDE-Pakete entfernt werden? (j/n) [n]: " answer
sudo ufw enable answer=${answer,,} # In Kleinbuchstaben umwandeln
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 answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
yay -S portmaster-stub-bin --noconfirm echo "🔄 Entferne Pakete..."
sudo apt remove -y kmahjongg kmines kpat ksudoku nextcloud-desktop skanlite thunderbird virtualbox
fi
echo " Firewall (ufw) wird installiert..."
sudo apt install -y ufw
sudo ufw enable
echo " Virenschutz (clamav) wird installiert..."
sudo apt install -y enable clamav clamav-freshclam clamav-docs clamav-daemon
echo " Installiere Flatpak..."
sudo apt install -y flatpak
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
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!" echo "✅ Portmaster wurde installiert!"
fi fi
# Waterfox-Installation # Waterfox-Installation
read -p "❓ Soll Firefox durch Waterfox ersetzt werden? (j/n) [n]: " answer read -p "❓ Soll Firefox durch Waterfox ersetzt werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
if pacman -Q firefox &>/dev/null; then
sudo pacman -Rns --noconfirm firefox
fi
echo "🌍 Waterfox wird installiert..." echo "🌍 Waterfox wird installiert..."
yay -S --noconfirm waterfox sudo apt remove -y firefox
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
echo "✅ Waterfox wurde installiert!" echo "✅ Waterfox wurde installiert!"
# Waterfox als Standardbrowser setzen # Waterfox als Standardbrowser setzen
echo "🌍 Setze Waterfox als Standardbrowser..." echo "🌍 Setze Waterfox als Standardbrowser..."
if command -v xdg-settings >/dev/null 2>&1; then if command -v xdg-settings >/dev/null 2 >&1; then
xdg-settings set default-web-browser waterfox.desktop xdg-settings set default-web-browser waterfox.desktop
echo "✅ Waterfox wurde als Standardbrowser gesetzt." echo "✅ Waterfox wurde als Standardbrowser gesetzt."
@@ -70,12 +80,13 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
fi fi
fi fi
# Hyprland User Bindings # Hyprland Anpassungen
read -p "❓ Sollen Anpassungen an den Hyprland-Keybinds vorgenomen werden? (j/n) [n]: " answer read -p "❓ Sollen Anpassungen an den Hyprland-Configs vorgenomen werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# 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"
@@ -95,6 +106,27 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
echo " Keybind existiert bereits: ${KEYBINDS[$BIND]}" echo " Keybind existiert bereits: ${KEYBINDS[$BIND]}"
fi fi
done 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
fi fi
# Standardvorlagen ablegen # Standardvorlagen ablegen
@@ -128,10 +160,11 @@ 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 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,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then 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
@@ -192,25 +225,25 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
# Ersetzungen vornehmen # Ersetzungen vornehmen
sed -i \ sed -i \
-e 's|\$HOME/Desktop|$(xdg-user-dir DESKTOP)|g' \ -e 's|\$HOME/Desktop|$(xdg-user-dir DESKTOP)|g' \
-e 's|\$HOME/Downloads|$(xdg-user-dir DOWNLOAD)|g' \ -e 's|\$HOME/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
-e 's|\$HOME/Documents|$(xdg-user-dir DOCUMENTS)|g' \ -e 's|\$HOME/Documents|$(xdg-user-dir DOCUMENTS)|g' \
-e 's|\$HOME/Pictures|$(xdg-user-dir PICTURES)|g' \ -e 's|\$HOME/Pictures|$(xdg-user-dir PICTURES)|g' \
-e 's|\$HOME/Music|$(xdg-user-dir MUSIC)|g' \ -e 's|\$HOME/Music|$(xdg-user-dir MUSIC)|g' \
-e 's|\$HOME/Videos|$(xdg-user-dir VIDEOS)|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._-]*/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._-]*/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._-]*/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._-]*/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._-]*/Music|$(xdg-user-dir MUSIC)|g' \
-e 's|/home/[a-zA-Z0-9._-]*/Videos|$(xdg-user-dir VIDEOS)|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)/Desktop|$(xdg-user-dir DESKTOP)|g' \
-e 's|$(xdg-user-dir)/Downloads|$(xdg-user-dir DOWNLOAD)|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)/Documents|$(xdg-user-dir DOCUMENTS)|g' \
-e 's|$(xdg-user-dir)/Pictures|$(xdg-user-dir PICTURES)|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)/Music|$(xdg-user-dir MUSIC)|g' \
-e 's|$(xdg-user-dir)/Videos|$(xdg-user-dir VIDEOS)|g' \ -e 's|$(xdg-user-dir)/Videos|$(xdg-user-dir VIDEOS)|g' \
"$FILE" "$FILE"
echo "✅ Ersetzungen in $FILE abgeschlossen." echo "✅ Ersetzungen in $FILE abgeschlossen."
fi fi
@@ -228,9 +261,14 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
echo "⚠️ Datei $USER_KEYBINDS_FILE existiert nicht. Überspringe Anpassung der Verweise." echo "⚠️ Datei $USER_KEYBINDS_FILE existiert nicht. Überspringe Anpassung der Verweise."
fi fi
echo "📂 Verschiebe $(xdg-user-dir)/Pictures nach $(xdg-user-dir PICTURES)..." # Überprüfen, ob der Ordner existiert
rsync -av --ignore-existing "$(xdg-user-dir)/Pictures/" "$(xdg-user-dir PICTURES)/" if [ -d "$(xdg-user-dir)/Pictures" ]; then
rm -r "$(xdg-user-dir)/Pictures/" 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
fi fi
echo "✅ Skript erfolgreich ausgeführt!" echo "✅ Skript erfolgreich ausgeführt!"

32
6_GamingSetup.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/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
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 steam
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
apt install -y lutris
fi
echo "✅ Skript abgeschlossen!"

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."

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!"

View File

@@ -22,8 +22,8 @@ declare -A FLATPAK_APPS=(
) )
for APP in "${!FLATPAK_APPS[@]}"; do for APP in "${!FLATPAK_APPS[@]}"; do
if pacman -Qs "${FLATPAK_APPS[$APP]}" &>/dev/null; then if dpkg -l | grep -iq "${FLATPAK_APPS[$APP]}"; then
echo "${FLATPAK_APPS[$APP]} ist bereits als Paket installiert." echo "${FLATPAK_APPS[$APP]} ist bereits als DEB-Paket installiert."
elif flatpak list | grep -q "$APP"; then elif flatpak list | grep -q "$APP"; then
echo "${FLATPAK_APPS[$APP]} ist bereits als Flatpak installiert." echo "${FLATPAK_APPS[$APP]} ist bereits als Flatpak installiert."
else else
@@ -33,7 +33,7 @@ for APP in "${!FLATPAK_APPS[@]}"; do
done done
# Dynamischen Vorlagen-Ordner ermitteln # Dynamischen Vorlagen-Ordner ermitteln
TEMPLATE_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Vorlagen") TEMPLATE_DIR=$(xdg-user-dir TEMPLATES 2 >/dev/null || echo "$HOME/Vorlagen")
mkdir -p "$TEMPLATE_DIR" mkdir -p "$TEMPLATE_DIR"
# Prüfen, ob LibreOffice als Flatpak installiert ist # Prüfen, ob LibreOffice als Flatpak installiert ist
@@ -42,7 +42,7 @@ if flatpak list | grep -q "org.libreoffice.LibreOffice"; then
elif command -v libreoffice &>/dev/null; then elif command -v libreoffice &>/dev/null; then
LO_CMD="libreoffice" LO_CMD="libreoffice"
else 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 exit 1
fi fi
@@ -63,13 +63,27 @@ fi
# Spotify-Installation # Spotify-Installation
echo "🎵 Überprüfe 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." echo "✅ Spotify ist bereits installiert."
else else
echo "🔄 Installiere Spotify..." 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 fi
# Spotify .desktop-Datei erstellen # Spotify .desktop-Datei erstellen
@@ -96,7 +110,7 @@ dependencies=(man fzf ripgrep awk w3m coreutils parallel)
for dep in "${dependencies[@]}"; do for dep in "${dependencies[@]}"; do
if ! command -v "$dep" &>/dev/null; then if ! command -v "$dep" &>/dev/null; then
echo "🔄 Installiere $dep..." echo "🔄 Installiere $dep..."
sudo pacman -S --noconfirm "$dep" sudo apt install -y "$dep"
else else
echo "$dep ist bereits installiert." echo "$dep ist bereits installiert."
fi fi
@@ -106,7 +120,7 @@ done
# Tealdeer (tldr-Client) installieren # Tealdeer (tldr-Client) installieren
if ! command -v tldr &>/dev/null; then if ! command -v tldr &>/dev/null; then
echo "🔄 Installiere tealdeer..." echo "🔄 Installiere tealdeer..."
sudo pacman -S --noconfirm tealdeer sudo apt install -y tealdeer
else else
echo "✅ Tealdeer ist bereits installiert." echo "✅ Tealdeer ist bereits installiert."
fi fi
@@ -130,7 +144,7 @@ if ! command -v wikiman &>/dev/null; then
# Prüfen, ob `make` installiert ist # Prüfen, ob `make` installiert ist
if ! command -v make &>/dev/null; then if ! command -v make &>/dev/null; then
echo "🔄 Installiere make..." echo "🔄 Installiere make..."
sudo pacman -S --noconfirm make sudo apt install -y make
fi fi
git clone 'https://github.com/filiparag/wikiman' ~/wikiman 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 xdg-mime default org.gnome.Loupe.desktop image/png
# Disk-Utility, PDF-Viewer (Okular), Softwarecenter und Flatpak-Plugin, Systemmonitor # 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 # Okular als Standard-PDF-Viewer setzen
xdg-mime default okularApplication_pdf.desktop application/pdf xdg-mime default okularApplication_pdf.desktop application/pdf
# Betterbird als Standard-Mail-Programm setzen # Betterbird als Standard-Mail-Programm setzen
@@ -228,34 +242,25 @@ flatpak install com.github.tchx84.Flatseal -y
# VeraCrypt installieren # VeraCrypt installieren
read -p "❓ Soll VeraCrypt installiert werden? (j/n) [n]: " answer read -p "❓ Soll VeraCrypt installiert werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then if [[ "$answer" == "j" ]] || [[ "$anwser" == "y" ]]; then
echo "🔄 Installiere VeraCrypt..." echo "🔄 Installiere VeraCrypt..."
sudo add-apt-repository ppa:unit193/encryption -y
# VeraCrypt aus den Arch-Repositories installieren sudo apt update
if ! command -v veracrypt &>/dev/null; then sudo apt install -y veracrypt
sudo pacman -S --noconfirm veracrypt
else
echo "✅ VeraCrypt ist bereits installiert."
fi
fi fi
# Webmin installieren # Webmin installieren
read -p "❓ Soll Webmin installiert werden? (j/n) [n]: " answer read -p "❓ Soll webmin installiert werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then if [[ "$answer" == "j" ]] || [[ "$anwser" == "y" ]]; then
echo "🔄 Installiere Webmin..." 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
# Webmin aus dem AUR installieren (falls yay vorhanden ist) sudo apt install webmin -y --install-recommends
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 fi
# Waydroid installieren # Waydroid installieren
@@ -263,31 +268,17 @@ read -p "❓ Soll Waydroid installiert werden? (j/n) [n]: " answer
answer=${answer,,} # In Kleinbuchstaben umwandeln answer=${answer,,} # In Kleinbuchstaben umwandeln
answer=${answer:-n} # Standardwert 'n', falls leer answer=${answer:-n} # Standardwert 'n', falls leer
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then if [[ "$answer" == "j" ]] || [[ "$anwser" == "y" ]]; then
echo "🔄 Installiere Waydroid über AUR..." sudo apt install curl ca-certificates -y
curl -s https://repo.waydro.id | sudo bash -s -- -s noble
sudo apt install waydroid -y
# Überprüfen, ob yay installiert ist sudo ufw allow 53
if ! command -v yay &>/dev/null; then sudo ufw allow 67
echo "❌ Yay ist nicht installiert. Bitte installiere yay und versuche es erneut." sudo ufw default allow FORWARD
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 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 sudo cat << 'EOF' | sudo tee /etc/profile.d/hide_waydroid_apps.sh > /dev/null
for app in ~/.local/share/applications/waydroid.*.desktop; do for app in ~/.local/share/applications/waydroid.*.desktop; do
grep -q NoDisplay $app || sed '/^Icon=/a NoDisplay=true' -i $app grep -q NoDisplay $app || sed '/^Icon=/a NoDisplay=true' -i $app

View File

@@ -5,7 +5,8 @@
Dieses Repository enthält Skripte um ein Linux System mit Hyprland und diversen Programmen aufzusetzen. 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. 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 ## Anforderungen
@@ -19,7 +20,7 @@ Um die Skripte in diesem Repository auszuführen, stelle sicher, dass die folgen
1. Klone das Repository: 1. Klone das Repository:
```bash ```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. 2. Wechsle in den richtigen Branch.
3. Navigiere in das Verzeichnis `Setup`, um die ausführbaren Dateien und Ressourcen zu finden. 3. Navigiere in das Verzeichnis `Setup`, um die ausführbaren Dateien und Ressourcen zu finden.