🚪 cosmic: las cinco interfaces del portal, sondeadas — y Access no es un hueco
Del lado CLIENTE (org.freedesktop.portal.Desktop): Screenshot 2, FileChooser 3, ScreenCast 5, Settings 2. `org.freedesktop.portal.Access` NO EXISTE, y está bien: Access vive sólo como org.freedesktop.impl.portal.Access, del lado del BACKEND — es como el frontend le pide al escritorio que muestre el diálogo de permiso. Mi primer sondeo la pidió al frontend y el «No such interface» era un error DEL SONDEO, no del portal. Del lado BACKEND (impl.portal.desktop.cosmic): Screenshot 2, ScreenCast 4, Settings 2; Access y FileChooser devuelven UnknownProperty 'version'. Ese error PRUEBA que la interfaz está: si faltara, D-Bus contestaría «No such interface». UnknownProperty = la encontró y esa implementación no publica esa propiedad. Y el ListNames muestra impl.portal.desktop.cosmic ACTIVADO junto a impl.portal.PermissionStore: el frontend levantó al backend por D-Bus activation, que es el eslabón que habilita el .service con @libexecdir@ sustituido. ALCANCE HONESTO: esto prueba DISPONIBILIDAD y ENRUTADO, no los flujos completos. La única ejercida de punta a punta —con fichero en disco— sigue siendo Screenshot. Próximo: ejercer FileChooser desde una app que use el portal (cosmic-store se compiló con la feature xdg-portal; cosmic-edit NO la usa, va con el selector propio de cosmic-files como crate) y ScreenCast, que es la que ejercita pipewire de verdad. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 63 KiB |
@@ -869,12 +869,44 @@ fallar el pull, no destruyó el worker.)
|
||||
subproyecto de internet y, sin red, el error no dice «te falta glib» sino `Unhandled python
|
||||
exception / This is a Meson bug`. **Deuda anotada.**
|
||||
|
||||
### Las cinco interfaces, sondeadas por D-Bus
|
||||
|
||||
`docs/evidencia/cosmic-portal-interfaces-2026-08-05.png`. Del lado del CLIENTE, contra
|
||||
`org.freedesktop.portal.Desktop`:
|
||||
|
||||
| interfaz | versión |
|
||||
|---|---|
|
||||
| `Screenshot` | 2 |
|
||||
| `FileChooser` | 3 |
|
||||
| `ScreenCast` | 5 |
|
||||
| `Settings` | 2 |
|
||||
| `Access` | **no existe, y está bien** |
|
||||
|
||||
**`org.freedesktop.portal.Access` no es una interfaz de cliente**: `Access` vive sólo como
|
||||
`org.freedesktop.impl.portal.Access`, o sea del lado del BACKEND — es como el frontend le pide al
|
||||
escritorio que muestre el diálogo de permiso. Pedirla al frontend devuelve `No such interface`, que
|
||||
es el comportamiento correcto y no un hueco. (El sondeo inicial la pidió mal; el error era del
|
||||
sondeo, no del portal.)
|
||||
|
||||
Del lado del BACKEND, contra `org.freedesktop.impl.portal.desktop.cosmic`: `Screenshot` 2,
|
||||
`ScreenCast` 4, `Settings` 2, y `Access` + `FileChooser` responden
|
||||
`UnknownProperty 'version'`. **Ese error prueba que la interfaz ESTÁ**: si faltara, D-Bus contestaría
|
||||
`No such interface`; `UnknownProperty` significa que la encontró y que esa implementación no publica
|
||||
la propiedad `version`.
|
||||
|
||||
Y el `ListNames` del bus muestra `org.freedesktop.impl.portal.desktop.cosmic` **activado** junto a
|
||||
`org.freedesktop.impl.portal.PermissionStore`: el frontend levantó al backend por D-Bus activation,
|
||||
que es justamente el eslabón que el `.service` con `@libexecdir@` sustituido hace posible.
|
||||
|
||||
⚠ **Alcance honesto de esta medición**: prueba DISPONIBILIDAD y ENRUTADO, no los flujos completos.
|
||||
La única interfaz ejercida de punta a punta —con fichero en disco— es `Screenshot`.
|
||||
|
||||
## Lo que falta, en orden
|
||||
|
||||
1. **Probar las otras cuatro interfaces del portal.** La captura está verificada con fichero; faltan
|
||||
`FileChooser` (abrir un fichero desde una aplicación), `ScreenCast` (compartir pantalla, que es la
|
||||
que ejercita pipewire de verdad), `Settings` y `Access`. El andamiaje ya está: se manejan desde
|
||||
`cosmic-term` por QMP igual que la captura.
|
||||
1. **Ejercer los flujos, no sólo sondear**: `FileChooser` desde una aplicación que use el portal
|
||||
(`cosmic-store` se compiló con la feature `xdg-portal`; `cosmic-edit` NO la usa, va con el
|
||||
selector propio de `cosmic-files` como crate) y `ScreenCast`, que es la que ejercita pipewire de
|
||||
verdad.
|
||||
2. **Decidir `gvfs`** (ver la corrección de arriba: las piezas ya están selladas, lo que falta es la
|
||||
decisión sobre la segunda glib). Destrabaría los montajes remotos de cosmic-files y su applet.
|
||||
3. **Enchufar la tienda a `.swm`**: servir `org.freedesktop.PackageKit` y encender la feature
|
||||
|
||||
Reference in New Issue
Block a user