diff options
Diffstat (limited to 'raveos-welcome')
| -rw-r--r-- | raveos-welcome/PKGBUILD | 3 | ||||
| -rwxr-xr-x | raveos-welcome/gaming-optimize.sh | 8 | ||||
| -rw-r--r-- | raveos-welcome/raveos-gpu-optimizer.sh | 9 | ||||
| -rw-r--r-- | raveos-welcome/raveos_welcome.py | 57 |
4 files changed, 1 insertions, 76 deletions
diff --git a/raveos-welcome/PKGBUILD b/raveos-welcome/PKGBUILD index 85f62b5..3ed1301 100644 --- a/raveos-welcome/PKGBUILD +++ b/raveos-welcome/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: nippy <nippy@tuta.io> pkgname=raveos-welcome pkgver=2.2.2 -pkgrel=8 +pkgrel=9 pkgdesc="RaveOS Welcome Application and Safe GPU Performance Optimizer" arch=('x86_64') url="https://git.rp1.hu/RaveOS/RaveOS-PKGBUILD" @@ -34,7 +34,6 @@ package() { find "${pkgdir}/usr/share/raveos-welcome/brave-profile" -type f -exec chmod 644 {} + fi - # Safe GPU Performance Optimizer & Systemd/Udev Units [ -f "${startdir}/raveos-gpu-optimizer.sh" ] && install -Dm755 "${startdir}/raveos-gpu-optimizer.sh" "${pkgdir}/usr/bin/raveos-gpu-optimizer" [ -f "${startdir}/gpu-optimization.service" ] && install -Dm644 "${startdir}/gpu-optimization.service" "${pkgdir}/usr/lib/systemd/system/gpu-optimization.service" [ -f "${startdir}/99-gpu-monitor.rules" ] && install -Dm644 "${startdir}/99-gpu-monitor.rules" "${pkgdir}/etc/udev/rules.d/99-gpu-monitor.rules" diff --git a/raveos-welcome/gaming-optimize.sh b/raveos-welcome/gaming-optimize.sh index a4c846a..ef9aaf5 100755 --- a/raveos-welcome/gaming-optimize.sh +++ b/raveos-welcome/gaming-optimize.sh @@ -1,5 +1,4 @@ #!/bin/bash -# RaveOS Gaming Optimization Helper - fut root-ként pkexec-en keresztül set -uo pipefail LOGDIR="/var/log/raveos-welcome" @@ -51,7 +50,6 @@ EOF udevadm control --reload-rules 2>/dev/null || true udevadm trigger --subsystem-match=block --action=change 2>/dev/null || true - # azonnali alkalmazas is, ne csak legkozelebbi boot/hotplug-kor for sched in /sys/block/*/queue/scheduler; do [ -f "$sched" ] || continue dev="${sched%/queue/scheduler}" @@ -147,9 +145,6 @@ apply_amd_overdrive() { } apply_brave() { - # brave-origin-bin kesz binariskent elerheto a chaotic-aur repoban, - # nincs szukseg yay/AUR buildre (ami korabban lefagyott a PKGBUILD-diff - # promptnal, mert a --noconfirm azt nem nemitja el). if pacman -S --noconfirm --needed brave-origin-bin; then echo "[OK] brave-origin telepitve" return 0 @@ -159,9 +154,6 @@ apply_brave() { } restore_brave_profile() { - # Brave Origin a binarisba egetett "BraveSoftware/Brave-Origin" mappat - # hasznalja (nem "Brave-Browser", mint a rendes Brave) - strings-szel - # ellenorizve az /opt/brave-origin-bin/brave binariban. local src="/usr/share/raveos-welcome/brave-profile/config/BraveSoftware/Brave-Browser" if [ ! -d "$src" ]; then echo "[FAIL] brave_profile: forras profil nem talalhato ($src)" diff --git a/raveos-welcome/raveos-gpu-optimizer.sh b/raveos-welcome/raveos-gpu-optimizer.sh index e24285a..3a429f6 100644 --- a/raveos-welcome/raveos-gpu-optimizer.sh +++ b/raveos-welcome/raveos-gpu-optimizer.sh @@ -1,10 +1,7 @@ #!/usr/bin/env bash -# RaveOS Safe GPU Performance Optimizer & Stutter Preventer -# Prevents P-state lock lag, Wayland compositor micro-stuttering, and thermal throttling drops. set -euo pipefail -# Root check if [[ $EUID -ne 0 ]]; then echo "[RaveOS-GPU] Error: Root permissions required." >&2 exit 1 @@ -14,32 +11,26 @@ log() { echo "[RaveOS-GPU] $1" } -# 1. AMD GPU Optimization (Auto P-State + Smooth Power Cap) optimize_amd() { log "Optimizing AMD GPU acceleration without P-state locking..." for card in /sys/class/drm/card*/device; do if [ -f "$card/power_dpm_force_performance_level" ]; then - # Use 'auto' instead of rigid 'high' to prevent mouse lag and compositor stutter echo "auto" > "$card/power_dpm_force_performance_level" 2>/dev/null || true fi done } -# 2. NVIDIA GPU Optimization (Adaptive PowerMizer + Smooth TDP Limit) optimize_nvidia() { if command -v nvidia-smi &>/dev/null; then log "Optimizing NVIDIA GPU (Adaptive PowerMizer mode)..." - # Auto-boost enabled, avoiding forced clock lock that breaks PCIe ASPM nvidia-smi --auto-boost-default=ENABLED 2>/dev/null || true if command -v nvidia-settings &>/dev/null && [ -n "${DISPLAY:-}" ]; then - # Set PowerMizer to Auto/Adaptive (0) instead of max performance (1) to prevent compositor stutter nvidia-settings -a "[gpu:0]/GpuPowerMizerMode=0" 2>/dev/null || true fi fi } -# Main Execution main() { log "Starting safe GPU optimization..." diff --git a/raveos-welcome/raveos_welcome.py b/raveos-welcome/raveos_welcome.py index 7aa55c3..08b9bed 100644 --- a/raveos-welcome/raveos_welcome.py +++ b/raveos-welcome/raveos_welcome.py @@ -29,7 +29,6 @@ from PyQt6.QtGui import ( from PyQt6.QtWidgets import QProxyStyle, QStyle from PyQt6.QtSvgWidgets import QSvgWidget -# ─── Constants ──────────────────────────────────────────────────────────────── FLAG_FILE = Path.home() / ".config" / "raveos" / ".welcome_done" APP_INSTALLER = "/usr/bin/raveos-app-installer" @@ -52,7 +51,6 @@ COLORS = { "error": "#e74c3c", } -# ─── Translations ───────────────────────────────────────────────────────────── def _detect_system_lang(): """Kezdőnyelv a rendszer locale alapján (hu/de, egyébként en).""" @@ -69,17 +67,14 @@ def _detect_system_lang(): _current_lang = _detect_system_lang() T = { - # Nav "nav_back": {"hu": "← Vissza", "de": "← Zurück", "en": "← Back"}, "nav_next": {"hu": "Tovább →", "de": "Weiter →", "en": "Next →"}, - # Step bar "step_welcome": {"hu": "ÜDVÖZLÉS", "de": "WILLKOMMEN", "en": "WELCOME"}, "step_network": {"hu": "HÁLÓZAT", "de": "NETZWERK", "en": "NETWORK"}, "step_optimize": {"hu": "OPTIMALIZÁCIÓ", "de": "OPTIMIERUNG", "en": "OPTIMIZE"}, "step_hyprland": {"hu": "HYPRLAND", "de": "HYPRLAND", "en": "HYPRLAND"}, "step_credits": {"hu": "KÖZREMŰKÖDŐK", "de": "MITWIRKENDE", "en": "CREDITS"}, "step_finish": {"hu": "BEFEJEZÉS", "de": "ABSCHLUSS", "en": "FINISH"}, - # Welcome page "welcome_tag": {"hu": "LINUX DISTRIBUTION", "de": "LINUX DISTRIBUTION", "en": "LINUX DISTRIBUTION"}, "welcome_about": {"hu": "RaveOS finomhangolás, kulcsra kész állapot!", "de": "RaveOS optimiert, startklar!", @@ -94,7 +89,6 @@ T = { "feat_apps": {"hu": "App Installer\negy kattintás, minden szoftver", "de": "App Installer\nein Klick, alle Software", "en": "App Installer\none click, all software"}, - # WiFi page "wifi_title": {"hu": "HÁLÓZAT", "de": "NETZWERK", "en": "NETWORK"}, "wifi_subtitle": {"hu": "WiFi kapcsolat", "de": "WLAN-Verbindung", "en": "WiFi connection"}, "wifi_scan": {"hu": "Frissítés", "de": "Aktualisieren", "en": "Refresh"}, @@ -111,7 +105,6 @@ T = { "wifi_error": {"hu": "Hiba: {err}", "de": "Fehler: {err}", "en": "Error: {err}"}, "wifi_timeout": {"hu": "Időtúllépés - próbáld újra","de": "Zeitüberschreitung - bitte erneut versuchen", "en": "Timeout - try again"}, "wifi_unknown_err": {"hu": "Ismeretlen hiba", "de": "Unbekannter Fehler", "en": "Unknown error"}, - # Optimize page "opt_title": {"hu": "OPTIMALIZÁCIÓ", "de": "OPTIMIERUNG", "en": "OPTIMIZATION"}, "opt_gaming": {"hu": "GAMING OPTIMALIZÁCIÓ - GPU: {gpu}", "de": "GAMING-OPTIMIERUNG - GPU: {gpu}", "en": "GAMING OPTIMIZATION - GPU: {gpu}"}, "opt_sysctl": {"hu": "Kernel/sysctl tweaks", @@ -218,11 +211,9 @@ T = { "opt_reboot_needed": {"hu": "A GPU optimalizációk érvénybe lépéséhez a számítógépet újra kell indítani!", "de": "Für die GPU-Optimierungen ist ein Neustart erforderlich!", "en": "A reboot is required for GPU optimizations to take effect!"}, - # Hyprland page "hypr_title": {"hu": "HYPRLAND - KEYBINDS", "de": "HYPRLAND - TASTENKÜRZEL", "en": "HYPRLAND - KEYBINDS"}, "hypr_source": {"hu": "Forrás: ", "de": "Quelle: ", "en": "Source: "}, "hypr_none": {"hu": "Nem található Hyprland konfiguráció.", "de": "Keine Hyprland-Konfiguration gefunden.", "en": "No Hyprland configuration found."}, - # Hyprland descriptions "hypr_spotlight": {"hu": "Spotlight (DMS) megnyitása", "de": "Spotlight (DMS) öffnen", "en": "Open Spotlight (DMS)"}, "hypr_terminal": {"hu": "Terminál megnyitása (Kitty)", "de": "Terminal öffnen (Kitty)", "en": "Open terminal (Kitty)"}, "hypr_filemanager": {"hu": "Fájlkezelő megnyitása (Thunar)", "de": "Dateimanager öffnen (Thunar)", "en": "Open file manager (Thunar)"}, @@ -260,7 +251,6 @@ T = { "hypr_layout": {"hu": "Layout: {p}", "de": "Layout: {p}", "en": "Layout: {p}"}, "hypr_run": {"hu": "Futtatás: {prog}", "de": "Ausführen: {prog}", "en": "Run: {prog}"}, "hypr_run_generic": {"hu": "Program futtatása", "de": "Programm ausführen", "en": "Run program"}, - # Credits page "credits_title": {"hu": "KÖZREMŰKÖDŐK", "de": "MITWIRKENDE", "en": "CONTRIBUTORS"}, "credits_rp1_name": {"hu": "RavePriest1", "de": "RavePriest1", "en": "RavePriest1"}, "credits_rp1_role": {"hu": "Névadó, hivatalos naplopó", "de": "Namensgeber, offizieller Faulenzer", "en": "Namesake, official slacker"}, @@ -274,7 +264,6 @@ T = { "credits_stefi_name": {"hu": "Stefi", "de": "Stefi", "en": "Stefi"}, "credits_stefi_role": {"hu": "Design", "de": "Design", "en": "Design"}, "credits_stefi_desc": {"hu": "5000 lesz!", "de": "Das macht 5000!", "en": "That'll be 5000!"}, - # Finish page "finish_ok": {"hu": "OK", "de": "OK", "en": "OK"}, "finish_title": {"hu": "KÉSZ!", "de": "FERTIG!", "en": "DONE!"}, "finish_sub": {"hu": "A RaveOS be van állítva.", "de": "RaveOS ist eingerichtet.", "en": "RaveOS is set up."}, @@ -289,7 +278,6 @@ T = { "finish_close": {"hu": "Bezárás", "de": "Schließen", "en": "Close"}, "finish_install_missing": {"hu": "Nem található az App Installer.", "de": "App Installer nicht gefunden.", "en": "App Installer not found."}, "finish_install_err": {"hu": "Nem sikerült elindítani. Napló: {log}", "de": "Start fehlgeschlagen. Protokoll: {log}", "en": "Failed to launch. Log: {log}"}, - # Tooltip keys (for optimize page descriptions that use _ACTION_DESCS) "action_killactive": {"hu": "Aktív ablak bezárása", "de": "Aktives Fenster schließen", "en": "Close active window"}, "action_togglefloat": {"hu": "Lebegő mód ki/be", "de": "Schwebenden Modus umschalten", "en": "Toggle floating mode"}, "action_pseudo": {"hu": "Pseudo-tiling ki/be", "de": "Pseudo-Tiling umschalten", "en": "Toggle pseudo-tiling"}, @@ -477,7 +465,6 @@ QToolTip {{ }} """ -# ─── WiFi Worker ─────────────────────────────────────────────────────────────── class WiFiScanner(QThread): result = pyqtSignal(list) @@ -537,7 +524,6 @@ class WiFiConnector(QThread): self.failure.emit(str(e)) -# ─── Logo Widget ─────────────────────────────────────────────────────────────── def _find_svg() -> str: if Path(SVG_LOGO).exists(): @@ -574,7 +560,6 @@ class RaveLogo(QWidget): layout.addWidget(fallback) -# ─── WiFi page visibility check ─────────────────────────────────────────────── def _should_show_wifi() -> bool: try: @@ -599,7 +584,6 @@ def _should_show_wifi() -> bool: return has_wifi -# ─── Signal bar helper ───────────────────────────────────────────────────────── def signal_icon(signal: int) -> str: if signal >= 80: return "▂▄▆█" @@ -614,7 +598,6 @@ def security_tag(sec: str) -> str: return _t("wifi_encrypted") -# ─── Page 1: Welcome ─────────────────────────────────────────────────────────── class WelcomePage(QWidget): def __init__(self): @@ -626,7 +609,6 @@ class WelcomePage(QWidget): lay.setContentsMargins(60, 40, 60, 40) lay.setSpacing(0) - # Logo logo = RaveLogo() lay.addWidget(logo, alignment=Qt.AlignmentFlag.AlignHCenter) lay.addSpacing(10) @@ -653,7 +635,6 @@ class WelcomePage(QWidget): lay.addWidget(sep) lay.addSpacing(24) - # About card card = QFrame() card.setObjectName("card") card_lay = QVBoxLayout(card) @@ -699,7 +680,6 @@ class WelcomePage(QWidget): lay.addWidget(card) lay.addSpacing(18) - # Community links links_row1 = QHBoxLayout() links_row1.setSpacing(8) links_row2 = QHBoxLayout() @@ -754,7 +734,6 @@ class WelcomePage(QWidget): subprocess.Popen(["xdg-open", url]) -# ─── Page 2: WiFi ────────────────────────────────────────────────────────────── class WiFiPage(QWidget): def __init__(self): @@ -798,7 +777,6 @@ class WiFiPage(QWidget): self.list.itemClicked.connect(self._on_select) lay.addWidget(self.list) - # Password field self.pw_frame = QFrame() pw_lay = QVBoxLayout(self.pw_frame) pw_lay.setContentsMargins(0, 0, 0, 0) @@ -816,13 +794,11 @@ class WiFiPage(QWidget): self.pw_frame.setVisible(False) lay.addWidget(self.pw_frame) - # Status self.status_label = QLabel("") self.status_label.setObjectName("body") self.status_label.setAlignment(Qt.AlignmentFlag.AlignCenter) lay.addWidget(self.status_label) - # Connect button self.connect_btn = QPushButton(_t("wifi_connect")) self.connect_btn.setObjectName("primary") self.connect_btn.setEnabled(False) @@ -912,13 +888,10 @@ class WiFiPage(QWidget): self.connect_btn.setEnabled(True) -# ─── Hyprland Detection ─────────────────────────────────────────────────────── HYPR_CONFIG = Path.home() / ".config" / "hypr" / "hyprland.conf" _HYPR_FALLBACK = Path("/usr/share/raveos/hyprland-theme/theme-data/hypr/hyprland.conf") -# Hyprland 0.55+ Lua config mod (RaveOS ezt hasznalja alapertelmezetten, -# nincs is hagyomanyos hyprland.conf a rendszeren) HYPR_KEYBINDS_LUA = Path.home() / ".config" / "hypr" / "config" / "keybinds.lua" _HYPR_KEYBINDS_LUA_FALLBACK = Path( "/usr/share/raveos/hyprland-theme/theme-data/hypr/config/keybinds.lua" @@ -1111,10 +1084,6 @@ def _parse_hypr_binds(config_path: Path) -> list: return binds -# ─── Hyprland Lua config parser (keybinds.lua, hl.bind(...) hivasok) ───────── -# Best-effort parser: nem valodi Lua interpreter, csak a RaveOS keybinds.lua -# tipikus mintait (hl.bind("KEY", hl.dsp.xxx(...)), local string valtozok, -# egyszeru "for i = a, b do ... end" munkaterulet-ciklusok) ismeri fel. def _lua_extract_call(line: str, funcname: str): marker = funcname + "(" @@ -1268,8 +1237,6 @@ def _lua_try_add_bind(line: str, env: dict, binds: list): return combo = _fmt_key(combo_raw) - # ciklus-valtozok (pl. workspace = i) behelyettesitese a dispatcher - # kifejezesbe is, hogy a leiras a tenyleges munkaterulet-szamot mutassa dispatch_expr = args[1] for name, value in env.items(): if isinstance(value, int): @@ -1342,7 +1309,6 @@ def _parse_hypr_binds_lua(path: Path) -> list: return binds -# ─── Page: Hyprland Keybinds ───────────────────────────────────────────────── class HyprlandPage(QWidget): def __init__(self): @@ -1351,8 +1317,6 @@ class HyprlandPage(QWidget): self._binds = _parse_hypr_binds(cfg) self._cfg_path = cfg if not self._binds: - # nincs hagyomanyos hyprland.conf (vagy nincs benne bind sor) - - # a RaveOS Hyprland 0.55+ Lua config modot hasznalja lua_cfg = HYPR_KEYBINDS_LUA if HYPR_KEYBINDS_LUA.exists() else _HYPR_KEYBINDS_LUA_FALLBACK lua_binds = _parse_hypr_binds_lua(lua_cfg) if lua_binds: @@ -1439,7 +1403,6 @@ class HyprlandPage(QWidget): self.msg.setText(_t("hypr_none")) -# ─── GPU Detection ──────────────────────────────────────────────────────────── def _detect_gpu() -> tuple[str, str]: gpu_type = "other" @@ -1570,7 +1533,6 @@ def _detect_gpu() -> tuple[str, str]: return gpu_type, gpu_label -# ─── Page 3: Optimize ────────────────────────────────────────────────────────── OPTIMIZE_SCRIPT = "/usr/share/raveos-welcome/gaming-optimize.sh" OPTIMIZE_LOG = "/var/log/raveos-welcome/gaming-optimize.log" @@ -1623,7 +1585,6 @@ class OptimizePage(QWidget): vlay.setContentsMargins(0, 0, 8, 0) vlay.setSpacing(4) - # --- Gaming optimization --- self.sec1 = QLabel(_t("opt_gaming", gpu=self._gpu_label)) self.sec1.setObjectName("section_title") vlay.addWidget(self.sec1) @@ -1655,7 +1616,6 @@ class OptimizePage(QWidget): scroll.setWidget(inner) lay.addWidget(scroll, 1) - # Status + gomb self.status_lbl = QLabel("") self.status_lbl.setObjectName("body") self.status_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) @@ -1748,7 +1708,6 @@ class OptimizePage(QWidget): self.status_lbl.setText(_t("opt_apply_err", code=exit_code, log=OPTIMIZE_LOG)) -# ─── Page 4: Credits ────────────────────────────────────────────────────────── class CreditsPage(QWidget): def __init__(self): @@ -1827,7 +1786,6 @@ class CreditsPage(QWidget): desc_lbl.setText(_t(desc_key)) -# ─── Page 5: Finish ──────────────────────────────────────────────────────────── class FinishPage(QWidget): launch_installer = pyqtSignal() @@ -1868,7 +1826,6 @@ class FinishPage(QWidget): lay.addWidget(sep) lay.addSpacing(24) - # App installer CTA card card = QFrame() card.setObjectName("card") card_lay = QVBoxLayout(card) @@ -1930,7 +1887,6 @@ class FinishPage(QWidget): self.install_status.setVisible(True) -# ─── Main Window ─────────────────────────────────────────────────────────────── class RaveOSWelcome(QMainWindow): def __init__(self): @@ -1955,15 +1911,12 @@ class RaveOSWelcome(QMainWindow): root.setContentsMargins(0, 0, 0, 0) root.setSpacing(0) - # Step indicator bar self.step_bar = self._make_step_bar() root.addWidget(self.step_bar) - # Page container self.stack = QStackedWidget() root.addWidget(self.stack, stretch=1) - # Pages self.p_welcome = WelcomePage() self.p_optimize = OptimizePage() self.p_credits = CreditsPage() @@ -1980,12 +1933,10 @@ class RaveOSWelcome(QMainWindow): self.stack.addWidget(self.p_credits) self.stack.addWidget(self.p_finish) - # Nav buttons nav = QHBoxLayout() nav.setContentsMargins(24, 10, 24, 18) nav.setSpacing(12) - # Language selector (bottom-left) self.lang_hu_btn = QPushButton("Magyar") self.lang_hu_btn.setObjectName("lang_btn") self.lang_hu_btn.setFixedHeight(30) @@ -2185,11 +2136,6 @@ class RaveOSWelcome(QMainWindow): os.environ.get("XDG_CURRENT_DESKTOP", "").lower() == "hyprland" if is_hyprland: - # Hyprland 0.55+ Lua config mod alatt a hagyomanyos - # "hyprctl dispatch exec <parancs>" szintaxis mar nem mukodik, - # csak a hl.dsp.exec_cmd("...") Lua hivas - de a regi .conf - # alapu Hyprland telepiteseken meg a regi szintaxis a jo, ezert - # eloszor azt probaljuk, es csak hiba eseten valtunk Lua-ra. result = subprocess.run( ["hyprctl", "dispatch", "exec", cmd], capture_output=True, text=True @@ -2227,7 +2173,6 @@ class RaveOSWelcome(QMainWindow): QTimer.singleShot(1200, _check) -# ─── Flag helpers ────────────────────────────────────────────────────────────── def _flag_exists() -> bool: return FLAG_FILE.exists() @@ -2237,7 +2182,6 @@ def _write_flag(): FLAG_FILE.touch() -# ─── Fast tooltip style ──────────────────────────────────────────────────────── class _FastTooltipStyle(QProxyStyle): def styleHint(self, hint, option=None, widget=None, returnData=None): @@ -2248,7 +2192,6 @@ class _FastTooltipStyle(QProxyStyle): return super().styleHint(hint, option, widget, returnData) -# ─── Entry point ─────────────────────────────────────────────────────────────── def main(): if _flag_exists() and "--force" not in sys.argv: |