-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexecutable_install-fedora.sh
More file actions
167 lines (146 loc) · 5.63 KB
/
executable_install-fedora.sh
File metadata and controls
167 lines (146 loc) · 5.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#!/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 thunderbird
## 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
flatpak install flathub im.riot.Riot
flatpak update
# 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
echo "Installationscript abgeschlossen!!!"