Compare commits
4 Commits
arch
..
9c1e62dfe8
| Author | SHA1 | Date | |
|---|---|---|---|
| 9c1e62dfe8 | |||
| 6fbc98bc98 | |||
| f9c892baee | |||
| 51a7a9a927 |
+1
-2
@@ -77,5 +77,4 @@ fabric.properties
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
.fleet
|
||||
.idea
|
||||
.vscode
|
||||
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
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!"
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
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
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
sh <(curl -L https://raw.githubusercontent.com/LinuxBeginnings/Debian-Hyprland/main/auto-install.sh)
|
||||
Executable
+70
@@ -0,0 +1,70 @@
|
||||
#!/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
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/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
|
||||
Executable
+31
@@ -0,0 +1,31 @@
|
||||
#!/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
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/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
|
||||
Executable
+77
@@ -0,0 +1,77 @@
|
||||
#!/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
|
||||
-221
@@ -1,221 +0,0 @@
|
||||
#!/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!"
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Root-Rechte prüfen
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "❌ Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
yay -Syu
|
||||
|
||||
# Installiere adcli mit yay
|
||||
yay -S --noconfirm adcli || { echo "❌ Fehler beim Installieren von adcli"; exit 1; }
|
||||
|
||||
# Installiere realmd mit yay
|
||||
yay -S --noconfirm realmd || { echo "❌ Fehler beim Installieren von realmd"; exit 1; }
|
||||
|
||||
# Samba-Verzeichnis erstellen
|
||||
sudo mkdir -p /var/lib/samba/private/
|
||||
|
||||
# Installiere notwendige Pakete
|
||||
sudo pacman -Syu --noconfirm sssd curl ntp polkit
|
||||
|
||||
echo "❓ Daten für Domainjoin:"
|
||||
read -p "Domänenname: " DOMAIN
|
||||
read -p "Adminuser: " ADMIN
|
||||
|
||||
# NetBIOS und COMS extrahieren
|
||||
NetBios=$(echo "$DOMAIN" | cut -d '.' -f1)
|
||||
coms=$(echo "$DOMAIN" | cut -d '.' -f2)
|
||||
|
||||
# Realm joinen
|
||||
sudo realm join --verbose --user="$ADMIN" "$DOMAIN" --install=/ || { echo "❌ Fehler beim Domainjoin"; exit 1; }
|
||||
|
||||
# SSSD aktivieren und starten
|
||||
sudo systemctl enable sssd
|
||||
sudo systemctl start sssd
|
||||
|
||||
# PAM-Konfiguration überprüfen und anpassen
|
||||
homedir=$(grep homedir /etc/pam.d/common-session | grep 0077 | cut -d '=' -f3 | head -1)
|
||||
if [ "$homedir" = "0077" ]; then
|
||||
echo "ℹ️ pam_mkhomedir.so konfiguriert"
|
||||
sleep 1
|
||||
else
|
||||
echo "session required pam_mkhomedir.so skel=/etc/skel/ umask=0077" | sudo tee -a /etc/pam.d/common-session
|
||||
fi
|
||||
|
||||
# SSSD-Konfigurationsdatei anpassen
|
||||
sudo sed -i -e 's/fallback_homedir = \/home\/%u@%d/#fallback_homedir = \/home\/%u@%d/g' /etc/sssd/sssd.conf
|
||||
sudo sed -i -e 's/use_fully_qualified_names = True/use_fully_qualified_names = False/g' /etc/sssd/sssd.conf
|
||||
sudo sed -i -e 's/access_provider = ad/access_provider = simple/g' /etc/sssd/sssd.conf
|
||||
sudo sed -i -e 's/sudoers: files sss/sudoers: files/g' /etc/nsswitch.conf
|
||||
echo "override_homedir = /home/%u" | sudo tee -a /etc/sssd/sssd.conf
|
||||
sudo grep -i override /etc/sssd/sssd.conf
|
||||
|
||||
# Weitere Anpassungen an der SSSD-Konfiguration
|
||||
sudo sed -i '/krb5_realm =/a entry_cache_group_timeout = 5400' /etc/sssd/sssd.conf
|
||||
sudo sed -i '/krb5_realm =/a entry_cache_user_timeout = 5400' /etc/sssd/sssd.conf
|
||||
|
||||
# Zusätzliche SSSD-Alternativen
|
||||
sudo echo "#entry_cache_user_timeout = 5400
|
||||
#entry_cache_group_timeout = 5400
|
||||
#cache_credentials = TRUE
|
||||
### Added to help with group mapping
|
||||
###ldap_use_tokengroups = False
|
||||
#ldap_schema = rfc2307bis
|
||||
#ldap_schema = rfc2307
|
||||
#ldap_schema = IPA
|
||||
#ldap_schema = AD
|
||||
#ldap_search_base = DC=$NetBios,DC=$coms
|
||||
#ldap_group_member = uniquemember
|
||||
#ad_enable_gc = False
|
||||
entry_cache_timeout = 600
|
||||
entry_cache_nowait_percentage = 75 " | sudo tee -a /etc/sssd/sssd.alternatives
|
||||
|
||||
echo "✅ Der Computer muss jetzt neugestartet werden. Vor dem Anmelden etwa 3 Minuten warten!"
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Root-Rechte prüfen
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "❌ Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo pacman -Syu
|
||||
yay -Syu
|
||||
|
||||
# Temporären Ordner erstellen
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
|
||||
# Skript in den temporären Ordner herunterladen
|
||||
curl -L https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/auto-install.sh -o "$TEMP_DIR/auto-install.sh"
|
||||
|
||||
# Das heruntergeladene Skript mit sh ausführen
|
||||
sh "$TEMP_DIR/auto-install.sh"
|
||||
|
||||
# Temporären Ordner löschen
|
||||
rm -rf "$TEMP_DIR"
|
||||
@@ -1,74 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "❌ Bitte als root ausführen!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Tatsächlichen Benutzer ermitteln (nicht root)
|
||||
if [[ -z "$SUDO_USER" || "$SUDO_USER" == "root" ]]; then
|
||||
echo "❌ Fehler: Das Skript muss mit 'sudo' von einem normalen Benutzer ausgeführt werden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
USER_NAME="$SUDO_USER"
|
||||
USER_HOME=$(eval echo ~$USER_NAME)
|
||||
|
||||
read -p "❓ Soll die Shell für $USER_NAME auf ZSH gesetzt werden? (j/n) [n]: " answer
|
||||
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||
|
||||
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||
# ZSH-Installation prüfen und ggf. installieren
|
||||
if ! command -v zsh &> /dev/null; then
|
||||
echo "ℹ️ ZSH wird installiert..."
|
||||
sudo pacman -S --noconfirm zsh
|
||||
fi
|
||||
|
||||
# Eintrag aus getent passwd holen
|
||||
USER_ENTRY=$(getent passwd "$USER_NAME")
|
||||
|
||||
# Backup der passwd Datei
|
||||
cp /etc/passwd /etc/passwd.bak
|
||||
|
||||
if grep -q "^$USER_NAME:" /etc/passwd; then
|
||||
# Existierenden Eintrag aktualisieren
|
||||
sed -i "/^$USER_NAME:/s|[^:]*$|/bin/zsh|" /etc/passwd
|
||||
echo "ℹ️ Shell für $USER_NAME wurde auf zsh aktualisiert."
|
||||
else
|
||||
# Neuen Eintrag hinzufügen
|
||||
UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }')
|
||||
echo "$UPDATED_ENTRY" >>/etc/passwd
|
||||
echo "ℹ️ Eintrag für $USER_NAME wurde in /etc/passwd geschrieben mit zsh als Shell."
|
||||
fi
|
||||
|
||||
# Repository klonen
|
||||
REPO_DIR="$USER_HOME/Debian-Hyprland"
|
||||
sudo -u "$USER_NAME" git clone https://github.com/JaKooLit/Arch-Hyprland.git "$REPO_DIR"
|
||||
|
||||
# Ordner nach ~/.oh-my-zsh/themes kopieren
|
||||
THEME_SRC="$REPO_DIR/assets/add_zsh_theme"
|
||||
THEME_DEST="$USER_HOME/.oh-my-zsh/themes"
|
||||
|
||||
if [[ -d "$THEME_SRC" ]]; then
|
||||
sudo -u "$USER_NAME" mkdir -p "$THEME_DEST"
|
||||
sudo -u "$USER_NAME" cp -r "$THEME_SRC"/* "$THEME_DEST/"
|
||||
echo "🎨 ZSH-Theme wurde nach $THEME_DEST kopiert."
|
||||
else
|
||||
echo "⚠️ Fehler: Theme-Ordner wurde nicht gefunden!"
|
||||
fi
|
||||
|
||||
# Repository löschen
|
||||
rm -rf "$REPO_DIR"
|
||||
|
||||
# /etc/profile in /etc/zsh/zprofile einfügen, falls nicht bereits vorhanden
|
||||
if ! grep -q "source /etc/profile" /etc/zsh/zprofile; then
|
||||
echo "source /etc/profile" >>/etc/zsh/zprofile
|
||||
echo "🔧 'source /etc/profile' wurde in /etc/zsh/zprofile hinzugefügt."
|
||||
else
|
||||
echo "ℹ️ 'source /etc/profile' ist bereits in /etc/zsh/zprofile vorhanden."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "✅ Shell wurde erfolgreich auf ZSH gesetzt! Zum Anwenden, neue Terminal-Sitzung öffnen."
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "❌ Dieses Skript muss als root ausgeführt werden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
read -p "❓ Soll SDDM so konfiguriert werden, dass Domänenbenutzer angezeigt werden? (j/n) [n]: " answer
|
||||
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||
|
||||
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||
# SDDM-Konfigurationsdatei in sddm.conf.d erstellen
|
||||
SDDM_CONF_DIR="/etc/sddm.conf.d"
|
||||
SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/ad_login.conf"
|
||||
mkdir -p "$SDDM_CONF_DIR"
|
||||
|
||||
# SDDM-Konfigurationsdatei sichern
|
||||
if [[ -f "$SDDM_CUSTOM_CONF" ]]; then
|
||||
cp "$SDDM_CUSTOM_CONF" "$SDDM_CUSTOM_CONF.bak"
|
||||
echo "ℹ️ SDDM-Konfigurationsdatei gesichert als $SDDM_CUSTOM_CONF.bak"
|
||||
else
|
||||
echo "⚠️ SDDM-Konfigurationsdatei nicht gefunden, keine Sicherung vorgenommen."
|
||||
fi
|
||||
|
||||
# Bestehende Konfiguration sichern und anpassen
|
||||
if [[ -f "$SDDM_CUSTOM_CONF" ]]; then
|
||||
sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF"
|
||||
sed -i '/MinimumUid/d' "$SDDM_CUSTOM_CONF"
|
||||
sed -i '/HideShells/d' "$SDDM_CUSTOM_CONF"
|
||||
echo "MaximumUid=99999999999999999999" >>"$SDDM_CUSTOM_CONF"
|
||||
echo "MinimumUid=1000" >>"$SDDM_CUSTOM_CONF"
|
||||
echo "HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin" >>"$SDDM_CUSTOM_CONF"
|
||||
else
|
||||
cat <<EOF >"$SDDM_CUSTOM_CONF"
|
||||
[Users]
|
||||
MaximumUid=999999999999999999
|
||||
MinimumUid=1000
|
||||
HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin
|
||||
EOF
|
||||
fi
|
||||
|
||||
# SSSD-Konfiguration anpassen, falls die Datei existiert
|
||||
SSSD_CONF="/etc/sssd/sssd.conf"
|
||||
|
||||
# SSSD-Konfigurationsdatei sichern
|
||||
if [[ -f "$SSSD_CONF" ]]; then
|
||||
cp "$SSSD_CONF" "$SSSD_CONF.bak"
|
||||
echo "ℹ️ SSSD-Konfigurationsdatei gesichert als $SSSD_CONF.bak"
|
||||
else
|
||||
echo "⚠️ SSSD-Konfigurationsdatei nicht gefunden, keine Sicherung vorgenommen."
|
||||
fi
|
||||
|
||||
if [[ -f "$SSSD_CONF" ]]; then
|
||||
if grep -q "^enumerate" "$SSSD_CONF"; then
|
||||
sed -i 's/^enumerate.*/enumerate = false/' "$SSSD_CONF"
|
||||
else
|
||||
echo "enumerate = false" >>"$SSSD_CONF"
|
||||
fi
|
||||
# Berechtigungen für SSSD-Konfigurationsdatei setzen
|
||||
chmod 600 "$SSSD_CONF"
|
||||
fi
|
||||
|
||||
# SSSD und SDDM neu starten
|
||||
systemctl restart sssd
|
||||
systemctl restart sddm
|
||||
fi
|
||||
|
||||
echo "✅ Konfiguration von SDDM und sssd abgeschlossen!"
|
||||
-236
@@ -1,236 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e # Skript bricht bei Fehlern ab
|
||||
|
||||
# Root-Rechte prüfen
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "❌ Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# System aktualisieren und benötigte Pakete installieren
|
||||
echo "🔄 System wird aktualisiert..."
|
||||
sudo pacman -Syu --noconfirm
|
||||
yay -Syu --noconfirm
|
||||
|
||||
echo "ℹ️ Firewall (ufw) wird installiert..."
|
||||
sudo pacman -S --noconfirm ufw
|
||||
sudo ufw enable
|
||||
|
||||
echo "ℹ️ Virenschutz (clamav) wird installiert..."
|
||||
sudo pacman -S --noconfirm clamav
|
||||
sudo systemctl enable --now clamav-freshclam
|
||||
|
||||
echo "ℹ️ Installiere Flatpak..."
|
||||
sudo pacman -S --noconfirm flatpak
|
||||
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
echo "ℹ️ Installiere nützliche Pakete..."
|
||||
sudo pacman -S --noconfirm neovim rfkill xdg-user-dirs rsync bleachbit networkmanager
|
||||
|
||||
# Portmaster installieren
|
||||
read -p "❓ Soll Portmaster installiert werden? (j/n) [n]: " answer
|
||||
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||
|
||||
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||
yay -S portmaster-stub-bin --noconfirm
|
||||
|
||||
echo "✅ Portmaster wurde installiert!"
|
||||
fi
|
||||
|
||||
# Waterfox-Installation
|
||||
read -p "❓ Soll Firefox durch Waterfox ersetzt werden? (j/n) [n]: " answer
|
||||
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||
|
||||
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||
if pacman -Q firefox &>/dev/null; then
|
||||
sudo pacman -Rns --noconfirm firefox
|
||||
fi
|
||||
|
||||
echo "🌍 Waterfox wird installiert..."
|
||||
yay -S --noconfirm waterfox
|
||||
|
||||
echo "✅ Waterfox wurde installiert!"
|
||||
|
||||
# Waterfox als Standardbrowser setzen
|
||||
echo "🌍 Setze Waterfox als Standardbrowser..."
|
||||
if command -v xdg-settings >/dev/null 2>&1; then
|
||||
xdg-settings set default-web-browser waterfox.desktop
|
||||
echo "✅ Waterfox wurde als Standardbrowser gesetzt."
|
||||
|
||||
# Standardanwendungen für spezifische Dateitypen setzen
|
||||
xdg-mime default waterfox.desktop text/html
|
||||
xdg-mime default waterfox.desktop application/xhtml+xml
|
||||
xdg-mime default waterfox.desktop x-scheme-handler/http
|
||||
xdg-mime default waterfox.desktop x-scheme-handler/https
|
||||
else
|
||||
echo "❌ 'xdg-settings' ist nicht verfügbar. Bitte manuell den Standardbrowser setzen."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Hyprland User Bindings
|
||||
read -p "❓ Sollen Anpassungen an den Hyprland-Keybinds vorgenomen werden? (j/n) [n]: " answer
|
||||
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||
|
||||
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||
HYPR_CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
|
||||
mkdir -p "$HYPR_CONFIG_DIR"
|
||||
|
||||
# Keybinds hinzufügen (falls nicht vorhanden)
|
||||
declare -A KEYBINDS=(
|
||||
["bindr = \$mainMod, \$mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window"]="rofi menu"
|
||||
["bindr = \$mainMod, L, exec, \$scriptsDir/LockScreen.sh"]="screen lock"
|
||||
["bindr = \$mainMod, V, exec, \$scriptsDir/ClipManager.sh"]="Clipboard Manager"
|
||||
)
|
||||
|
||||
for BIND in "${!KEYBINDS[@]}"; do
|
||||
FULL_BIND="$BIND # ${KEYBINDS[$BIND]}"
|
||||
if ! grep -Fxq "$FULL_BIND" "$HYPR_CONFIG_DIR/UserKeybinds.conf" 2>/dev/null; then
|
||||
echo "$FULL_BIND" >>"$HYPR_CONFIG_DIR/UserKeybinds.conf"
|
||||
echo "✅ Keybind hinzugefügt: ${KEYBINDS[$BIND]}"
|
||||
else
|
||||
echo "ℹ️ Keybind existiert bereits: ${KEYBINDS[$BIND]}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Standardvorlagen ablegen
|
||||
echo "📂 Standardvorlagen werden im Vorlagen-Ordner erstellt..."
|
||||
TEMPLATES_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Vorlagen")
|
||||
mkdir -p "$TEMPLATES_DIR"
|
||||
|
||||
# Vorlagenliste
|
||||
declare -A TEMPLATES=(
|
||||
["Textdokument.txt"]="Dies ist eine Standard-Textdatei."
|
||||
["Markdown-Dokument.md"]="# Markdown-Vorlage\n\nHier beginnt dein Markdown-Dokument."
|
||||
["Bash-Skript.sh"]="#!/bin/bash\n\necho 'Hello, world!'"
|
||||
["Python-Skript.py"]='#!/usr/bin/env python3\n\nprint("Hello, world!")'
|
||||
)
|
||||
|
||||
for FILE in "${!TEMPLATES[@]}"; do
|
||||
TEMPLATE_PATH="$TEMPLATES_DIR/$FILE"
|
||||
if [[ ! -f "$TEMPLATE_PATH" ]]; then
|
||||
echo -e "${TEMPLATES[$FILE]}" >"$TEMPLATE_PATH"
|
||||
chmod +x "$TEMPLATE_PATH" # Falls Skript
|
||||
echo "✅ Vorlage erstellt: $FILE"
|
||||
else
|
||||
echo "ℹ️ Vorlage existiert bereits: $FILE"
|
||||
fi
|
||||
done
|
||||
|
||||
# Zielverzeichnis und UserKeybinds-Datei definieren
|
||||
SOURCE_DIR="$HOME/.config/hypr/scripts"
|
||||
TARGET_DIR="$HOME/.config/hypr/UserScripts"
|
||||
CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
|
||||
USER_KEYBINDS_FILE="$CONFIG_DIR/UserKeybinds.conf" # Definition an der richtigen Stelle
|
||||
|
||||
read -p "❓ Sollen Anpassungen an den Users-Dirs in den Hyprland-Skripten vorgenommen werden? (j/n) [n]: " answer
|
||||
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||
|
||||
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||
# Bereinige fälschlicherweise kopierte Dateien
|
||||
echo "📂 Überprüfe und bereinige Dateien im Verzeichnis $TARGET_DIR..."
|
||||
if [[ -d "$TARGET_DIR" ]]; then
|
||||
for FILE in "$TARGET_DIR"/*; do
|
||||
if [[ -f "$FILE" ]]; then
|
||||
BASENAME=$(basename "$FILE")
|
||||
SOURCE_FILE="$SOURCE_DIR/$BASENAME"
|
||||
|
||||
# Prüfen, ob die Datei im Quellverzeichnis existiert und angepasst werden musste
|
||||
if [[ -f "$SOURCE_FILE" ]] && ! grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos' "$SOURCE_FILE"; then
|
||||
echo "🗑️ Entferne fälschlicherweise kopierte Datei: $BASENAME"
|
||||
rm "$FILE"
|
||||
|
||||
# Rückgängig machen der falschen Verweise in UserKeybinds.conf
|
||||
if [[ -f "$USER_KEYBINDS_FILE" ]]; then
|
||||
echo "🔄 Setze falschen Verweis für $BASENAME in $USER_KEYBINDS_FILE zurück..."
|
||||
sed -i "s|\$UserScripts/$BASENAME|\$scriptsDir/$BASENAME|g" "$USER_KEYBINDS_FILE"
|
||||
echo "✅ Verweis für $BASENAME zurückgesetzt."
|
||||
fi
|
||||
else
|
||||
echo "✅ Datei $BASENAME ist korrekt und bleibt erhalten."
|
||||
fi
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "⚠️ Zielverzeichnis $TARGET_DIR existiert nicht. Keine Bereinigung erforderlich."
|
||||
fi
|
||||
|
||||
# Kopiere nur relevante Dateien und behalte die Verzeichnisstruktur bei
|
||||
echo "📂 Verarbeite Dateien im Verzeichnis $SOURCE_DIR..."
|
||||
mkdir -p "$TARGET_DIR"
|
||||
COPIED_FILES=() # Array, um die tatsächlich kopierten Dateien zu speichern
|
||||
|
||||
if [[ -d "$SOURCE_DIR" ]]; then
|
||||
find "$SOURCE_DIR" -type f | while read -r FILE; do
|
||||
RELATIVE_PATH="${FILE#$SOURCE_DIR/}" # Relativer Pfad zur Datei
|
||||
TARGET_PATH="$TARGET_DIR/$RELATIVE_PATH"
|
||||
|
||||
# Prüfen, ob die Datei angepasst werden muss
|
||||
if grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos|/home/[a-zA-Z0-9._-]*/Desktop|/home/[a-zA-Z0-9._-]*/Downloads|/home/[a-zA-Z0-9._-]*/Documents|/home/[a-zA-Z0-9._-]*/Pictures|/home/[a-zA-Z0-9._-]*/Music|/home/[a-zA-Z0-9._-]*/Videos|\$\(xdg-user-dir\)/Desktop|\$\(xdg-user-dir\)/Downloads|\$\(xdg-user-dir\)/Documents|\$\(xdg-user-dir\)/Pictures|\$\(xdg-user-dir\)/Music|\$\(xdg-user-dir\)/Videos' "$FILE"; then
|
||||
echo "🔄 Kopiere Datei zur Anpassung: $RELATIVE_PATH"
|
||||
mkdir -p "$(dirname "$TARGET_PATH")" # Zielverzeichnis erstellen
|
||||
cp "$FILE" "$TARGET_PATH"
|
||||
COPIED_FILES+=("$RELATIVE_PATH") # Relativen Pfad speichern
|
||||
else
|
||||
echo "ℹ️ Datei $RELATIVE_PATH benötigt keine Anpassung. Überspringe Kopieren."
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "⚠️ Quellverzeichnis $SOURCE_DIR existiert nicht. Überspringe Verarbeitung."
|
||||
fi
|
||||
|
||||
# Ersetzungen in allen Dateien im Verzeichnis UserScripts vornehmen
|
||||
echo "🔄 Ersetze absolute Pfade, XDG-Verzeichnisse und Platzhalter in allen Dateien im Verzeichnis $TARGET_DIR..."
|
||||
for FILE in "$TARGET_DIR"/*; do
|
||||
if [[ -f "$FILE" ]]; then
|
||||
echo "Verarbeite Datei: $FILE"
|
||||
|
||||
# Ersetzungen vornehmen
|
||||
sed -i \
|
||||
-e 's|\$HOME/Desktop|$(xdg-user-dir DESKTOP)|g' \
|
||||
-e 's|\$HOME/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
|
||||
-e 's|\$HOME/Documents|$(xdg-user-dir DOCUMENTS)|g' \
|
||||
-e 's|\$HOME/Pictures|$(xdg-user-dir PICTURES)|g' \
|
||||
-e 's|\$HOME/Music|$(xdg-user-dir MUSIC)|g' \
|
||||
-e 's|\$HOME/Videos|$(xdg-user-dir VIDEOS)|g' \
|
||||
-e 's|/home/[a-zA-Z0-9._-]*/Desktop|$(xdg-user-dir DESKTOP)|g' \
|
||||
-e 's|/home/[a-zA-Z0-9._-]*/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
|
||||
-e 's|/home/[a-zA-Z0-9._-]*/Documents|$(xdg-user-dir DOCUMENTS)|g' \
|
||||
-e 's|/home/[a-zA-Z0-9._-]*/Pictures|$(xdg-user-dir PICTURES)|g' \
|
||||
-e 's|/home/[a-zA-Z0-9._-]*/Music|$(xdg-user-dir MUSIC)|g' \
|
||||
-e 's|/home/[a-zA-Z0-9._-]*/Videos|$(xdg-user-dir VIDEOS)|g' \
|
||||
-e 's|$(xdg-user-dir)/Desktop|$(xdg-user-dir DESKTOP)|g' \
|
||||
-e 's|$(xdg-user-dir)/Downloads|$(xdg-user-dir DOWNLOAD)|g' \
|
||||
-e 's|$(xdg-user-dir)/Documents|$(xdg-user-dir DOCUMENTS)|g' \
|
||||
-e 's|$(xdg-user-dir)/Pictures|$(xdg-user-dir PICTURES)|g' \
|
||||
-e 's|$(xdg-user-dir)/Music|$(xdg-user-dir MUSIC)|g' \
|
||||
-e 's|$(xdg-user-dir)/Videos|$(xdg-user-dir VIDEOS)|g' \
|
||||
"$FILE"
|
||||
|
||||
echo "✅ Ersetzungen in $FILE abgeschlossen."
|
||||
fi
|
||||
done
|
||||
|
||||
# Verweise in UserKeybinds.conf anpassen
|
||||
if [[ -f "$USER_KEYBINDS_FILE" ]]; then
|
||||
echo "🔄 Passe Verweise in $USER_KEYBINDS_FILE an..."
|
||||
for SCRIPT in "${COPIED_FILES[@]}"; do
|
||||
# Ersetze $scriptsDir/<Dateiname> durch $UserScripts/<Dateiname>
|
||||
sed -i "s|\$scriptsDir/$SCRIPT|\$UserScripts/$SCRIPT|g" "$USER_KEYBINDS_FILE"
|
||||
echo "✅ Verweis für $SCRIPT angepasst."
|
||||
done
|
||||
else
|
||||
echo "⚠️ Datei $USER_KEYBINDS_FILE existiert nicht. Überspringe Anpassung der Verweise."
|
||||
fi
|
||||
|
||||
echo "📂 Verschiebe $(xdg-user-dir)/Pictures nach $(xdg-user-dir PICTURES)..."
|
||||
rsync -av --ignore-existing "$(xdg-user-dir)/Pictures/" "$(xdg-user-dir PICTURES)/"
|
||||
rm -r "$(xdg-user-dir)/Pictures/"
|
||||
fi
|
||||
|
||||
echo "✅ Skript erfolgreich ausgeführt!"
|
||||
@@ -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."
|
||||
@@ -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!"
|
||||
-302
@@ -1,302 +0,0 @@
|
||||
#!/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!"
|
||||
@@ -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.
|
||||
|
||||
**Mit diesen Skripten kann *ARCH Linux* mit *Hyprland* und diversen Programmen aufgesetzt werden.**
|
||||
Der Hauptbranch ist für ein aktuelles Debian-System gedacht!
|
||||
|
||||
## 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 -b arch https://gitea.creative-dragonslayer.de/DragonSlayer_14/Setup.git
|
||||
git clone https://gitea.creative-dragonslayer.de/Scripts/Setup.git
|
||||
```
|
||||
2. Wechsle in den richtigen Branch.
|
||||
3. Navigiere in das Verzeichnis `Setup`, um die ausführbaren Dateien und Ressourcen zu finden.
|
||||
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
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
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
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
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
Package: *
|
||||
Pin: release n=trixie-testing
|
||||
Pin-Priority: 50
|
||||
|
||||
Package: *
|
||||
Pin: release a=testing
|
||||
Pin-Priority: 50
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
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
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
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
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
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
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
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
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
xdg-user-dirs-update
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/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
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
for app in ~/.local/share/applications/waydroid.*.desktop; do
|
||||
grep -q NoDisplay $app || sed '/^Icon=/a NoDisplay=true' -i $app
|
||||
done
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
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
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/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
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
# /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
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
|
||||
Executable
BIN
Binary file not shown.
Executable
+1
@@ -0,0 +1 @@
|
||||
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
|
||||
Executable
BIN
Binary file not shown.
Executable
+49
@@ -0,0 +1,49 @@
|
||||
# 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'
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Name=Spotify
|
||||
Exec=/usr/bin/spotify
|
||||
Icon=spotify-client
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Audio;Music;
|
||||
@@ -0,0 +1,60 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user