59 Commits

Author SHA1 Message Date
admin-dragonslayer_14 f3f58fb20c Fix: Entfernt Paket. 2025-03-26 16:49:45 +01:00
admin-dragonslayer_14 d82f4ba1d2 Fix: Ersetzt apt durch pacman. 2025-03-26 16:46:01 +01:00
admin-dragonslayer_14 d48448d344 Fix: Verbessert setzen der options. 2025-03-26 16:34:39 +01:00
admin-dragonslayer_14 d50a2ae636 Fix: Passt Konfigurationsdatei suchen an. 2025-03-26 16:28:40 +01:00
admin-dragonslayer_14 1bed0aea74 Fix: FÜhrt yay als Nutzer aus. 2025-03-26 16:21:46 +01:00
admin-dragonslayer_14 d37ff58150 Feat: Entfernt Abfrage, ob Plymouth bereits installiert ist. 2025-03-26 16:19:39 +01:00
admin-dragonslayer_14 adac814af2 Fix: Fügt noconfirm hinzu 2025-03-26 16:18:52 +01:00
admin-dragonslayer_14 197eb742ab Feat: Passt Themenamen an. 2025-03-26 16:17:14 +01:00
admin-dragonslayer_14 34aad09589 Fix: Führt yay nicht als root aus. 2025-03-26 14:51:57 +01:00
admin-dragonslayer_14 1da072d3f1 Fix: Entfernt Firefox nur, wenn nicht vorhanden. 2025-03-26 14:50:55 +01:00
admin-dragonslayer_14 a12e9586a3 Fix: Fügt --noconfirm hinzu. 2025-03-26 14:48:16 +01:00
admin-dragonslayer_14 f5691141cf Fix: Passt Portmaster-Install für Arch an. 2025-03-26 14:47:12 +01:00
admin-dragonslayer_14 a23e56dc17 Feat: Update vor hyprland-Install. 2025-03-26 13:37:44 +01:00
admin-dragonslayer_14 d07745555d Fix: Yay ohne sudo. 2025-03-26 13:34:02 +01:00
admin-dragonslayer_14 71a8e26b5e Fix: yay ohne sudo. 2025-03-26 13:33:22 +01:00
admin-dragonslayer_14 f45a1c573b Fix: Passt aktivieren von multilib an. 2025-03-26 13:29:21 +01:00
admin-dragonslayer_14 cc73cc0009 Fix: Fügt Code dir hinzu. 2025-03-26 13:09:47 +01:00
admin-dragonslayer_14 a681db6e29 Fix: Übergebt User richtig. 2025-03-26 13:06:56 +01:00
admin-dragonslayer_14 24f0133c8c Pass README für Arch an. 2025-03-26 13:05:17 +01:00
admin-dragonslayer_14 0a985a7885 Passt README für Arch an. 2025-03-26 13:05:00 +01:00
admin-dragonslayer_14 af2426aad0 Feat: Passt das Skript für Arch an. 2025-03-26 13:03:28 +01:00
admin-dragonslayer_14 2ef89e705f Feat: Passt das Skript für Arch an. 2025-03-26 12:55:10 +01:00
admin-dragonslayer_14 6a00d99cf1 Feat: Fügt das multilib-Repository hinzu. 2025-03-26 12:54:46 +01:00
admin-dragonslayer_14 25c97c6b14 Unter Arch nicht nötig. 2025-03-26 12:46:30 +01:00
admin-dragonslayer_14 869fac02d8 Feat: Passt das Skript für Arch an. 2025-03-26 12:46:22 +01:00
admin-dragonslayer_14 dfe04920a9 Feat: Passt Skript für Arch an. 2025-03-26 12:42:05 +01:00
admin-dragonslayer_14 21ec71fcb9 Feat: Passt Skript für Arch an. 2025-03-26 12:41:27 +01:00
admin-dragonslayer_14 b9279dd49d Feat: Installiert Pakete über yay. 2025-03-26 12:41:10 +01:00
admin-dragonslayer_14 a8bf67f3b3 Feat: Konfiguriert systemd-boot. 2025-03-26 12:40:59 +01:00
admin-dragonslayer_14 9bce359357 Feat: Führt Teile des Skripts nicht als root aus. 2025-03-26 12:12:03 +01:00
admin-dragonslayer_14 1a0a22569f Feat: Geht zurück ins aktuelle Verzeichnis. 2025-03-26 12:11:07 +01:00
admin-dragonslayer_14 21ac1d7c92 Feat: Fügt Yay-Installation hinzu. 2025-03-26 12:10:13 +01:00
admin-dragonslayer_14 c2e808091c Feat: Passt das Skript für Arch an. 2025-03-26 11:59:32 +01:00
admin-dragonslayer_14 73f2608345 Feat: Erstellt Backups der Config-Dateien. 2025-03-26 11:59:15 +01:00
admin-dragonslayer_14 24c40da400 Feat: Passt das Skript für Arch an. 2025-03-26 11:57:02 +01:00
admin-dragonslayer_14 a986c0b2d6 Feat: Passt das Skript für Arch an. 2025-03-26 11:54:26 +01:00
admin-dragonslayer_14 34794cd17e Feat: Fügt Fehlerbehandlung ein. 2025-03-26 11:52:17 +01:00
admin-dragonslayer_14 0f128ba569 Feat: Fügt Fehlerbehandlung ein. 2025-03-26 11:52:02 +01:00
admin-dragonslayer_14 2b76159f7d Feat: Passt das Skript für Arch an. 2025-03-26 11:46:59 +01:00
admin-dragonslayer_14 861eb87522 Feat: Passt das Skript für Arch an. 2025-03-26 11:46:02 +01:00
admin-dragonslayer_14 938ac3061f Feat: Passt das Skript für Arch an. 2025-03-26 11:45:22 +01:00
admin-dragonslayer_14 a7365bb5d8 Unter Arch nicht nötig. 2025-03-26 10:50:25 +01:00
admin-dragonslayer_14 7192d8687f Feat: Passt Skript für Arch an. 2025-03-26 10:50:10 +01:00
admin-dragonslayer_14 60ba4fb7be Feat: Fügt Fragezeichensymbol ein. 2025-03-25 11:25:21 +01:00
DragonSlayer_14 31535d56aa Feat: Fügt Obfuscate als Programm hinzu. 2025-03-25 11:16:59 +01:00
admin-dragonslayer_14 c6b18177f8 Feat: Logging mit Abfrage. 2025-03-24 18:34:56 +01:00
admin-dragonslayer_14 86da8cf610 Feat: Versteck Waydroid-Apps. 2025-03-24 16:50:56 +01:00
admin-dragonslayer_14 964f8df4eb Feat: Fügt Programme hinzu. 2025-03-24 11:31:15 +01:00
admin-dragonslayer_14 e7d0773ea2 Feat: Fügt network-manager-gnome hinzu. 2025-03-23 16:30:46 +01:00
admin-dragonslayer_14 cef9438f0f Feat: installiert Bleachbit 2025-03-13 09:26:32 +01:00
admin-dragonslayer_14 f02dac4e6c Feat: Installiert Portmaster 2025-03-13 09:20:29 +01:00
admin-dragonslayer_14 f719783cba feat: Fügt Virenschutz hinzu. 2025-03-13 08:49:02 +01:00
admin-dragonslayer_14 34d7363c34 Feat: Installiert nützliche Programme im Setup. 2025-03-09 22:27:25 +01:00
admin-dragonslayer_14 8b846f3724 Feat: Fügt FileRoller zur Installation hinzu. 2025-03-09 22:27:05 +01:00
admin-dragonslayer_14 6dd19d00b1 Ref: Passt VeraCrypt-installation an. 2025-03-09 22:12:26 +01:00
admin-dragonslayer_14 e73e0dd077 Fix: Entfernt Leerzeichen 2025-03-09 22:04:32 +01:00
admin-dragonslayer_14 50fc5b404b Passt .gitignore an 2025-03-09 22:04:21 +01:00
admin-dragonslayer_14 f89f62e5e8 Feat: VeraCrypt-Installation 2025-03-09 21:59:55 +01:00
admin-dragonslayer_14 876866f740 Feat: Fügt Skripte zum aufsetzen von Debian 12 (Bookworm) hinzu. 2025-03-09 20:52:44 +01:00
41 changed files with 1120 additions and 604 deletions
+2 -1
View File
@@ -77,4 +77,5 @@ fabric.properties
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
.vscode
.fleet
.idea
-15
View File
@@ -1,15 +0,0 @@
if [ "$(id -u)" -ne 0 ]; then
echo "❌ The Skript has to be run as root!"
exit 1
fi
# Update
apt update && apt upgrade -y
# Install first important Packages
apt install ca-certificates curl git gpg lsb-release network-manager openssh-server sudo wget
sudo usermod -aG sudo $USER
sudo usermod -aG sudo root
echo "Now, you have to relogin for the next scripts to work!"
-23
View File
@@ -1,23 +0,0 @@
if [ "$(id -u)" -ne 0 ]; then
echo "❌ The Skript has to be run as root!"
exit 1
fi
apt modernize-sources
# Add 32bit-Architecture
dpkg --add-architecture i386
# Install my apt-sources
rm /etc/apt/sources.list
rm /etc/apt/sources.list~
rm /etc/apt/sources.list.bak
rm -r /etc/apt/sources.list.d
mkdir -p /etc/apt/sources.list.d
cp ./data/apt/sources.list.d/* /etc/apt/sources.list.d/
# Install my apt-pinning
rm -r /etc/apt/preferences.d
mkdir -p /etc/apt/preferences.d
cp ./data/apt/preferences.d/* /etc/apt/preferences.d/
apt update
-3
View File
@@ -1,3 +0,0 @@
#!/bin/bash
sh <(curl -L https://raw.githubusercontent.com/LinuxBeginnings/Debian-Hyprland/main/auto-install.sh)
-70
View File
@@ -1,70 +0,0 @@
#!/bin/bash
if [ "$(id -u)" -ne 0 ]; then
echo "❌ The Skript has to be run as root!"
exit 1
fi
# Install XanModKernel
wget -qO - https://dl.xanmod.org/archive.key | gpg --dearmor -vo /etc/apt/keyrings/xanmod-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/xanmod-release.list
apt update && apt install linux-xanmod-x64v3
# Install stable-Packages
apt install 7zip apt-listbugs apt-listchanges bleachbit blueman bluetooth bluez btop cava clamav clamav-daemon clamav-docs clamav-freshclam cpupower-gui debian-goodies fastfetch ffmpeg file-roller flatpak fzf gameconqueror gimp gnome-disk-utility gnome-system-monitor grim hunspell hunspell-de-de-frami input-remapper irqbalance keepassxc libreoffice libreoffice-gtk4 libreoffice-l10n-de lsd man mangohud network-manager-gnome nodejs nwg-displays nwg-look okular plymouth plymouth-themes rfkill ripgrep rsync sddm sl slurp steam-installer swappy swaybg tar tealdeer timeshift thunar tree unrar unzip wine winetricks wl-clipboard xdg-user-dirs zsh
# Install backports-Packages
apt install pipewire pipewire-pulse wireplumber
# Install unstable-Packages
apt install gamemode gamescope mesa-utils mesa-vulkan-drivers openrgb
xdg-mime default okularApplication_pdf.desktop application/pdf
sudo plymouth-set-default-theme -R solar
sudo update-initramfs -u
sudo update-grub
# Add flathub
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Install Lutris
echo -e "Types: deb\nURIs: https://download.opensuse.org/repositories/home:/strycore:/lutris/Debian_13/\nSuites: ./\nComponents: \nSigned-By: /etc/apt/keyrings/lutris.gpg" | sudo tee /etc/apt/sources.list.d/lutris.sources > /dev/null
wget -q -O- https://download.opensuse.org/repositories/home:/strycore:/lutris/Debian_13/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/lutris.gpg
sudo apt update
sudo apt install lutris
# Install Spotify
curl -sS https://download.spotify.com/debian/pubkey_5384CE82BA52C83A.asc | gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg
echo "deb https://repository.spotify.com stable non-free" | tee /etc/apt/sources.list.d/spotify.list
apt update && apt install spotify-client
# Install Vesktop
wget -O /tmp/vesktop.deb https://vencord.dev/download/vesktop/amd64/deb
apt install /tmp/vesktop.deb
rm /tmp/vesktop.deb
# Install Floorp
curl -fsSL https://ppa.floorp.app/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/Floorp.gpg
curl -sS --compressed -o /etc/apt/sources.list.d/Floorp.list "https://ppa.floorp.app/Floorp.list"
apt update && apt install floorp
# Install Codium
wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg \
| gpg --dearmor \
| dd of=/usr/share/keyrings/vscodium-archive-keyring.gpg
echo -e 'Types: deb\nURIs: https://download.vscodium.com/debs\nSuites: vscodium\nComponents: main\nArchitectures: amd64 arm64\nSigned-by: /usr/share/keyrings/vscodium-archive-keyring.gpg' \
| tee /etc/apt/sources.list.d/vscodium.sources
apt update && apt install codium
# Install Waydroid
curl -s https://repo.waydro.id | bash
apt install waydroid
systemctl enable --now waydroid-container
cp ./data/usr/share/applications/* /usr/share/applications
# Ollama
curl -fsSL https://ollama.com/install.sh | sh
# OpenDeck
curl -sSL https://raw.githubusercontent.com/nekename/OpenDeck/main/install_opendeck.sh | bash
-33
View File
@@ -1,33 +0,0 @@
#!/bin/bash
GRUB_CFG="/etc/default/grub"
GRUB_TIMEOUT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1 vt.global_cursor_default=0 loglevel=3 rd.luks.options=discard plymouth.ignore-serial-consoles"
GRUB_CMDLINE_LINUX="rcutree.rcu_idle_gp_delay=1"
GRUB_THEME_DIR="/usr/share/debian-gaming/grub/grub2-themes"
if [ "$(id -u)" -ne 0 ]; then
echo "❌ The Script has to be run as root!"
exit 1
fi
cp "$GRUB_CFG" "$GRUB_CFG.bak"
sed -i "s|^GRUB_TIMEOUT=.*|GRUB_TIMEOUT=$GRUB_TIMEOUT|" "$GRUB_CFG"
sed -i "s|^GRUB_TIMEOUT_STYLE=.*|GRUB_TIMEOUT_STYLE=$GRUB_TIMEOUT_STYLE|" "$GRUB_CFG"
sed -i "s|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"$GRUB_CMDLINE_LINUX_DEFAULT\"|" "$GRUB_CFG"
sed -i "s|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=\"$GRUB_CMDLINE_LINUX\"|" "$GRUB_CFG"
grep -q '^GRUB_TIMEOUT=' "$GRUB_CFG" || echo "GRUB_TIMEOUT=$GRUB_TIMEOUT" >> "$GRUB_CFG"
grep -q '^GRUB_TIMEOUT_STYLE=' "$GRUB_CFG" || echo "GRUB_TIMEOUT_STYLE=$GRUB_TIMEOUT_STYLE" >> "$GRUB_CFG"
grep -q '^GRUB_CMDLINE_LINUX_DEFAULT=' "$GRUB_CFG" || echo "GRUB_CMDLINE_LINUX_DEFAULT=\"$GRUB_CMDLINE_LINUX_DEFAULT\"" >> "$GRUB_CFG"
grep -q '^GRUB_CMDLINE_LINUX=' "$GRUB_CFG" || echo "GRUB_CMDLINE_LINUX=\"$GRUB_CMDLINE_LINUX\"" >> "$GRUB_CFG"
mkdir -p "$GRUB_THEME_DIR"
git clone https://github.com/vinceliuice/grub2-themes.git "$GRUB_THEME_DIR"
"$GRUB_THEME_DIR/install.sh" -b -t vimix
sudo update-grub
-31
View File
@@ -1,31 +0,0 @@
#!/bin/bash
if [ "$(id -u)" -ne 0 ]; then
echo "❌ The Skript has to be run as root!"
exit 1
fi
# Copy my profile.d
mkdir -p /etc/profile.d
cp ./data/etc/profile.d/* /etc/profile.d/
# Copy Zsh-Files
mkdir -p $HOME/oh-my-zsh/themes
cp ./data/home/zshrc $HOME/zshrc
cp -r ./data/home/oh-my-zsh/themes/* $HOME/oh-my-zsh/themes
grep -q '^source /etc/profile' /etc/zsh/zprofile || echo 'source /etc/profile' >> /etc/zsh/zprofile
# copy templates
cp -r ./data/home/templates $HOME/templates
# set zsh as default shell
USER_ENTRY=$(getent passwd "$USER")
cp /etc/passwd /etc/passwd.bak
if grep -q "^$USER:" /etc/passwd; then
sed -i "/^$USER:/s|[^:]*$|/bin/zsh|" /etc/passwd
else
UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }')
echo "$UPDATED_ENTRY" >>/etc/passwd
fi
-29
View File
@@ -1,29 +0,0 @@
#!/bin/bash
FONT_DIR=/usr/share/fonts
if [ "$(id -u)" -ne 0 ]; then
echo "❌ The Skript has to be run as root!"
exit 1
fi
# Install Jetbrains Mono Nerd Font
wget -q https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz
mkdir -p $FONT_DIR/JetBrainsMonoNerd
tar -xJkf JetBrainsMono.tar.xz -C $FONT_DIR/JetBrainsMonoNerd
# Install Fantasque Mono Nerd Font
wget -q https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/FantasqueSansMono.zip
mkdir -p $FONT_DIR/FantasqueSansMonoNerd
unzip -o -q "FantasqueSansMono.zip" -d "$FONT_DIR/FantasqueSansMonoNerd"
# Install Victor Mono Font
wget -q https://rubjo.github.io/victor-mono/VictorMonoAll.zip
mkdir -p $FONT_DIR/VictorMono
unzip -o -q "VictorMonoAll.zip" -d "$FONT_DIR/VictorMono"
fc-cache -v
if [ -d "JetBrainsMono.tar.xz" ]; then
rm -r JetBrainsMono.tar.xz 2>&1 | tee -a "$LOG"
fi
-77
View File
@@ -1,77 +0,0 @@
#!/bin/bash
flatpak install flathub org.gnome.Loupe -y
xdg-mime default org.gnome.Loupe.desktop image/jpeg
xdg-mime default org.gnome.Loupe.desktop image/png
# Betterbird als Standard-Mail-Programm setzen
flatpak install eu.betterbird.Betterbird -y
xdg-mime default org.betterbird.Betterbird.desktop x-scheme-handler/mailto
# Simple Scan installieren
flatpak install flathub org.gnome.SimpleScan -y
# Festplattenbelegungsanalyse installieren
flatpak install flathub org.gnome.baobab -y
# Camera installieren
flatpak install flathub org.gnome.Snapshot -y
# Amberol (Musik-Player) installieren
flatpak install flathub io.bassi.Amberol -y
xdg-mime default io.bassi.Amberol.desktop audio/mpeg
xdg-mime default io.bassi.Amberol.desktop audio/x-wav
xdg-mime default io.bassi.Amberol.desktop audio/flac
xdg-mime default io.bassi.Amberol.desktop audio/ogg
# VLC-Media-Player installieren
flatpak install flathub org.videolan.VLC -y
# Protokolle installieren
flatpak install flathub org.gnome.Logs -y
# Schriftarten-Viewer
flatpak install flathub org.gnome.font-viewer -y
# Taschenrechner
flatpak install flathub org.gnome.Calculator -y
# Texteditor
flatpak install flathub org.gnome.TextEditor -y
xdg-mime default org.gnome.TextEditor.desktop text/plain
xdg-mime default org.gnome.TextEditor.desktop text/x-log
xdg-mime default org.gnome.TextEditor.desktop text/markdown
# Ente Authenticator
flatpak install flathub io.ente.auth -y
# Cartridges (Gaming)
flatpak install flathub page.kramo.Cartridges -y
# Decoder (QR-Code)
flatpak install flathub com.belmoussaoui.Decoder -y
# Fragments (Torrent)
flatpak install flathub de.haeckerfelix.Fragments -y
# Impressions (Bootsticks)
flatpak install flathub io.gitlab.adhami3310.Impression -y
# Ressources (Task-Manager)
flatpak install flathub net.nokyan.Resources -y
# Obfuscate
flatpak install flathub com.belmoussaoui.Obfuscate -y
# Flatseal
flatpak install com.github.tchx84.Flatseal -y
# Flameshot
flatpak install flathub org.flameshot.Flameshot -y
# PrismLauncher
flatpak install flathub org.prismlauncher.PrismLauncher -y
# Bruno
flatpak install flathub com.usebruno.Bruno -y
# Alpaca
flatpak install flathub com.jeffser.Alpaca -y
# Cryptomator
flatpak install flathub org.cryptomator.Cryptomator -y
# Remmina
flatpak install flathub org.remmina.Remmina -y
# Web App Hub
flatpak install flathub org.pvermeer.WebAppHub -y
# Easyeffects (SurroundSound)
flatpak install flathub com.github.wwmm.easyeffects -y
# Musescore
flatpak install flathub org.musescore.MuseScore -y
# Proton Up-QT
flatpak install flathub net.davidotek.pupgui2 -y
# Fluffychat (Matrix)
flatpak install flathub im.fluffychat.Fluffychat -y
Executable
+221
View File
@@ -0,0 +1,221 @@
#!/bin/bash
# Root-Rechte prüfen
if [ "$(id -u)" -ne 0 ]; then
echo "❌ Bitte als root ausführen!"
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
# 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
case ":$PATH:" in
*":/sbin:"*) ;;
*) export PATH="$PATH:/sbin" ;;
esac
case ":$PATH:" in
*":/usr/sbin:"*) ;;
*) export PATH="$PATH:/usr/sbin" ;;
esac
fi
EOF
echo "️ sbin wurde zum PATH für sudo-Nutzer hinzugefügt."
fi
# 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
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
case " $(groups) " in *\ 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.'
fi
esac
fi
EOF
echo "️ sudo-Hinweis wurde hinzugefügt!"
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
DEFAULT_XDG_CONFIG_DIRS="/etc/xdg"
DEFAULT_XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
if [ -n "$DESKTOP_SESSION" ]; then
# readd default if was empty
if [ -z "$XDG_CONFIG_DIRS" ]; then
XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS"
fi
if [ -n "${XDG_CONFIG_DIRS##*$DEFAULT_XDG_CONFIG_DIRS/xdg-$DESKTOP_SESSION*}" ]; then
XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS"/xdg-"$DESKTOP_SESSION":"$XDG_CONFIG_DIRS"
fi
export XDG_CONFIG_DIRS
# gnome is already added if gnome-session installed
if [ "$DESKTOP_SESSION" != "gnome" ]; then
if [ -z "$XDG_DATA_DIRS" ]; then
XDG_DATA_DIRS="$DEFAULT_XDG_DATA_DIRS"
fi
if [ -n "${XDG_DATA_DIRS##*/usr/share/$DESKTOP_SESSION*}" ]; then
XDG_DATA_DIRS=/usr/share/"$DESKTOP_SESSION":"$XDG_DATA_DIRS"
fi
export XDG_DATA_DIRS
fi
fi
EOF
echo "️ XDG-Data-Dirs wurden gesetzt!"
fi
chmod +x /etc/profile.d/*
echo "✅ Abgeschlossen. Zum Anwenden der Änderungen bitte neu einloggen!"
Executable
+75
View File
@@ -0,0 +1,75 @@
#!/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!"
+22
View File
@@ -0,0 +1,22 @@
#!/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"
+74
View File
@@ -0,0 +1,74 @@
#!/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
@@ -0,0 +1,70 @@
#!/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!"
Executable
+236
View File
@@ -0,0 +1,236 @@
#!/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!"
Executable
+77
View File
@@ -0,0 +1,77 @@
#!/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."
+39
View File
@@ -0,0 +1,39 @@
#!/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!"
Executable
+302
View File
@@ -0,0 +1,302 @@
#!/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
# Überprüfen, ob Flatpak installiert ist
if ! command -v flatpak &>/dev/null; then
echo "❌ Fehler: Flatpak ist nicht installiert. Bitte installiere es und versuche es erneut."
exit 1
fi
# Flatpak Apps installieren (nur falls noch nicht als DEB installiert)
declare -A FLATPAK_APPS=(
["org.libreoffice.LibreOffice"]="LibreOffice"
["dev.vencord.Vesktop"]="Vesktop"
["eu.betterbird.Betterbird"]="Betterbird"
)
for APP in "${!FLATPAK_APPS[@]}"; do
if pacman -Qs "${FLATPAK_APPS[$APP]}" &>/dev/null; then
echo "${FLATPAK_APPS[$APP]} ist bereits als Paket installiert."
elif flatpak list | grep -q "$APP"; then
echo "${FLATPAK_APPS[$APP]} ist bereits als Flatpak installiert."
else
echo "🔄 Installiere ${FLATPAK_APPS[$APP]} als Flatpak..."
flatpak install -y flathub "$APP"
fi
done
# Dynamischen Vorlagen-Ordner ermitteln
TEMPLATE_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Vorlagen")
mkdir -p "$TEMPLATE_DIR"
# Prüfen, ob LibreOffice als Flatpak installiert ist
if flatpak list | grep -q "org.libreoffice.LibreOffice"; then
LO_CMD="flatpak run org.libreoffice.LibreOffice"
elif command -v libreoffice &>/dev/null; then
LO_CMD="libreoffice"
else
echo "❌ Fehler: LibreOffice ist weder als Flatpak noch als Paket installiert."
exit 1
fi
# LibreOffice-Vorlagen erstellen, falls nicht vorhanden
if [[ ! -f "$TEMPLATE_DIR/LibreOffice-Writer.ott" ]]; then
echo "🔄 Erstelle LibreOffice Writer-Vorlage..."
$LO_CMD --headless --convert-to ott --outdir "$TEMPLATE_DIR" /dev/null
else
echo "✅ LibreOffice Writer-Vorlage ist bereits vorhanden."
fi
if [[ ! -f "$TEMPLATE_DIR/LibreOffice-Calc.ots" ]]; then
echo "🔄 Erstelle LibreOffice Calc-Vorlage..."
$LO_CMD --headless --convert-to ots --outdir "$TEMPLATE_DIR" /dev/null
else
echo "✅ LibreOffice Calc-Vorlage ist bereits vorhanden."
fi
# Spotify-Installation
echo "🎵 Überprüfe Spotify-Installation..."
if pacman -Qs spotify &>/dev/null; then
echo "✅ Spotify ist bereits installiert."
else
echo "🔄 Installiere Spotify..."
sudo pacman -S --noconfirm spotify
fi
# Spotify .desktop-Datei erstellen
SPOTIFY_DESKTOP_FILE="$HOME/.local/share/applications/spotify.desktop"
mkdir -p "$HOME/.local/share/applications"
if [[ ! -f "$SPOTIFY_DESKTOP_FILE" ]]; then
echo "🔄 Erstelle Spotify .desktop-Datei..."
cat <<EOF >"$SPOTIFY_DESKTOP_FILE"
[Desktop Entry]
Name=Spotify
Exec=/usr/bin/spotify
Icon=spotify-client
Terminal=false
Type=Application
Categories=Audio;Music;
EOF
echo "✅ Spotify .desktop-Datei wurde erstellt."
else
echo "✅ Spotify .desktop-Datei ist bereits vorhanden."
fi
# Benötigte Abhängigkeiten prüfen und installieren
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"
else
echo "$dep ist bereits installiert."
fi
done
# Tealdeer (tldr-Client) installieren
if ! command -v tldr &>/dev/null; then
echo "🔄 Installiere tealdeer..."
sudo pacman -S --noconfirm tealdeer
else
echo "✅ Tealdeer ist bereits installiert."
fi
# tealdeer Autoupdate konfigurieren
TEALDEER_CONFIG=~/.config/tealdeer/config.toml
mkdir -p ~/.config/tealdeer
if ! grep -q "\[updates\]" "$TEALDEER_CONFIG" 2 >/dev/null; then
echo -e "\n[updates]" >>"$TEALDEER_CONFIG"
fi
if grep -q "^auto_update" "$TEALDEER_CONFIG" 2 >/dev/null; then
sed -i 's/^auto_update.*/auto_update = true/' "$TEALDEER_CONFIG"
else
echo "auto_update = true" >>"$TEALDEER_CONFIG"
fi
# Wikiman installieren, falls nicht vorhanden
if ! command -v wikiman &>/dev/null; then
echo "🔄 Installiere Wikiman..."
# Prüfen, ob `make` installiert ist
if ! command -v make &>/dev/null; then
echo "🔄 Installiere make..."
sudo pacman -S --noconfirm make
fi
git clone 'https://github.com/filiparag/wikiman' ~/wikiman
cd ~/wikiman || exit
# Die neueste stabile Version auschecken
git checkout "$(git describe --tags | cut -d'-' -f1)"
# Kompilieren und installieren
make all
sudo make install
# Cleanup
cd ..
rm -rf ~/wikiman
echo "✅ Wikiman wurde erfolgreich installiert!"
else
echo "✅ Wikiman ist bereits installiert."
fi
# Arch-Wiki für Wikiman installieren, falls nicht vorhanden
if ! wikiman -list | grep -q "arch"; then
echo "🔄 Installiere Arch Wiki für Wikiman..."
curl -L 'https://raw.githubusercontent.com/filiparag/wikiman/master/Makefile' -o 'wikiman-makefile'
make -f ./wikiman-makefile source-arch
sudo make -f ./wikiman-makefile source-install
sudo make -f ./wikiman-makefile clean
rm -f wikiman-makefile
else
echo "✅ Arch Wiki ist bereits installiert."
fi
echo "🔄 Installiere Standard-Programme..."
# Bildbetrachter
flatpak install flathub org.gnome.Loupe -y
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
# Okular als Standard-PDF-Viewer setzen
xdg-mime default okularApplication_pdf.desktop application/pdf
# Betterbird als Standard-Mail-Programm setzen
xdg-mime default org.betterbird.Betterbird.desktop x-scheme-handler/mailto
# Simple Scan isntallieren
flatpak install flathub org.gnome.SimpleScan -y
# Festplattenbelegungsanalyse installieren
flatpak install flathub org.gnome.baobab -y
# Camera installieren
flatpak install flathub org.gnome.Snapshot -y
# Amberol (Musik-Player) installieren
flatpak install flathub io.bassi.Amberol -y
xdg-mime default io.bassi.Amberol.desktop audio/mpeg
xdg-mime default io.bassi.Amberol.desktop audio/x-wav
xdg-mime default io.bassi.Amberol.desktop audio/flac
xdg-mime default io.bassi.Amberol.desktop audio/ogg
# VLC-Media-Player installieren
flatpak install flathub org.videolan.VLC -y
# Protokolle installieren
flatpak install flathub org.gnome.Logs -y
# Schriftarten-Viewer
flatpak install flathub org.gnome.font-viewer -y
# Taschenrechner
flatpak install flathub org.gnome.Calculator -y
# Texteditor
flatpak install flathub org.gnome.TextEditor -y
xdg-mime default org.gnome.TextEditor.desktop text/plain
xdg-mime default org.gnome.TextEditor.desktop text/x-log
xdg-mime default org.gnome.TextEditor.desktop text/markdown
# Ente Authenticator
flatpak install flathub io.ente.auth -y
# Cartridges (Gaming)
flatpak install flathub page.kramo.Cartridges -y
# Decoder (QR-Code)
flatpak install flathub com.belmoussaoui.Decoder -y
# Fragments (Torrent)
flatpak install flathub de.haeckerfelix.Fragments -y
# Impressions (Bootsticks)
flatpak install flathub io.gitlab.adhami3310.Impression -y
# Ressources (Task-Manager)
flatpak install flathub net.nokyan.Resources -y
# Secrets
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
echo "✅ Alle Programme wurden erfolgreich installiert!"
+2 -2
View File
@@ -5,7 +5,7 @@
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.
Der Hauptbranch ist für ein aktuelles Debian-System gedacht!
**Mit diesen Skripten kann *ARCH Linux* mit *Hyprland* und diversen Programmen aufgesetzt werden.**
## Anforderungen
@@ -19,7 +19,7 @@ Um die Skripte in diesem Repository auszuführen, stelle sicher, dass die folgen
1. Klone das Repository:
```bash
git clone https://gitea.creative-dragonslayer.de/Scripts/Setup.git
git clone -b arch 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.
-23
View File
@@ -1,23 +0,0 @@
Package: *
Pin: release n=trixie
Pin-Priority: 500
Package: *
Pin: release n=trixie-updates
Pin-Priority: 500
Package: *
Pin: release n=trixie-security
Pin-Priority: 500
Package: *
Pin: release a=stable
Pin-Priority: 500
Package: *
Pin: release a=stable-updates
Pin-Priority: 500
Package: *
Pin: release a=stable-security
Pin-Priority: 500
-19
View File
@@ -1,19 +0,0 @@
Package: *
Pin: release n=trixie-backports
Pin-Priority: 400
Package: *
Pin: release a=stable-backports
Pin-Priority: 400
Package: pipewire
Pin: release n=trixie-backports
Pin-Priority: 990
Package: pipewire-pulse
Pin: release n=trixie-backports
Pin-Priority: 990
Package: wireplumber
Pin: release n=trixie-backports
Pin-Priority: 990
-7
View File
@@ -1,7 +0,0 @@
Package: *
Pin: release n=trixie-testing
Pin-Priority: 50
Package: *
Pin: release a=testing
Pin-Priority: 50
-27
View File
@@ -1,27 +0,0 @@
Package: *
Pin: release a=unstable
Pin-Priority: 300
Package: *
Pin: release n=sid
Pin-Priority: 300
Package: gamemode
Pin: release a=unstable
Pin-Priority: 990
Package: gamescope
Pin: release a=unstable
Pin-Priority: 990
Package: mesa-utils
Pin: release a=unstable
Pin-Priority: 990
Package: mesa-vulkan-drivers
Pin: release a=unstable
Pin-Priority: 990
Package: openrgb
Pin: release a=unstable
Pin-Priority: 990
@@ -1,5 +0,0 @@
Types: deb deb-src
URIs: http://deb.debian.org/debian/
Suites: trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
@@ -1,12 +0,0 @@
Types: deb deb-src
URIs: http://deb.debian.org/debian/
Suites: trixie trixie-updates
Components: main non-free-firmware non-free contrib
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb deb-src
URIs: http://security.debian.org/debian-security/
Suites: trixie-security
Components: main non-free-firmware non-free contrib
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
@@ -1,5 +0,0 @@
Types: deb deb-src
URIs: http://deb.debian.org/debian/
Suites: unstable
Components: main non-free-firmware non-free contrib
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
@@ -1,3 +0,0 @@
#!/bin/bash
xdg-user-dirs-update
-35
View File
@@ -1,35 +0,0 @@
#!/bin/bash
DEFAULT_USR_FOLDER="/usr/share/debian-gaming/home"
CONFIG_FOLDER="$HOME/.config/"
CHECK_FILE="$HOME/.config/.debian_gaming_configs_copied"
TEMPLATES_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Templates")
if [ ! -e "$CHECK_FILE" ]; then
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
if [ -e "$HOME/.oh-my-zsh/themes" ]; then
mv $HOME/.oh-my-zsh/themes $HOME/.oh-my-zsh/.themes.bak
fi
if [ -e "$HOME/.config" ]; then
mv $HOME/.config $HOME/.config.bak
fi
if [ -e "$HOME/.zshrc" ]; then
mv $HOME/.zshrc $HOME/.zshrc.bak
fi
mkdir -p $HOME/.oh-my-zsh/themes
mkdir -p $HOME/.config
cp -r $DEFAULT_USR_FOLDER/config/* $HOME/.config
cp -r $DEFAULT_USR_FOLDER/oh-my-zsh/themes/* $HOME/.oh-my-zsh/themes
cp -r $DEFAULT_USR_FOLDER/templates/* $TEMPLATES_DIR
cp $DEFAULT_USR_FOLDER/zshrc $HOME/.zshrc
touch $CHECK_FILE
fi
-3
View File
@@ -1,3 +0,0 @@
for app in ~/.local/share/applications/waydroid.*.desktop; do
grep -q NoDisplay $app || sed '/^Icon=/a NoDisplay=true' -i $app
done
-10
View File
@@ -1,10 +0,0 @@
if groups | grep -q "\bsudo\b"; then
case ":$PATH:" in
*":/sbin:"*) ;;
*) export PATH="$PATH:/sbin" ;;
esac
case ":$PATH:" in
*":/usr/sbin:"*) ;;
*) export PATH="$PATH:/usr/sbin" ;;
esac
fi
-24
View File
@@ -1,24 +0,0 @@
#!/bin/bash
SUDO_FILE="$HOME/.sudo_as_admin_successful"
HUSH_FILE="$HOME/.hushlogin"
ONE_WEEK_AGO=$(date -d '7 days ago' +%s)
if [ -e "$SUDO_FILE" ]; then
FILE_MOD_TIME=$(stat -c %Y "$SUDO_FILE")
if [ "$FILE_MOD_TIME" -lt "$ONE_WEEK_AGO" ]; then
rm -f "$SUDO_FILE"
fi
fi
if [ ! -e "$SUDO_FILE" ] && [ ! -e "$HUSH_FILE" ]; then
case " $(groups) " in
*\ admin\ *|*\ sudo\ *)
if [ -x /usr/bin/sudo ]; then
echo 'To run a command as administrator (user "root"), use "sudo <command>".'
echo 'See "man sudo_root" for details.'
fi
;;
esac
fi
@@ -1,25 +0,0 @@
# /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/"
if [ -n "$DESKTOP_SESSION" ]; then
# readd default if was empty
if [ -z "$XDG_CONFIG_DIRS" ]; then
XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS"
fi
if [ -n "${XDG_CONFIG_DIRS##*$DEFAULT_XDG_CONFIG_DIRS/xdg-$DESKTOP_SESSION*}" ]; then
XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS"/xdg-"$DESKTOP_SESSION":"$XDG_CONFIG_DIRS"
fi
export XDG_CONFIG_DIRS
# gnome is already added if gnome-session installed
if [ "$DESKTOP_SESSION" != "gnome" ]; then
if [ -z "$XDG_DATA_DIRS" ]; then
XDG_DATA_DIRS="$DEFAULT_XDG_DATA_DIRS"
fi
if [ -n "${XDG_DATA_DIRS##*/usr/share/$DESKTOP_SESSION*}" ]; then
XDG_DATA_DIRS=/usr/share/"$DESKTOP_SESSION":"$XDG_DATA_DIRS"
fi
export XDG_DATA_DIRS
fi
fi
-2
View File
@@ -1,2 +0,0 @@
#!/bin/bash
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
-2
View File
@@ -1,2 +0,0 @@
#!/usr/bin/env python3
-1
View File
@@ -1 +0,0 @@
Binary file not shown.
-49
View File
@@ -1,49 +0,0 @@
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
export ZSH="$HOME/.oh-my-zsh"
apt_pref='apt'
apt_upgr='upgrade'
ZSH_THEME="agnosterzak"
plugins=(
alias-finder
aliases
colored-man-pages
command-not-found
common-aliases
composer
cp
debian
docker
git
jsontools
kitty
python
ssh
symfony
themes
vscode
zsh-autosuggestions
zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
# Display Pokemon-colorscripts
# Project page: https://gitlab.com/phoneybadger/pokemon-colorscripts#on-other-distros-and-macos
#pokemon-colorscripts --no-title -s -r #without fastfetch
#pokemon-colorscripts --no-title -s -r | fastfetch -c $HOME/.config/fastfetch/config-pokemon.jsonc --logo-type fi>
# fastfetch. Will be disabled if above colorscript was chosen to install
fastfetch -c $HOME/.config/fastfetch/config-compact.jsonc
# Set-up icons for files/directories in terminal using lsd
alias ls='lsd'
alias l='ls -l'
alias la='ls -a'
alias lla='ls -la'
alias lt='ls --tree'
@@ -1,7 +0,0 @@
[Desktop Entry]
Name=Spotify
Exec=/usr/bin/spotify
Icon=spotify-client
Terminal=false
Type=Application
Categories=Audio;Music;
-60
View File
@@ -1,60 +0,0 @@
Debian Paketquellen installieren -> sources nach /etc/apt/sources.list.d
sudo apt install git sudo network-manager software-properties-common wget curl
XanMod Kernel - Repo + Keyring installieren -> https://xanmod.org
Apt-Pinning konfigurieren
sudo apt update
sudo apt install apt-listbugs apt-listchanges
apt policy hyprland wlroots wayland wayland-protocols mesa
=> wayland -> trixie
mesa -> trixie-backports
hyprland -> unstable
sudo apt install linux-xanmod-x64v3
sudo apt install -t trixie-backports mesa mesa-vulkan-drivers gamemode gamescope mangohud pipewire pipewire-pulse wireplumber
sudo apt install -t unstable hyprland wlroots wayland-protocols xdg-desktop-portal-wlr rofi-wayland waybar ags
sudo apt install grim slurp wl-clipboard swaybg irqbalance cpupower timeshift zsh 7zip unrar unzip codium fzf rg rsync clamav clamav-freshclam clamav-docs libclamunrar9 clamav-daemon flatpak rfkill xdg-user-dirs tree bluetooth bleachbit network-manager-gnome steam-installer libreoffice tealdeer gnome-disk-utility gnome-system-monitor keepassxc
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Lutris installieren
Spotify installieren
-> Spotify .desktop-Datei hinterlegen
Waydroid installieren
sudo apt update
sudo apt upgrade
Grub-Config anpassen
-> GRUB_TIMEOUT=0
-> GRUB_TIMEOUT_STYLE=hidden
-> GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1 vt.global_cursor_default=0 loglevel=3 rd.luks.options=discard plymouth.ignore-serial-consoles"
-> GRUB_CMDLINE_LINUS="rcutree.rcu_idle_gp_delay=1"
Grub-Theme installieren
Plymouth installieren (Theme = Spinner)
update-grub
./etc/profile.d entsprechend kopieren
OhMyZsh installieren
-> sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
./home/.zshrc entsprechend kopieren
./home/.oh-my-zsh/themes entsprechend kopieren
source /etc/profile in /etc/zsh/zprofile einfügen
Shell des Users auf ZSH setzen
Portmaster installieren
Floorp installieren
Standardvorlagen hinterlegen
.config Ordner ziehen und hinterlegen
sudo timeshift --create --comments "initial install" --tags D