2025-04-12 13:04:14 +02:00
#!/usr/bin/env bash
set -e
# OS-Überprüfung
2025-04-22 08:21:55 +02:00
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
2025-04-12 13:04:14 +02:00
exit 1
fi
# DNF Grundkonfiguration
2025-04-22 10:47:51 +02:00
sudo dnf update
2025-04-12 13:04:14 +02:00
sudo dnf -y install dnf-plugins-core
sudo dnf-3 config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
# 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 \
2025-04-24 10:14:59 +02:00
la-capitaine-icon-theme flatseal qt5ct qt6ct
2025-04-12 13:04:14 +02:00
## 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
## 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 \
2025-04-22 09:13:57 +02:00
@virtualization virt-what SwayNotificationCenter
2025-04-12 13:04:14 +02:00
## 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
2025-04-23 14:02:25 +02:00
## VSCodium
sudo rpmkeys --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg
2025-04-23 14:07:12 +02:00
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
2025-04-23 14:02:25 +02:00
sudo dnf install codium
2025-04-12 13:04:14 +02:00
# Flatpak Setup
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
2025-04-22 08:50:32 +02:00
flatpak install flathub com.spotify.Client
2025-04-24 09:54:28 +02:00
flatpak install flathub com.bitwarden.desktop
2025-04-12 18:37:16 +02:00
flatpak install flathub org.prismlauncher.PrismLauncher
2025-04-22 09:58:27 +02:00
flatpak install flathub com.github.IsmaelMartinez.teams_for_linux
2025-04-12 13:04:14 +02:00
# Systemkonfiguration
sudo usermod -s /bin/zsh simono41
2025-04-12 13:43:21 +02:00
# 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
2025-04-12 13:04:14 +02:00
2025-04-12 13:43:21 +02:00
# Starship Installation mit Prüfung
if ! command -v starship & >/dev/null; then
curl -sS https://starship.rs/install.sh | sh
2025-04-12 13:04:14 +02:00
else
2025-04-12 13:43:21 +02:00
echo "Starship ist bereits installiert, überspringe Installation"
2025-04-12 13:04:14 +02:00
fi
2025-04-12 13:43:21 +02:00
# Cliphist mit Prüfung
if [ [ ! -f /usr/bin/cliphist ] ] ; then
2025-04-12 14:12:05 +02:00
mkdir -p ${ HOME } /repos
cd ${ HOME } /repos
git clone https://github.com/sentriz/cliphist.git
cd cliphist
go build -o cliphist .
sudo cp cliphist /usr/bin/
2025-04-24 11:24:19 +02:00
cd
2025-04-12 14:12:05 +02:00
echo "cliphist wurde auf dem System installiert"
2025-04-12 13:43:21 +02:00
else
echo "cliphist ist bereits installiert, überspringe Download"
fi
2025-04-17 18:43:46 +02:00
# MinIO Client mit Prüfung
if [ [ ! -f $HOME /minio-binaries/mc ] ] ; then
2025-04-17 18:45:40 +02:00
curl https://dl.min.io/client/mc/release/linux-$( uname -m) /mc \
2025-04-17 18:43:46 +02:00
--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
2025-04-24 11:24:19 +02:00
# dotool mit Prüfung
2025-04-24 11:25:07 +02:00
if [ [ ! -f /usr/local/bin/dotool ] ] ; then
2025-04-24 11:24:19 +02:00
mkdir -p ${ HOME } /repos
cd ${ HOME } /repos
git clone https://git.sr.ht/~geb/dotool
cd dotool
./build.sh && sudo ./build.sh install
2025-04-24 11:26:10 +02:00
sudo udevadm control --reload && sudo udevadm trigger
2025-04-24 11:24:19 +02:00
cd
echo "dotool wurde auf dem System installiert"
else
echo "dotool ist bereits installiert, überspringe Download"
fi
2025-04-22 08:21:55 +02:00
echo "Installationscript abgeschlossen!!!"