# cosmic-workspaces — la vista general de espacios de trabajo (el «overview» de COSMIC). Cliente de # iced/libcosmic; el repo se llama `cosmic-workspaces-epoch` pero el binario y el AppID no llevan el # sufijo, y `cosmic-session` lo busca como `cosmic-workspaces`. Los tres nombres importan y no # coinciden: el del repo es el de la URL, el del binario el del PATH, y el AppID el de cosmic-config. name = "cosmic-workspaces-epoch" version = "1.5.0" license = "GPL-3.0" [source] tarball = "https://github.com/pop-os/cosmic-workspaces-epoch/archive/epoch-1.5.0/cosmic-workspaces-epoch-epoch-1.5.0.tar.gz" sha256 = "d7b54ce8dd229c6b76c2132b38d0814df656439bd4c014d04bd052143dcf4249" [build] compiler = "zig-cc" target = "x86_64-linux-musl" # ── DINÁMICO, Y NO ES UNA PREFERENCIA ────────────────────────────────────────────────────────── # `wayland-client` entra con la feature `dlopen`: no ENLAZA libwayland-client, la carga en runtime. # Un binario musl ESTÁTICO no tiene dlopen funcional, así que el cliente arranca y muere con # «The wayland library could not be loaded» — con el .so presente en el rootfs, que es lo que hace # el diagnóstico confuso: no falta la librería, falta poder abrirla. link = "dynamic" flags = ["--bin", "cosmic-workspaces"] [build.phases] install = ''' mkdir -p /out/usr/bin /out/usr/share/applications /out/usr/share/icons/hicolor/scalable/apps cp target/release/cosmic-workspaces /out/usr/bin/cosmic-workspaces chmod 755 /out/usr/bin/cosmic-workspaces cp data/com.system76.CosmicWorkspaces.desktop /out/usr/share/applications/ cp data/com.system76.CosmicWorkspaces.svg /out/usr/share/icons/hicolor/scalable/apps/ ''' [deps] # libudev-zero: lo pide `libudev-sys`, que llega por la cadena de libcosmic (enumeración de # monitores y de dispositivos de entrada). Es el tercer miembro fijo del juego de deps de todo # cliente de la suite, junto con libxkbcommon y pkgconf. # La línea de enlace del primer intento pedía, en este orden: `-ludev -linput -lxkbcommon`. Los # tres llegan por la cadena de libcosmic —enumeración de monitores y de dispositivos de entrada—, # no por nada que el cliente haga a la vista. Es el juego FIJO de todo cliente de la suite; se # descubrió uno por build hasta leerlo de una sola vez en el comando del linker. # # `mesa` es la QUINTA, y sólo la necesita ESTE cliente: la vista de espacios de trabajo muestra # miniaturas vivas de las ventanas, que el compositor le pasa como DMA-BUF por # `zcosmic-toplevel-info`. Para convertir ese buffer en algo dibujable importa el fd con GBM ⇒ # `-lgbm`. O sea que la dep no viene del toolkit sino de lo que el programa MUESTRA — el único de # la suite que toca el pipeline gráfico además del compositor. build = ["libxkbcommon", "pkgconf", "libudev-zero", "libinput", "mesa"]