dotfiles/executable_install-fedora.sh

179 lines
6.1 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
set -e
# OS-Überprüfung
if [[ "$(uname -s)" != "Linux" ]] || ! grep -Eq '^ID=fedora|^ID_LIKE=.*fedora' /etc/os-release; then
echo "Dieses Skript läuft nur unter Fedora Linux oder Fedora-ähnlichen Distributionen." >&2
exit 1
fi
# DNF Grundkonfiguration
sudo dnf update
sudo dnf -y install dnf-plugins-core
sudo dnf-3 config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
## Aktiviere das COPR-Repository von solopasha/hyprland:
if dnf copr list | grep -q 'solopasha/hyprland'; then
echo "solopasha/hyprland Copr-Repo ist bereits aktiviert"
else
sudo dnf copr enable solopasha/hyprland
echo "solopasha/hyprland Copr-Repo wurde hinzugefügt"
fi
sudo dnf install satty nwg-look cliphist
sudo dnf update
# Paketinstallationen gruppiert
## Shell-Tools
sudo dnf install -y \
fzf zsh-autosuggestions zsh-syntax-highlighting \
rg htop ncdu pwgen pass-otp gopass gopass-jsonapi \
tmux-powerline lolcat socat
## GUI & Desktop
sudo dnf install -y \
fuzzel papirus-icon-theme waybar pavucontrol-qt \
arc-theme hyprlock copyq nwg-dock-hyprland nwg-drawer \
nwg-panel nwg-launchers cascadia-code-nf-fonts \
jetbrains-mono-fonts la-capitaine-cursor-theme \
la-capitaine-icon-theme flatseal qt5ct qt6ct \
pcmanfm-qt lximage-qt swappy kvantum arc-kde-kvantum \
materia-kde-kvantum hyprpaper
## Entwicklung
sudo dnf install -y \
golang libgo-devel neovim python3-neovim \
ansible openldap-devel gcc python3-psycopg2 \
python3-postgresql golang-x-tools-toolstash \
golang-x-arch-devel.noarch cmake meson cpio \
pkg-config g++ gcc hyprland-devel uuid libinput re2
## Systemdienste
sudo dnf install -y \
dkms libdrm-devel hplip ydotool pkg-config \
libxkbcommon-devel scdoc inotify-tools \
net-snmp-utils net-snmp snmpd virt-manager \
@virtualization virt-what SwayNotificationCenter
## Multimedia
sudo dnf install -y \
vlc vlc-plugin-gstreamer vlc-plugin-pipewire \
vlc-libs vlc-plugin-ffmpeg ffmpeg ffmpeg-free \
gstreamer1-libav gstreamer1-vaapi \
gstreamer1-plugins-good gstreamer1-plugins-good-extras
## Docker
sudo dnf install -y \
docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
hyprpm_update_plugin() {
local REPO_URL="$1"
local PLUGINS="$2"
local REPO_NAME="${REPO_URL##*/}"
IFS=',' read -ra PLUGINS_ARRAY <<< "$PLUGINS"
# Repository-Prüfung mit tr
if ! hyprpm list 2>/dev/null | tr -dc '[[:print:]\n]' | grep -q "$REPO_NAME"; then
echo "Füge Repository hinzu..."
if ! hyprpm add "$REPO_URL" 2>/dev/null; then
echo "⚠️ Repository konnte nicht hinzugefügt (existiert bereits?)"
fi
fi
# Plugin-Verarbeitung mit tr und angepasstem Grep
for PLUGIN in "${PLUGINS_ARRAY[@]}"; do
# Bereinige Ausgabe und prüfe Status
if hyprpm list | tr -dc '[[:print:]\n]' | grep -A1 "Plugin $PLUGIN" | grep -q "enabled:.*true"; then
echo " $PLUGIN ist bereits aktiviert"
else
echo "Aktiviere $PLUGIN..."
if hyprpm enable "$PLUGIN" 2>/dev/null; then
echo "$PLUGIN erfolgreich aktiviert"
hyprpm reload
else
echo "❌ Fehler bei der Aktivierung von $PLUGIN"
fi
fi
done
}
## Hyprland Plugins
hyprpm update
### Funktionsaufruf mit mehreren Plugins
hyprpm_update_plugin \
"https://github.com/hyprwm/hyprland-plugins" \
"hyprexpo"
## VSCodium
sudo rpmkeys --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg
if [ ! -e /etc/yum.repos.d/vscodium.repo ]; then
printf "[gitlab.com_paulcarroty_vscodium_repo]\nname=download.vscodium.com\nbaseurl=https://download.vscodium.com/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg\nmetadata_expire=1h\n" | sudo tee -a /etc/yum.repos.d/vscodium.repo
fi
sudo dnf install codium
# Flatpak Setup
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
#flatpak install flathub com.spotify.Client
flatpak install flathub io.github.dweymouth.supersonic
flatpak install flathub com.bitwarden.desktop
flatpak install flathub org.prismlauncher.PrismLauncher
flatpak install flathub com.github.IsmaelMartinez.teams_for_linux
flatpak install flathub dev.linwood.butterfly
# Systemkonfiguration
sudo usermod -s /bin/zsh simono41
# Chezmoi Installation mit Prüfung
if ! command -v chezmoi &>/dev/null; then
sh -c "$(curl -fsLS get.chezmoi.io)"
chezmoi init -v --apply --force ssh://git@brothertec.eu:1023/simono41/dotfiles.git
else
echo "chezmoi ist bereits installiert, überspringe Installation"
fi
# Starship Installation mit Prüfung
if ! command -v starship &>/dev/null; then
curl -sS https://starship.rs/install.sh | sh
else
echo "Starship ist bereits installiert, überspringe Installation"
fi
# MinIO Client mit Prüfung
if [[ ! -f $HOME/minio-binaries/mc ]]; then
curl https://dl.min.io/client/mc/release/linux-$(uname -m)/mc \
--create-dirs \
-o $HOME/minio-binaries/mc
echo "MinIO Client wurde auf dem System installiert"
else
echo "MinIO Client ist bereits installiert, überspringe Download"
fi
# dotool mit Prüfung
if [[ ! -f /usr/local/bin/dotool ]]; then
mkdir -p ${HOME}/repos
cd ${HOME}/repos
git clone https://git.sr.ht/~geb/dotool
cd dotool
./build.sh && sudo ./build.sh install
sudo udevadm control --reload && sudo udevadm trigger
cd
echo "dotool wurde auf dem System installiert"
else
echo "dotool ist bereits installiert, überspringe Download"
fi
# Paketname wie im RPM: meist outlook-for-linux
PACKAGE="outlook-for-linux"
# Prüfen, ob das Paket installiert ist
if rpm -q $PACKAGE >/dev/null 2>&1; then
echo "$PACKAGE ist bereits installiert."
else
echo "$PACKAGE ist nicht installiert. Starte Download und Installation..."
cd /tmp
wget --no-clobber https://github.com/mahmoudbahaa/outlook-for-linux/releases/download/v1.3.14-outlook/outlook-for-linux-1.3.14.$(uname -m).rpm
sudo rpm -ivh outlook-for-linux-1.3.14.$(uname -m).rpm
cd
fi
echo "Installationscript abgeschlossen!!!"