Commit graph

13 commits

Author SHA1 Message Date
bd31b2a157 Fix bootstrap-deps.sh: correct xkbcommon dir, dpkg multiarch, trim wlroots backends
- 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
2026-08-13 22:52:53 +10:00
280c1d069b Make scripts arch-aware; add bootstrap-deps.sh
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.
2026-08-13 21:20:20 +10:00
7a35873e60 Run tabbed-run commands via exec so they block like a normal foreground command
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.
2026-08-13 12:36:19 +10:00
b3daee7b3f Fix input for tabs created after startup; share socket protocol module 2026-08-13 11:05:17 +10:00
258bb9eea3 Insert new tabs next to their creator and focus them
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.
2026-08-13 09:25:20 +10:00
134de7bb4d Add tabbed-run control channel to open apps in new tabs
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.
2026-08-13 09:16:03 +10:00
88778ecbb4 Rename spike to TabbedCasilda, drop timeout and prints, resize window 2026-08-13 08:27:25 +10:00
fc35f4f8fa Use maximized property again and add casilda fork build script 2026-08-13 08:08:42 +10:00
8f698a1427 Stop vendoring Casilda; use system install from upstream main
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.
2026-08-13 07:49:55 +10:00
ac0f16d0de Maximize embedded terminals via casilda maximized property
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).
2026-08-12 18:13:20 +10:00
91b63acc06 Force-maximize toplevels via maximized property
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.
2026-08-12 13:39:06 +10:00
124e1b5f04 Vendor Casilda 1.2.1 (upstream, unmodified) 2026-08-12 13:38:24 +10:00
ab2ff17fbb Add GTK4 notebook spike with embedded Wayland terminals 2026-08-12 12:57:22 +10:00