- Detect multiarch via dpkg-architecture before a compiler exists
- Add dpkg-dev, gettext, libgdk-pixbuf-2.0-dev to apt packages
- Skip a step when the installed version is >= the pin (>= semantics)
- Use the real libxkbcommon-xkbcommon-1.8.1 extract directory
- Build wlroots with -Dbackends= -Dsession=disabled so no libxcb-*-dev is needed
Detect the multiarch libdir via cc instead of hardcoding x86_64-linux-gnu
so run.sh and build-casilda.sh work on aarch64. build-casilda.sh now
exports PKG_CONFIG_PATH/LD_LIBRARY_PATH/GI_TYPELIB_PATH to the ~/.local
prefix so meson finds the source-built gtk4/wlroots. Add bootstrap-deps.sh
to build those deps (xkbcommon 1.8.1, wlroots 0.20.1, gtk4 4.22.4) from
source into ~/.local; idempotent and skips already-installed versions.
tabbed-run now requests a new tab, blocks for a reply containing the tab id
and the compositor's Wayland socket path, then execs the command with
WAYLAND_DISPLAY pointing at the new tab. The command's stdout/stderr and
exit status stay in the invoking tab. Each compositor gets a stable socket
path under XDG_RUNTIME_DIR; startup tabs still use spawn_async against that
path.
Each tab carries a unique TABBED_CASILDA_TAB_ID; tabbed-run echoes it to
the host so the new page is inserted right of the creating tab. New tabs
are selected and focused, and the initial tab is focused on startup.
Host listens on a unix socket; tabbed-run sends a command to open it as
a new maximized casilda tab. Spawned children inherit the full
environment plus TABBED_CASILDA_CTRL so tabbed-run works from any tab.
Install Casilda 1.5.0 (main) from source into ~/.local and point run.sh
at the installed typelib/library instead of the vendored copy. Drop the
compositor-level maximized property, which was removed upstream, and pin
the spike to Python <3.14 where PyGObject wheels are available.
Set compositor.props.maximized=True in each tab so the spawned client
fills the tab and tracks window resizes. Add run.sh wrapper pointing
GI_TYPELIB_PATH/LD_LIBRARY_PATH at the vendored build, and a local
build.sh (no sudo, installs into vendor/casilda/prefix).
Add a readwrite 'maximized' GObject property to CasildaCompositor plus a
casilda_compositor_set_maximized() API. When enabled, all toplevels
(current and future) are forced to be maximized and fill the compositor
widget; size_allocate keeps them pinned on widget resize.