fix(linux): hacer que el widget sea visible en todos los escritorios virtuales (paridad con macOS)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 35/100
Direzione di ricerca
The relevant gate is the #[cfg(target_os = "macos")] block around set_visible_on_all_workspaces(true) in src-tauri/src/lib.rs near line 1083. Read how the widget, detail and overlay windows are created, and check the tao Linux stick() path the issue cites, since it is a dependency and not in this repo. Before editing, get the maintainer's answer on whether this should be on by default or behind a setting, because the thread is still open. Done means the widget stays visible after switching workspaces on X11 or XWayland, with the failure logged and no change on macOS.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Contexto y motivación
Quorb está concebido como una tira de estado y control continua. En Linux, al cambiar de escritorio virtual (workspaces en KDE Plasma, GNOME, etc.), la tira desaparece porque el gestor de ventanas la confina al escritorio donde se inició el proceso.
En #112 se incorporó set_visible_on_all_workspaces(true) en src-tauri/src/lib.rs:1083 con un gate #[cfg(target_os = "macos")] bajo la asunción de que en Linux bastaba con always_on_top («Windows/Linux have no Spaces and always-on-top already covers it»).
Sin embargo, en Linux (X11 / KDE / GNOME) always_on_top (_NET_WM_STATE_ABOVE) solo mantiene la ventana flotando por encima dentro del mismo escritorio virtual, pero no acompaña al usuario al cambiar de workspace. Para acompañar entre escritorios se requiere declarar la ventana como sticky (_NET_WM_STATE_STICKY / _NET_WM_DESKTOP = 0xFFFFFFFF).
Diagnóstico técnico
En el motor de ventanas de Quorb (tao 0.37.1), set_visible_on_all_workspaces(true) ya está plenamente implementado para Linux (tao/src/platform_impl/linux/window.rs:762 y event_loop.rs:424):
WindowRequest::SetVisibleOnAllWorkspaces(visible) => {
if visible {
window.stick();
} else {
window.unstick();
}
}
La llamada a window.stick() de GTK envía al gestor de ventanas los mensajes EWMH oficiales para que la ventana se proyecte en todos los escritorios.
Alcance propuesto (Centrado en Linux)
Nos centramos exclusivamente en implementar y verificar esta paridad en Linux:
- Linux (X11 / XWayland):
- Ampliar el gate en
src-tauri/src/lib.rs:#[cfg(any(target_os = "macos", target_os = "linux"))] for label in [WIDGET, DETAIL, OVERLAY] { if let Some(w) = app.get_webview_window(label) { if let Err(e) = w.set_visible_on_all_workspaces(true) { eprintln!("No pude marcar «{label}» visible en todos los escritorios: {e}"); } } } - Otorga paridad inmediata con macOS sin dependencias nuevas ni cambios en la capa de frontend.
- Ampliar el gate en
- Linux (Wayland nativo):
xdg-shellpor diseño no ofrece a clientes regulares una petición para declararse sticky sin protocolos privilegiados de compositor (wlr-layer-shell). Con el camino X11/XWayland (GDK_BACKEND=x11), queda cubierto en el entorno operativo de Linux.
Pregunta para el mantenedor / Decisión de producto
¿Preferís que este comportamiento sea predeterminado e inherente al widget (igual que en macOS desde #112), o considerás necesario que esté sujeto a un interruptor en Ajustes (ej. Ajustes > Comportamiento > Mostrar en todos los escritorios virtuales)?
Abrimos el hilo para acordar la dirección antes de preparar la PR.
- Lingua principale
- TypeScript
- Stelle
- 10
- Fork
- 2
- Merge medio
- 5h 55m
- PR unite (30g)
- 123
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di egdev6/quorb
-
Antigravity (agy CLI): not working on macOS — wrong log path and process detectionForse già presa @EzequielKoulaksezian l’ha presa 3 giorni fa. Apertastatus:approved type:bug
egdev6/quorb#237 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
feat(linux): elegir el idioma desde el primer contacto con QuorbForse già presa @SrStamm l’ha presa 1 giorno fa. Apertaodd status:approved type:feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 18/100
egdev6/quorb#235 · 3 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
odd type:feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
-
odd type:feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 50/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di egdev6/quorb
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
shoelace-style/webawesome#2979 ·
I maintainer di solito rispondono entro 1 giorno
-
Chip source filter and denial markers miss Storage rows when a Storage activity source is pickedApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
omdsh-dev/DSH-better-sidebar#1141 ·
I maintainer di solito rispondono entro 2 giorni