summaryrefslogtreecommitdiff
path: root/raveos-welcome/raveos_welcome.py
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-welcome/raveos_welcome.py')
-rw-r--r--raveos-welcome/raveos_welcome.py57
1 files changed, 0 insertions, 57 deletions
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: