Repository navigation
fix(linux): hacer que el widget sea visible en todos los escritorios virtuales (#227) - #232
Merged
egdev6 merged 4 commits intoNov 1, 2026
Conversation
egdev6
approved these changes
Nov 1, 2026
Owner
|
Gracias por el trabajo, @Rafaeldelinares. El cambio es correcto y mínimo: amplía el gate a Linux para la tira, el detalle y el overlay, y actualiza el comentario y el mensaje de error como se acordó en #227. La comprobación con La CI de Windows fallaba porque el inventario i18n se regeneró antes de mergear Vamos a integrarla sin esperar el resto de la validación manual. Como seguimiento, cuando puedas, comparte en #227:
¡Gracias! |
This was referenced Nov 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem to solve
Resuelve #227.
En #112 se incorporó
set_visible_on_all_workspaces(true)ensrc-tauri/src/lib.rs:1083con un gate#[cfg(target_os = "macos")]bajo la premisa de que en Linux bastaba conalways_on_top(«Windows/Linux have no Spaces and always-on-top already covers it»).Sin embargo, en Linux (X11 / XWayland)
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).En
tao 0.37.1,set_visible_on_all_workspaces(true)ya está implementado para Linux (tao/src/platform_impl/linux/window.rs:762yevent_loop.rs:424), despachandowindow.stick()(gtk_window_stick()). Tal como observó @egdev6, en GTK la llamada es segura antes de que la ventana tengaGdkWindow, por lo que se aplica limpiamente durante la fase desetupde Tauri sin provocar panics.Proposed changes
src-tauri/src/lib.rs:#[cfg(target_os = "macos")]por#[cfg(any(target_os = "macos", target_os = "linux"))]para las tres ventanas del ciclo inicial (WIDGET,DETAIL,OVERLAY).lib.rs:1036-1041) para reflejar que tanto macOS (NSWindow.canJoinAllSpaces) como Linux (_NET_WM_STATE_STICKYvíagtk_window_stick) requieren este marcado para acompañar entre escritorios/Spaces.Validation evidence
1. Comprobación de átomos EWMH en Linux X11 (
xprop)Al aplicar
stick()antes deshow(), el gestor de ventanas (KWin / XWayland) recibe la petición y fija el estado de inmediato:_NET_WM_STATE_STICKYqueda activo en_NET_WM_STATE.2. Suites de pruebas
cargo test --tests: 402 passed; 0 failed (0 warnings de compilación).npm test: 847 tests en 67 ficheros en verde (Vitest) + 298 tests en verde (Node test runner) = 0 fallos.node scripts/i18n-inventory.mjs --check: limpio, sin desajustes.