summaryrefslogtreecommitdiff
path: root/raveos-app-installer/data/actions
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-app-installer/data/actions')
-rwxr-xr-xraveos-app-installer/data/actions/corectrl.sh109
-rwxr-xr-xraveos-app-installer/data/actions/discord.sh168
-rwxr-xr-xraveos-app-installer/data/actions/gnome-clocks.sh42
-rwxr-xr-xraveos-app-installer/data/actions/kvm.sh102
-rwxr-xr-xraveos-app-installer/data/actions/lutris.sh41
-rwxr-xr-xraveos-app-installer/data/actions/printer.sh57
-rwxr-xr-xraveos-app-installer/data/actions/steam.sh115
-rw-r--r--raveos-app-installer/data/actions/windows11.sh11
8 files changed, 645 insertions, 0 deletions
diff --git a/raveos-app-installer/data/actions/corectrl.sh b/raveos-app-installer/data/actions/corectrl.sh
new file mode 100755
index 0000000..7f378d4
--- /dev/null
+++ b/raveos-app-installer/data/actions/corectrl.sh
@@ -0,0 +1,109 @@
+#!/bin/bash
+# CoreCTRL (AMD GPU vezérlő) telepítő script
+# Környezeti változók: INSTALL_USER, INSTALL_HOME, REPO_CONFIGS_URL
+
+set -e
+
+USER="$INSTALL_USER"
+HOME="$INSTALL_HOME"
+REPO_URL="${REPO_CONFIGS_URL:-https://git.rp1.hu/Nippy/Raveos-App-beta/raw/branch/main/raveos-app-installer-beta/configs/}"
+ACTION="${1:-install}"
+CONFIG_OVERRIDE_DIR="${RAVEOS_CONFIG_OVERRIDE_DIR:-/etc/raveos-beta/configs}"
+CONFIG_PACKAGE_DIR="${RAVEOS_CONFIG_PACKAGE_DIR:-/usr/share/raveos-app-installer-beta/configs}"
+
+run_as_user() {
+ runuser -u "$USER" -- env HOME="$HOME" "$@"
+}
+
+resolve_local_config() {
+ local name="$1"
+ local candidate
+ for candidate in \
+ "$CONFIG_OVERRIDE_DIR/$name" \
+ "$CONFIG_PACKAGE_DIR/$name"
+ do
+ if [[ -f "$candidate" ]]; then
+ printf '%s\n' "$candidate"
+ return 0
+ fi
+ done
+ return 1
+}
+
+remove_installed_packages() {
+ local installed=()
+ local pkg
+ for pkg in "$@"; do
+ if pacman -Qq "$pkg" >/dev/null 2>&1; then
+ installed+=("$pkg")
+ fi
+ done
+ if ((${#installed[@]})); then
+ pacman -Rcns --noconfirm "${installed[@]}"
+ fi
+}
+
+if [[ "$ACTION" == "remove" ]]; then
+ echo "Removing CoreCTRL for $USER..."
+ remove_installed_packages corectrl
+ rm -f /etc/polkit-1/rules.d/90-corectrl.rules
+ rm -f "$HOME/.config/autostart/org.corectrl.CoreCtrl.desktop"
+ rm -rf "$HOME/.config/corectrl"
+ echo "CoreCTRL removal complete!"
+ exit 0
+fi
+
+echo "Installing CoreCTRL for $USER..."
+
+# CoreCTRL telepítése
+pacman -S --noconfirm --needed corectrl
+
+# CoreCTRL config letöltése
+echo "Downloading CoreCTRL config..."
+run_as_user mkdir -p "$HOME/.config/corectrl"
+if local_cfg="$(resolve_local_config corectrl.ini)"; then
+ cp "$local_cfg" "$HOME/.config/corectrl/corectrl.ini"
+else
+ wget -q -O "$HOME/.config/corectrl/corectrl.ini" "${REPO_URL}corectrl.ini" || true
+fi
+chown "$USER:$USER" "$HOME/.config/corectrl/corectrl.ini" 2>/dev/null || true
+
+# Autostart beállítása
+run_as_user mkdir -p "$HOME/.config/autostart"
+cp /usr/share/applications/org.corectrl.CoreCtrl.desktop "$HOME/.config/autostart/"
+chown "$USER:$USER" "$HOME/.config/autostart/org.corectrl.CoreCtrl.desktop"
+
+# Polkit szabály létrehozása (jelszó nélküli indítás)
+cat > /etc/polkit-1/rules.d/90-corectrl.rules << EOF
+polkit.addRule(function(action, subject) {
+ if ((action.id == "org.corectrl.helper.init" ||
+ action.id == "org.corectrl.helperkiller.init") &&
+ subject.local == true &&
+ subject.active == true &&
+ subject.isInGroup("$USER")) {
+ return polkit.Result.YES;
+ }
+});
+EOF
+
+# AMD GPU kernel paraméterek hozzáadása (ha systemd-boot)
+if [[ -d /boot/loader/entries ]]; then
+ for conf in /boot/loader/entries/*.conf; do
+ if [[ -f "$conf" ]]; then
+ if ! grep -q "amdgpu.ppfeaturemask" "$conf"; then
+ sed -i '/^options/s/$/ amdgpu.ppfeaturemask=0xffffffff/' "$conf"
+ fi
+ fi
+ done
+fi
+
+# GRUB esetén
+if [[ -f /etc/default/grub ]]; then
+ if ! grep -q "amdgpu.ppfeaturemask" /etc/default/grub; then
+ sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="\(.*\)"/GRUB_CMDLINE_LINUX_DEFAULT="amdgpu.ppfeaturemask=0xffffffff \1"/' /etc/default/grub
+ grub-mkconfig -o /boot/grub/grub.cfg 2>/dev/null || true
+ fi
+fi
+
+echo "CoreCTRL installation complete!"
+echo "Please reboot for kernel parameters to take effect."
diff --git a/raveos-app-installer/data/actions/discord.sh b/raveos-app-installer/data/actions/discord.sh
new file mode 100755
index 0000000..efff51e
--- /dev/null
+++ b/raveos-app-installer/data/actions/discord.sh
@@ -0,0 +1,168 @@
+#!/bin/bash
+# Discord + Vencord telepítő script
+# Környezeti változók: INSTALL_USER, INSTALL_HOME, REPO_CONFIGS_URL
+
+set -e
+
+USER="$INSTALL_USER"
+HOME="$INSTALL_HOME"
+REPO_URL="${REPO_CONFIGS_URL:-https://git.rp1.hu/Nippy/Raveos-App-beta/raw/branch/main/raveos-app-installer-beta/configs/}"
+ACTION="${1:-install}"
+TARGET_UID="${TARGET_UID:-$(id -u "$USER" 2>/dev/null || true)}"
+TARGET_XDG_RUNTIME_DIR="${TARGET_XDG_RUNTIME_DIR:-/run/user/$TARGET_UID}"
+CONFIG_OVERRIDE_DIR="${RAVEOS_CONFIG_OVERRIDE_DIR:-/etc/raveos-beta/configs}"
+CONFIG_PACKAGE_DIR="${RAVEOS_CONFIG_PACKAGE_DIR:-/usr/share/raveos-app-installer-beta/configs}"
+
+run_as_user() {
+ runuser -u "$USER" -- env \
+ HOME="$HOME" \
+ XDG_RUNTIME_DIR="$TARGET_XDG_RUNTIME_DIR" \
+ "$@"
+}
+
+resolve_local_config() {
+ local name="$1"
+ local candidate
+ for candidate in \
+ "$CONFIG_OVERRIDE_DIR/$name" \
+ "$CONFIG_PACKAGE_DIR/$name"
+ do
+ if [[ -f "$candidate" ]]; then
+ printf '%s\n' "$candidate"
+ return 0
+ fi
+ done
+ return 1
+}
+
+remove_installed_packages() {
+ local installed=()
+ local pkg
+ for pkg in "$@"; do
+ if pacman -Qq "$pkg" >/dev/null 2>&1; then
+ installed+=("$pkg")
+ fi
+ done
+ if ((${#installed[@]})); then
+ pacman -Rcns --noconfirm "${installed[@]}"
+ fi
+}
+
+if [[ "$ACTION" == "remove" ]]; then
+ echo "Removing Discord + Vencord for $USER..."
+ remove_installed_packages discord
+ rm -f /etc/pacman.d/hooks/vencord-reinstall.hook
+ rm -f /usr/local/bin/vencord-reinstall.sh
+ rm -f /usr/local/bin/VencordInstallerCli-linux
+ rm -rf "$HOME/.config/Vencord"
+ echo "Discord + Vencord removal complete!"
+ exit 0
+fi
+
+echo "Installing Discord + Vencord for $USER..."
+
+# Discord telepítése
+pacman -S --noconfirm --needed discord
+
+# Secure temp directory
+TMPDIR=$(mktemp -d)
+chmod 755 "$TMPDIR"
+trap 'rm -rf "$TMPDIR"' EXIT
+
+# Vencord Installer letöltése
+echo "Downloading Vencord Installer..."
+VENCORD_URL="https://github.com/Vencord/Installer/releases/latest/download/VencordInstallerCli-linux"
+wget -q -O "$TMPDIR/VencordInstallerCli-linux" "$VENCORD_URL"
+
+# Verify it's an ELF binary (not a malicious script)
+FILE_TYPE=$(file -b "$TMPDIR/VencordInstallerCli-linux")
+if [[ "$FILE_TYPE" != ELF* ]]; then
+ echo "ERROR: Downloaded file is not a valid ELF binary: $FILE_TYPE"
+ exit 1
+fi
+
+chmod +x "$TMPDIR/VencordInstallerCli-linux"
+
+# Vencord installer másolása a rendszerbe
+cp "$TMPDIR/VencordInstallerCli-linux" /usr/local/bin/VencordInstallerCli-linux
+chmod +x /usr/local/bin/VencordInstallerCli-linux
+
+# Vencord telepítése user módban, auto-detect (Discord a user ~/.config/discord/-ban van)
+# Az Arch discord csomag bootstrap: első futtatáskor tölti le Discordot a user home-ba.
+# Ha még nem futott a Discord, a telepítés csendesen megbukik - a pacman hook elvégzi
+# a következő Discord frissítés után automatikusan.
+echo "Installing Vencord (user mode)..."
+run_as_user /usr/local/bin/VencordInstallerCli-linux -install 2>/dev/null || true
+run_as_user /usr/local/bin/VencordInstallerCli-linux -install-openasar 2>/dev/null || true
+
+# Pacman hook: Discord update után Vencord újratelepítés
+mkdir -p /etc/pacman.d/hooks
+cat > /etc/pacman.d/hooks/vencord-reinstall.hook << 'HOOK'
+[Trigger]
+Operation = Install
+Operation = Upgrade
+Type = Package
+Target = discord
+
+[Action]
+Description = Reinstalling Vencord after Discord update...
+When = PostTransaction
+Exec = /usr/local/bin/vencord-reinstall.sh
+HOOK
+
+# Reinstall script - user neve bele van égetve telepítéskor
+cat > /usr/local/bin/vencord-reinstall.sh << SCRIPT
+#!/bin/bash
+runuser -u "$USER" -- env HOME="$HOME" /usr/local/bin/VencordInstallerCli-linux -install || true
+runuser -u "$USER" -- env HOME="$HOME" /usr/local/bin/VencordInstallerCli-linux -install-openasar || true
+SCRIPT
+chmod +x /usr/local/bin/vencord-reinstall.sh
+
+# Vencord config könyvtár létrehozása és RaveOS téma letöltése
+run_as_user mkdir -p "$HOME/.config/Vencord/themes"
+echo "Downloading RaveOS Vencord theme..."
+if local_cfg="$(resolve_local_config RaveOS-Vencord.theme.css)"; then
+ cp "$local_cfg" "$HOME/.config/Vencord/themes/RaveOS-Vencord.theme.css"
+else
+ wget -q -O "$HOME/.config/Vencord/themes/RaveOS-Vencord.theme.css" \
+ "${REPO_URL}RaveOS-Vencord.theme.css" || true
+fi
+if local_cfg="$(resolve_local_config raveos-discord-bg.jpeg)"; then
+ cp "$local_cfg" "$HOME/.config/Vencord/themes/raveos-discord-bg.jpeg"
+else
+ wget -q -O "$HOME/.config/Vencord/themes/raveos-discord-bg.jpeg" \
+ "${REPO_URL}raveos-discord-bg.jpeg" || true
+fi
+
+# Vencord settings: téma engedélyezés + quickCss bekapcsolás
+run_as_user mkdir -p "$HOME/.config/Vencord/settings"
+VENCORD_SETTINGS="$HOME/.config/Vencord/settings/settings.json"
+if [ ! -f "$VENCORD_SETTINGS" ]; then
+ cat > "$VENCORD_SETTINGS" << 'SETTINGS'
+{
+ "autoUpdate": true,
+ "autoUpdateNotification": true,
+ "useQuickCss": true,
+ "enabledThemes": [
+ "RaveOS-Vencord.theme.css"
+ ]
+}
+SETTINGS
+else
+ python3 -c "
+import json
+with open('$VENCORD_SETTINGS', 'r') as f:
+ s = json.load(f)
+themes = s.get('enabledThemes', [])
+if 'RaveOS-Vencord.theme.css' not in themes:
+ themes.append('RaveOS-Vencord.theme.css')
+ s['enabledThemes'] = themes
+ with open('$VENCORD_SETTINGS', 'w') as f:
+ json.dump(s, f, indent=4)
+" || true
+fi
+chown -R "$USER:$USER" "$HOME/.config/Vencord"
+
+echo "Discord + Vencord installation complete!"
+echo "Note: Ha a Vencord nem lett azonnal alkalmazva, indítsd el a Discordot egyszer,"
+echo "majd a kovetkezo Discord frissitesnel automatikusan feltelepul."
diff --git a/raveos-app-installer/data/actions/gnome-clocks.sh b/raveos-app-installer/data/actions/gnome-clocks.sh
new file mode 100755
index 0000000..cb3b10b
--- /dev/null
+++ b/raveos-app-installer/data/actions/gnome-clocks.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+# GNOME Clocks (módosított hangokkal) telepítő script
+# Környezeti változók: INSTALL_USER, INSTALL_HOME
+
+set -e
+
+USER="$INSTALL_USER"
+HOME="$INSTALL_HOME"
+ACTION="${1:-install}"
+
+remove_installed_packages() {
+ local installed=()
+ local pkg
+ for pkg in "$@"; do
+ if pacman -Qq "$pkg" >/dev/null 2>&1; then
+ installed+=("$pkg")
+ fi
+ done
+ if ((${#installed[@]})); then
+ pacman -Rcns --noconfirm "${installed[@]}"
+ fi
+}
+
+if [[ "$ACTION" == "remove" ]]; then
+ echo "Removing GNOME Clocks..."
+ remove_installed_packages gnome-clocks
+ echo "GNOME Clocks removal complete!"
+ exit 0
+fi
+
+echo "Installing GNOME Clocks..."
+
+# Függőségek
+pacman -S --noconfirm --needed \
+ itstool \
+ vala \
+ meson \
+ gst-plugins-base \
+ gst-plugins-good \
+ gnome-clocks
+
+echo "GNOME Clocks installation complete!"
diff --git a/raveos-app-installer/data/actions/kvm.sh b/raveos-app-installer/data/actions/kvm.sh
new file mode 100755
index 0000000..1e05fdb
--- /dev/null
+++ b/raveos-app-installer/data/actions/kvm.sh
@@ -0,0 +1,102 @@
+#!/bin/bash
+# KVM/QEMU virtualizáció telepítő script
+# Környezeti változók: INSTALL_USER, INSTALL_HOME
+
+set -e
+
+USER="$INSTALL_USER"
+HOME="$INSTALL_HOME"
+ACTION="${1:-install}"
+
+remove_installed_packages() {
+ local installed=()
+ local pkg
+ for pkg in "$@"; do
+ if pacman -Qq "$pkg" >/dev/null 2>&1; then
+ installed+=("$pkg")
+ fi
+ done
+ if ((${#installed[@]})); then
+ pacman -Rcns --noconfirm "${installed[@]}"
+ fi
+}
+
+if [[ "$ACTION" == "remove" ]]; then
+ echo "Removing KVM/QEMU for $USER..."
+ systemctl disable --now libvirtd.service 2>/dev/null || true
+ remove_installed_packages \
+ qemu-full \
+ qemu-img \
+ libvirt \
+ virt-install \
+ virt-manager \
+ virt-viewer \
+ edk2-ovmf \
+ dnsmasq \
+ swtpm \
+ guestfs-tools \
+ libosinfo \
+ dmidecode
+ echo "KVM/QEMU removal complete!"
+ exit 0
+fi
+
+echo "Installing KVM/QEMU for $USER..."
+
+# Csomagok telepítése
+pacman -S --noconfirm --needed \
+ qemu-full \
+ qemu-img \
+ libvirt \
+ virt-install \
+ virt-manager \
+ virt-viewer \
+ edk2-ovmf \
+ dnsmasq \
+ swtpm \
+ guestfs-tools \
+ libosinfo \
+ dmidecode
+
+# User hozzáadása a szükséges csoportokhoz
+usermod -aG kvm "$USER"
+usermod -aG input "$USER"
+usermod -aG libvirt "$USER"
+
+# Libvirt konfiguráció - user beállítása
+QEMU_CONF="/etc/libvirt/qemu.conf"
+if [[ -f "$QEMU_CONF" ]]; then
+ # User sor keresése és módosítása
+ if grep -q "^#user = " "$QEMU_CONF"; then
+ sed -i "s/^#user = .*/user = \"$USER\"/" "$QEMU_CONF"
+ elif grep -q "^user = " "$QEMU_CONF"; then
+ sed -i "s/^user = .*/user = \"$USER\"/" "$QEMU_CONF"
+ else
+ echo "user = \"$USER\"" >> "$QEMU_CONF"
+ fi
+
+ # Group beállítása
+ if grep -q '^#group = ' "$QEMU_CONF"; then
+ sed -i 's/^#group = .*/group = "kvm"/' "$QEMU_CONF"
+ elif grep -q '^group = ' "$QEMU_CONF"; then
+ sed -i 's/^group = .*/group = "kvm"/' "$QEMU_CONF"
+ else
+ echo 'group = "kvm"' >> "$QEMU_CONF"
+ fi
+fi
+
+# Szolgáltatások engedélyezése és indítása
+systemctl enable libvirtd.socket 2>/dev/null || true
+systemctl start libvirtd.socket 2>/dev/null || true
+systemctl enable libvirtd.service
+systemctl start libvirtd.service
+
+# Várjuk meg a socketet mielőtt virsh-t hívunk
+timeout 30 bash -c 'until [ -S /run/libvirt/libvirt-sock ]; do sleep 1; done' 2>/dev/null || true
+
+# Default network autostart
+virsh net-autostart default 2>/dev/null || true
+virsh net-start default 2>/dev/null || true
+
+echo "KVM/QEMU installation complete!"
+echo "Please log out and back in for group changes to take effect."
diff --git a/raveos-app-installer/data/actions/lutris.sh b/raveos-app-installer/data/actions/lutris.sh
new file mode 100755
index 0000000..dda6274
--- /dev/null
+++ b/raveos-app-installer/data/actions/lutris.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+# Lutris + Wine telepítő script
+# Környezeti változók: INSTALL_USER, INSTALL_HOME
+
+set -e
+
+USER="$INSTALL_USER"
+HOME="$INSTALL_HOME"
+ACTION="${1:-install}"
+
+remove_installed_packages() {
+ local installed=()
+ local pkg
+ for pkg in "$@"; do
+ if pacman -Qq "$pkg" >/dev/null 2>&1; then
+ installed+=("$pkg")
+ fi
+ done
+ if ((${#installed[@]})); then
+ pacman -Rcns --noconfirm "${installed[@]}"
+ fi
+}
+
+if [[ "$ACTION" == "remove" ]]; then
+ echo "Removing Lutris + Wine for $USER..."
+ remove_installed_packages lutris wine winetricks wine-mono wine-gecko
+ echo "Lutris + Wine removal complete!"
+ exit 0
+fi
+
+echo "Installing Lutris + Wine for $USER..."
+
+# Lutris és Wine telepítése
+pacman -S --noconfirm --needed \
+ lutris \
+ wine \
+ winetricks \
+ wine-mono \
+ wine-gecko
+
+echo "Lutris + Wine installation complete!"
diff --git a/raveos-app-installer/data/actions/printer.sh b/raveos-app-installer/data/actions/printer.sh
new file mode 100755
index 0000000..5b55e3b
--- /dev/null
+++ b/raveos-app-installer/data/actions/printer.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+# Nyomtató támogatás telepítő script
+# Környezeti változók: INSTALL_USER, INSTALL_HOME
+
+set -e
+
+USER="$INSTALL_USER"
+HOME="$INSTALL_HOME"
+ACTION="${1:-install}"
+
+remove_installed_packages() {
+ local installed=()
+ local pkg
+ for pkg in "$@"; do
+ if pacman -Qq "$pkg" >/dev/null 2>&1; then
+ installed+=("$pkg")
+ fi
+ done
+ if ((${#installed[@]})); then
+ pacman -Rcns --noconfirm "${installed[@]}"
+ fi
+}
+
+if [[ "$ACTION" == "remove" ]]; then
+ echo "Removing printer support..."
+ systemctl disable --now cups 2>/dev/null || true
+ remove_installed_packages \
+ cups \
+ hplip \
+ system-config-printer \
+ epson-inkjet-printer-escpr \
+ epson-inkjet-printer-escpr2
+ echo "Printer support removal complete!"
+ exit 0
+fi
+
+echo "Installing printer support..."
+
+# Alap nyomtató csomagok
+pacman -S --noconfirm --needed \
+ cups \
+ hplip \
+ system-config-printer
+
+# Epson nyomtatók
+# Ezek a RaveOS környezetben repo-ból is elérhetők, ezért ne használjunk
+# interaktív `yay` futtatást egy rootból indított installer scriptben.
+pacman -S --noconfirm --needed \
+ epson-inkjet-printer-escpr \
+ epson-inkjet-printer-escpr2 \
+ || true
+
+# CUPS szolgáltatás engedélyezése
+systemctl enable cups
+systemctl start cups
+
+echo "Printer support installation complete!"
diff --git a/raveos-app-installer/data/actions/steam.sh b/raveos-app-installer/data/actions/steam.sh
new file mode 100755
index 0000000..9025629
--- /dev/null
+++ b/raveos-app-installer/data/actions/steam.sh
@@ -0,0 +1,115 @@
+#!/bin/bash
+# Steam + ProtonGE telepítő script
+# Környezeti változók: INSTALL_USER, INSTALL_HOME, REPO_CONFIGS_URL
+
+set -e
+
+USER="$INSTALL_USER"
+HOME="$INSTALL_HOME"
+REPO_URL="${REPO_CONFIGS_URL:-https://git.rp1.hu/Nippy/Raveos-App-beta/raw/branch/main/raveos-app-installer-beta/configs/}"
+ACTION="${1:-install}"
+CONFIG_OVERRIDE_DIR="${RAVEOS_CONFIG_OVERRIDE_DIR:-/etc/raveos-beta/configs}"
+CONFIG_PACKAGE_DIR="${RAVEOS_CONFIG_PACKAGE_DIR:-/usr/share/raveos-app-installer-beta/configs}"
+
+run_as_user() {
+ runuser -u "$USER" -- env HOME="$HOME" "$@"
+}
+
+resolve_local_config() {
+ local name="$1"
+ local candidate
+ for candidate in \
+ "$CONFIG_OVERRIDE_DIR/$name" \
+ "$CONFIG_PACKAGE_DIR/$name"
+ do
+ if [[ -f "$candidate" ]]; then
+ printf '%s\n' "$candidate"
+ return 0
+ fi
+ done
+ return 1
+}
+
+remove_installed_packages() {
+ local installed=()
+ local pkg
+ for pkg in "$@"; do
+ if pacman -Qq "$pkg" >/dev/null 2>&1; then
+ installed+=("$pkg")
+ fi
+ done
+ if ((${#installed[@]})); then
+ pacman -Rcns --noconfirm "${installed[@]}"
+ fi
+}
+
+if [[ "$ACTION" == "remove" ]]; then
+ echo "Removing Steam for $USER..."
+ remove_installed_packages steam proton-cachyos
+ rm -f "$HOME/.local/bin/update-proton-ge"
+ rm -f "$HOME/.local/share/Steam/steam_dev.cfg"
+ rm -f "$HOME/.steam/steam/steam_dev.cfg"
+ echo "Steam removal complete!"
+ exit 0
+fi
+
+echo "Installing Steam for $USER..."
+
+# GPU detektálás - AMD-hez vulkan-radeon kell
+nVidia=$(lspci | grep -i "NVIDIA" -c || true)
+if [[ $nVidia -eq 0 ]]; then
+ echo "AMD GPU detected, installing vulkan-radeon..."
+ pacman -S --noconfirm --needed vulkan-radeon lib32-vulkan-radeon
+fi
+
+# Steam telepítés
+pacman -S --noconfirm --needed steam
+
+# Steam data dir meghatározása (symlink-kompatibilis)
+STEAM_DATA="$HOME/.local/share/Steam"
+if [ -L "$HOME/.steam/steam" ]; then
+ # Symlink már létezik (Steam volt már indítva)
+ STEAM_DATA=$(readlink -f "$HOME/.steam/steam")
+elif [ -d "$HOME/.steam/steam" ]; then
+ # Valódi mappa
+ STEAM_DATA="$HOME/.steam/steam"
+fi
+
+# Steam config letöltése
+echo "Downloading Steam config..."
+run_as_user mkdir -p "$STEAM_DATA"
+if local_cfg="$(resolve_local_config steam_dev.cfg)"; then
+ cp "$local_cfg" "$STEAM_DATA/steam_dev.cfg"
+else
+ wget -q -O "$STEAM_DATA/steam_dev.cfg" "${REPO_URL}steam_dev.cfg" || true
+fi
+chown "$USER:$USER" "$STEAM_DATA/steam_dev.cfg" 2>/dev/null || true
+
+# ProtonGE updater script letöltése
+echo "Downloading ProtonGE updater..."
+run_as_user mkdir -p "$HOME/.local/bin"
+if local_cfg="$(resolve_local_config update-proton-ge)"; then
+ cp "$local_cfg" "$HOME/.local/bin/update-proton-ge"
+else
+ wget -q -O "$HOME/.local/bin/update-proton-ge" "${REPO_URL}update-proton-ge"
+fi
+chmod +x "$HOME/.local/bin/update-proton-ge"
+chown "$USER:$USER" "$HOME/.local/bin/update-proton-ge"
+
+# ProtonGE telepítése az updater scripttel (mindig legfrissebb)
+echo "Installing ProtonGE..."
+run_as_user "$HOME/.local/bin/update-proton-ge" || true
+
+# proton-cachyos telepítése (mindig legfrissebb, CachyOS repo)
+echo "Installing proton-cachyos..."
+pacman -S --noconfirm --needed proton-cachyos || true
+
+# GSK_RENDERER beállítás
+if ! grep -q "GSK_RENDERER" /etc/environment 2>/dev/null; then
+ echo "GSK_RENDERER=gl" >> /etc/environment
+fi
+
+# Felesleges desktop fájl törlése
+rm -f /usr/share/applications/steam-native.desktop 2>/dev/null || true
+
+echo "Steam installation complete!"
diff --git a/raveos-app-installer/data/actions/windows11.sh b/raveos-app-installer/data/actions/windows11.sh
new file mode 100644
index 0000000..daf2c4c
--- /dev/null
+++ b/raveos-app-installer/data/actions/windows11.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+# Windows 11 "Telepito" - Csak Profiknak!
+# Kornyezeti valtozok: INSTALL_USER, INSTALL_HOME
+
+echo "!! MAJOM VAGY !!"
+echo ""
+echo "Windows 11? Komolyan? Linux-on vagy, elvezd!"
+echo ""
+echo "Ha tenyleg kell Windows, hasznalj KVM/QEMU-t a listabol."
+
+exit 0