summaryrefslogtreecommitdiff
path: root/raveos-center/adat/actions
diff options
context:
space:
mode:
authorNippy <nippy@Nippy-Mac-mini.local>2026-11-01 18:13:54 +0100
committerNippy <nippy@Nippy-Mac-mini.local>2026-11-01 18:13:54 +0100
commita64ef966534f8dba6af889ba4bfce15691bfc85b (patch)
treeb30f284d05b80fa115569ab220deae13797fad6f /raveos-center/adat/actions
parent919f977b40016f588b0c8532c8a57f6035056b95 (diff)
downloadRaveOS-PKGBUILD-a64ef966534f8dba6af889ba4bfce15691bfc85b.tar.gz
RaveOS-PKGBUILD-a64ef966534f8dba6af889ba4bfce15691bfc85b.zip
új telepítő
Diffstat (limited to 'raveos-center/adat/actions')
-rwxr-xr-xraveos-center/adat/actions/corectrl.sh131
-rwxr-xr-xraveos-center/adat/actions/discord.sh203
-rwxr-xr-xraveos-center/adat/actions/gnome-clocks.sh42
-rwxr-xr-xraveos-center/adat/actions/kvm.sh102
-rwxr-xr-xraveos-center/adat/actions/lutris.sh41
-rwxr-xr-xraveos-center/adat/actions/printer.sh57
-rwxr-xr-xraveos-center/adat/actions/steam.sh119
-rw-r--r--raveos-center/adat/actions/windows11.sh11
8 files changed, 706 insertions, 0 deletions
diff --git a/raveos-center/adat/actions/corectrl.sh b/raveos-center/adat/actions/corectrl.sh
new file mode 100755
index 0000000..3d122ed
--- /dev/null
+++ b/raveos-center/adat/actions/corectrl.sh
@@ -0,0 +1,131 @@
+#!/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 -Rnsu --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"
+ if [[ -d /boot/loader/entries ]]; then
+ sed -i 's/ amdgpu\.ppfeaturemask=0xffffffff//' /boot/loader/entries/*.conf 2>/dev/null || true
+ fi
+ if [[ -f /etc/default/grub ]] && grep -q "amdgpu.ppfeaturemask" /etc/default/grub; then
+ sed -i 's/amdgpu\.ppfeaturemask=0xffffffff //' /etc/default/grub
+ grub-mkconfig -o /boot/grub/grub.cfg 2>/dev/null || true
+ fi
+ 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
+ if wget -q -O "$HOME/.config/corectrl/corectrl.ini" "${REPO_URL}corectrl.ini"; then
+ echo "e3884788efc7ebd5fc004c4158e79bd84e26575cb0146169774e8039ab29968d $HOME/.config/corectrl/corectrl.ini" | sha256sum -c - >/dev/null || {
+ echo "ERROR: corectrl.ini checksum mismatch"
+ rm -f "$HOME/.config/corectrl/corectrl.ini"
+ exit 1
+ }
+ fi
+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=0
+if lspci -nn | grep -E "VGA|3D|Display" | grep -q "\[1002:"; then
+ AMD_GPU=1
+fi
+
+# AMD GPU kernel paraméterek hozzáadása (ha systemd-boot)
+if [[ $AMD_GPU -eq 1 && -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 [[ $AMD_GPU -eq 1 && -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!"
+if [[ $AMD_GPU -eq 1 ]]; then
+ echo "Please reboot for kernel parameters to take effect."
+else
+ echo "No AMD GPU found, kernel parameters were not changed."
+fi
diff --git a/raveos-center/adat/actions/discord.sh b/raveos-center/adat/actions/discord.sh
new file mode 100755
index 0000000..cf728be
--- /dev/null
+++ b/raveos-center/adat/actions/discord.sh
@@ -0,0 +1,203 @@
+#!/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 -Rnsu --noconfirm "${installed[@]}"
+ fi
+}
+
+find_discord_dirs() {
+ local d
+ for d in "$HOME"/.config/discord/app-*/resources/app.asar; do
+ [[ -f "$d" ]] && printf '%s\n' "$(dirname "$(dirname "$d")")"
+ done
+ for d in "$HOME/.local/share/discord" "$HOME/.local/share/Discord" /usr/lib/discord /opt/discord; do
+ [[ -f "$d/resources/app.asar" ]] && printf '%s\n' "$d"
+ done
+}
+
+if [[ "$ACTION" == "remove" ]]; then
+ echo "Removing Discord + Vencord for $USER..."
+ while IFS= read -r dir; do
+ [[ -n "$dir" ]] || continue
+ run_as_user /usr/local/bin/VencordInstallerCli-linux -uninstall -location "$dir" 2>/dev/null || true
+ run_as_user /usr/local/bin/VencordInstallerCli-linux -uninstall-openasar -location "$dir" 2>/dev/null || true
+ done < <(find_discord_dirs)
+ 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 (fix verzió + SHA256 ellenőrzés)
+echo "Downloading Vencord Installer..."
+VENCORD_VERSION="1.4.2"
+VENCORD_SHA256="52642c8521a866ad241c10337144a4f513672c54b9c86a8169954785054c815d"
+VENCORD_URL="https://github.com/Vencord/Installer/releases/download/v${VENCORD_VERSION}/VencordInstallerCli-linux"
+wget -q -O "$TMPDIR/VencordInstallerCli-linux" "$VENCORD_URL"
+echo "${VENCORD_SHA256} $TMPDIR/VencordInstallerCli-linux" | sha256sum -c - >/dev/null || {
+ echo "ERROR: Vencord installer checksum mismatch (version ${VENCORD_VERSION})"
+ exit 1
+}
+
+# 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. Az új Discord bootstrap a user home-ba telepíti az
+# app-<verzió> mappákat (~/.config/discord/app-*/resources/app.asar), ezért
+# ezeket user-ként, explicit -location-nel patcheljük. Régi rendszer-szintű
+# telepítés (/usr/lib/discord) esetén is működik.
+mapfile -t DISCORD_DIRS < <(find_discord_dirs)
+
+echo "Installing Vencord..."
+if ((${#DISCORD_DIRS[@]})); then
+ for dir in "${DISCORD_DIRS[@]}"; do
+ echo "Discord location: $dir"
+ run_as_user /usr/local/bin/VencordInstallerCli-linux -install -location "$dir" || true
+ run_as_user /usr/local/bin/VencordInstallerCli-linux -install-openasar -location "$dir" || true
+ done
+else
+ echo "Discord app dir not found (indítsd el egyszer a Discordot), user-mode auto-detect..."
+ run_as_user /usr/local/bin/VencordInstallerCli-linux -install || true
+ run_as_user /usr/local/bin/VencordInstallerCli-linux -install-openasar || true
+fi
+
+# 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
+for dir in "$HOME"/.config/discord/app-*/; do
+ [ -f "\${dir}resources/app.asar" ] || continue
+ runuser -u "$USER" -- env HOME="$HOME" /usr/local/bin/VencordInstallerCli-linux -install -location "\${dir%/}" || true
+ runuser -u "$USER" -- env HOME="$HOME" /usr/local/bin/VencordInstallerCli-linux -install-openasar -location "\${dir%/}" || true
+done
+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-center/adat/actions/gnome-clocks.sh b/raveos-center/adat/actions/gnome-clocks.sh
new file mode 100755
index 0000000..12360bb
--- /dev/null
+++ b/raveos-center/adat/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 -Rnsu --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-center/adat/actions/kvm.sh b/raveos-center/adat/actions/kvm.sh
new file mode 100755
index 0000000..a1e2e13
--- /dev/null
+++ b/raveos-center/adat/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 -Rnsu --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-center/adat/actions/lutris.sh b/raveos-center/adat/actions/lutris.sh
new file mode 100755
index 0000000..d057c87
--- /dev/null
+++ b/raveos-center/adat/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 -Rnsu --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-center/adat/actions/printer.sh b/raveos-center/adat/actions/printer.sh
new file mode 100755
index 0000000..0dea156
--- /dev/null
+++ b/raveos-center/adat/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 -Rnsu --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-center/adat/actions/steam.sh b/raveos-center/adat/actions/steam.sh
new file mode 100755
index 0000000..ca45ea3
--- /dev/null
+++ b/raveos-center/adat/actions/steam.sh
@@ -0,0 +1,119 @@
+#!/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 -Rnsu --noconfirm "${installed[@]}"
+ fi
+}
+
+if [[ "$ACTION" == "remove" ]]; then
+ echo "Removing Steam for $USER..."
+ remove_installed_packages steam proton-cachyos-slr
+ 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
+if lspci -nn | grep -E "VGA|3D|Display" | grep -q "\[1002:"; 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"
+ echo "10c9737aa38c01f87af353eb097ea23e778e21522f63037a9b3a108e239028df $HOME/.local/bin/update-proton-ge" | sha256sum -c - >/dev/null || {
+ echo "ERROR: update-proton-ge checksum mismatch"
+ rm -f "$HOME/.local/bin/update-proton-ge"
+ exit 1
+ }
+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-slr telepítése (mindig legfrissebb, CachyOS repo, Steam Linux Runtime build)
+echo "Installing proton-cachyos-slr..."
+pacman -S --noconfirm --needed proton-cachyos-slr || 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-center/adat/actions/windows11.sh b/raveos-center/adat/actions/windows11.sh
new file mode 100644
index 0000000..daf2c4c
--- /dev/null
+++ b/raveos-center/adat/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