summaryrefslogtreecommitdiff
path: root/raveswitch/raveswitch-hibajelentes.md
diff options
context:
space:
mode:
Diffstat (limited to 'raveswitch/raveswitch-hibajelentes.md')
-rw-r--r--raveswitch/raveswitch-hibajelentes.md18
1 files changed, 9 insertions, 9 deletions
diff --git a/raveswitch/raveswitch-hibajelentes.md b/raveswitch/raveswitch-hibajelentes.md
index e8980b8..ed34a6d 100644
--- a/raveswitch/raveswitch-hibajelentes.md
+++ b/raveswitch/raveswitch-hibajelentes.md
@@ -1,4 +1,4 @@
-# raveswitch hibajelentés — SUPER+TAB nem működik friss telepítésen
+# raveswitch hibajelentés - SUPER+TAB nem működik friss telepítésen
## Környezet
- raveswitch verzió: 0.3.1 (`hyprland_raveswitch` git HEAD, commit körül: `c14bc28` "bugfix")
@@ -7,13 +7,13 @@
- RaveOS oldali keybind: `SUPER + TAB` → `raveswitch socat '{"OpenSwitch":{"reverse":false}}'`
## Tünet
-Friss telepítés után a `SUPER+TAB` billentyűkombináció nem csinál semmit — nem jelenik meg semmilyen ablakváltó felület.
+Friss telepítés után a `SUPER+TAB` billentyűkombináció nem csinál semmit - nem jelenik meg semmilyen ablakváltó felület.
## 1. hiba: `get_default_config_file()` rossz útvonalra esik vissza friss rendszeren
**Fájl:** `crates/core-lib/src/path.rs`, `get_default_config_file()` függvény
-Ha SEHOL nem található meglévő config fájl (sem a felhasználói `$XDG_CONFIG_HOME/raveswitch/config.{ron,toml,json,json5}`, sem a rendszerszintű `/etc/raveswitch/config.{toml,ron}` útvonalakon — ami egy teljesen friss telepítésen mindig igaz), a függvény a **legutoljára ellenőrzött rendszerszintű útvonalat** (`/etc/raveswitch/config.toml`) adja vissza "alapértelmezett" gyanánt, ahelyett hogy a felhasználói útvonalra (`~/.config/raveswitch/config.ron`) esne vissza egy ÚJ fájl létrehozásához.
+Ha SEHOL nem található meglévő config fájl (sem a felhasználói `$XDG_CONFIG_HOME/raveswitch/config.{ron,toml,json,json5}`, sem a rendszerszintű `/etc/raveswitch/config.{toml,ron}` útvonalakon - ami egy teljesen friss telepítésen mindig igaz), a függvény a **legutoljára ellenőrzött rendszerszintű útvonalat** (`/etc/raveswitch/config.toml`) adja vissza "alapértelmezett" gyanánt, ahelyett hogy a felhasználói útvonalra (`~/.config/raveswitch/config.ron`) esne vissza egy ÚJ fájl létrehozásához.
**Következmény:**
- `raveswitch config generate` (paraméter nélkül) megpróbálja létrehozni a configot `/etc/raveswitch/`-ban → `Permission denied` (a normál felhasználónak nincs írási joga oda), a parancs lefagy/hibázik.
@@ -24,7 +24,7 @@ Ha SEHOL nem található meglévő config fájl (sem a felhasználói `$XDG_CONF
INFO Trying to reload config after config change
WARN Failed to load config: Config file does not exist, create it using `raveswitch config generate`, retrying on change
```
- Ez a ciklus percenként több tízezerszer fut le, és leköti a daemon fő event loop-ját — a socket IPC handler ugyan külön szálon/taskon fut és nyugtázza a beérkező parancsokat ("OK"), de a switcher-ablakot megjelenítő logika sosem kap esélyt lefutni.
+ Ez a ciklus percenként több tízezerszer fut le, és leköti a daemon fő event loop-ját - a socket IPC handler ugyan külön szálon/taskon fut és nyugtázza a beérkező parancsokat ("OK"), de a switcher-ablakot megjelenítő logika sosem kap esélyt lefutni.
**Workaround, amivel reprodukáltam és igazoltam:** kézzel, explicit `-c` kapcsolóval generálva a configot (`raveswitch -c ~/.config/raveswitch/config.ron config generate`) a busy-loop megszűnik.
@@ -43,13 +43,13 @@ windows: (
),
```
-Vagyis **az ablakváltó (switch) funkció alapból nincs bekapcsolva/konfigurálva** — a felhasználónak kézzel, a GUI-s beállításokon keresztül kellene bekapcsolnia, mielőtt bármilyen `OpenSwitch` IPC parancs ténylegesen csinálna bármit. Egy friss RaveOS telepítésen, ahol a `SUPER+TAB` keybind eleve be van drótozva és "csak működnie kellene", ez azt jelenti hogy a funkció **sosincs bekapcsolva**, amíg a felhasználó nem nyitja meg kézzel a raveswitch beállításait.
+Vagyis **az ablakváltó (switch) funkció alapból nincs bekapcsolva/konfigurálva** - a felhasználónak kézzel, a GUI-s beállításokon keresztül kellene bekapcsolnia, mielőtt bármilyen `OpenSwitch` IPC parancs ténylegesen csinálna bármit. Egy friss RaveOS telepítésen, ahol a `SUPER+TAB` keybind eleve be van drótozva és "csak működnie kellene", ez azt jelenti hogy a funkció **sosincs bekapcsolva**, amíg a felhasználó nem nyitja meg kézzel a raveswitch beállításait.
**Workaround, amivel reprodukáltam és igazoltam:** kézzel kitöltve egy érvényes `switch: Some(modifier: "Alt", key: "Tab", filter_by: [current_monitor], switch_workspaces: false, exclude_workspaces: "", kill_key: 'q')` blokkot, a daemon újraindítása után a switcher-ablak ténylegesen létrejön a compositorban (helyes `raveswitch_switch` namespace, helyes pozíció/méret a `hyprctl layers` szerint).
## 3. (bizonytalan, esetleg csak a teszt-VM-re jellemző): a létrejött ablak `a: 0` (láthatatlan)
-A fenti két workaround után a switcher réteg TÉNYLEGESEN létrejön a Hyprlandben (`hyprctl layers` mutatja, helyes namespace/geometria), **de nulla átlátszósággal (`a: 0`)**, tehát vizuálisan semmi nem látszik belőle — screenshottal is megerősítve.
+A fenti két workaround után a switcher réteg TÉNYLEGESEN létrejön a Hyprlandben (`hyprctl layers` mutatja, helyes namespace/geometria), **de nulla átlátszósággal (`a: 0`)**, tehát vizuálisan semmi nem látszik belőle - screenshottal is megerősítve.
A raveswitch daemon logjában ezzel egyidőben GPU-inicializálási hibák látszanak:
```
@@ -59,13 +59,13 @@ Gdk-WARNING: Vulkan: ...failed to initialize winsys (VK_ERROR_INITIALIZATION_FAI
libEGL warning: egl: failed to create dri2 screen
```
-Ez a tesztkörnyezet (libvirt/QEMU VM, GPU-passthrough nélkül) hiánya lehet, NEM feltétlenül raveswitch-hiba — valódi hardveren vagy GPU-passthrough-os VM-en érdemes külön leellenőrizni, hogy ugyanez jelentkezik-e.
+Ez a tesztkörnyezet (libvirt/QEMU VM, GPU-passthrough nélkül) hiánya lehet, NEM feltétlenül raveswitch-hiba - valódi hardveren vagy GPU-passthrough-os VM-en érdemes külön leellenőrizni, hogy ugyanez jelentkezik-e.
## Javasolt javítás(ok)
1. `get_default_config_file()`: ha SEHOL nem található meglévő config, essen vissza a **felhasználói** útvonalra (`~/.config/raveswitch/config.ron`) egy új fájl generálásához, ne a rendszerszintű `/etc/raveswitch/`-ra.
-2. A daemon kezelje le kecsesen (ne végtelen hibaciklussal) azt az esetet, amikor a config fájl nem létezik és nem hozható létre — pl. hozza létre automatikusan alapértékekkel, vagy fusson tovább in-memory defaultokkal ahelyett hogy a fő loopot leköti.
-3. Fontolja meg, hogy a `config generate` / friss telepítés alapból bekapcsolt `switch` (és esetleg `switch_2`) profillal induljon, mivel a raveswitch fő funkciója pont ez — jelenleg "silently disabled by default" az élmény.
+2. A daemon kezelje le kecsesen (ne végtelen hibaciklussal) azt az esetet, amikor a config fájl nem létezik és nem hozható létre - pl. hozza létre automatikusan alapértékekkel, vagy fusson tovább in-memory defaultokkal ahelyett hogy a fő loopot leköti.
+3. Fontolja meg, hogy a `config generate` / friss telepítés alapból bekapcsolt `switch` (és esetleg `switch_2`) profillal induljon, mivel a raveswitch fő funkciója pont ez - jelenleg "silently disabled by default" az élmény.
*(RaveOS oldalról alternatív/kiegészítő megoldás: a `raveos-hyprland-theme` csomag telepíthetne egy kész, működő alapértelmezett `config.ron`-t az első bejelentkezéskor, hogy ne kelljen megvárni az upstream javítást.)*