I wish I could try this, unfortunately for some reason when launching squeekboard after building it it crashes:My solution:I'm trying to find where the layering is done in squeekboard, could you point me out in the right direction ?I have gathered a few insights and am sharing them with you here.
labwc supports the following layer order:
background
bottom
regular application windows
always-on-top windows
top
fullscreen windows
overlay
lockscreen
By default, Squeekboard is hardcoded to appear on the top layer.
However, if you want the keyboard to appear above fullscreen apps or Chromium in kiosk mode, it really should be placed on the overlay layer instead.
You can find the source code here:https://gitlab.gnome.org/World/Phosh/squeekboard
Feel free to download it, apply the fix locally, compile it, and enjoy controlling fullscreen or kiosk-mode Chromium with the squeekboard.
There is likely a good reason why Squeekboard was designed to render on top by default and not always use overlay.
I've opened an issue on the Squeekboard project asking whether this behavior could be made configurable or improved.
The file to edit: eek/layersurface.c
Looking for function: void phosh_layer_surface_set_layer (PhoshLayerSurface *self, guint32 layer)
Add directly after the" priv = ... Block" following code:
/* Check env var override */
const char *env = g_getenv("SQUEEKBOARD_LAYER");
if (env && g_strcmp0(env, "overlay") == 0) {
layer = 3; // ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY
}
After compiling start with parameter SQUEEKBOARD_LAYER=overlay squeekboard
Code:
thread '<unnamed>' panicked at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nix-0.17.0/src/sys/socket/mod.rs:1205:33:null pointer dereference occurredstack backtrace:** (squeekboard:10973): WARNING **: 18:16:57.785: Could not register to session manager: Cannot invoke method; proxy is for the well-known name “org.gnome.SessionManager” without an owner, and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag 0: 0x5590db8c08 - std::backtrace_rs::backtrace::libunwind::trace::h80a834740e37061b at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 1: 0x5590db8c08 - std::backtrace_rs::backtrace::trace_unsynchronized::h8db4c318f99c6571 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 2: 0x5590db8c08 - std::sys::backtrace::_print_fmt::h7f7b542ba53a5bc6 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/sys/backtrace.rs:66:9 3: 0x5590db8c08 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h2747bfd80d11ff7b at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/sys/backtrace.rs:39:26 4: 0x5590dfff3c - core::fmt::rt::Argument::fmt::he9ff5cb74d153e09 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/fmt/rt.rs:173:76 5: 0x5590dfff3c - core::fmt::write::haee122d9e6b18100 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/fmt/mod.rs:1465:25 6: 0x5590dad2c8 - std::io::default_write_fmt::h1ba8124286647cf9 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/io/mod.rs:639:11 7: 0x5590dad2c8 - std::io::Write::write_fmt::he0158f6169f4cd69 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/io/mod.rs:1954:13 8: 0x5590db8abc - std::sys::backtrace::BacktraceLock::print::ha08130ed18fd0194 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/sys/backtrace.rs:42:9 9: 0x5590dbc4ec - std::panicking::default_hook::{{closure}}::hba6d19cf2c555d9c at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:300:27 10: 0x5590dbc348 - std::panicking::default_hook::hbff32ff95437400d at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:327:9 11: 0x5590dbcec8 - std::panicking::rust_panic_with_hook::h28899ec3e5e03105 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:833:13 12: 0x5590dbcc38 - std::panicking::begin_panic_handler::{{closure}}::h60f6be6227bda39d at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:699:13 13: 0x5590db90f8 - std::sys::backtrace::__rust_end_short_backtrace::hcc8118117670542a at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/sys/backtrace.rs:168:18 14: 0x5590dbc944 - __rustc[5224e6b81cd82a8f]::rust_begin_unwind at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:697:5 15: 0x559057bd6c - core::panicking::panic_nounwind_fmt::runtime::hf32fba20408fc31f at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/panicking.rs:117:22 16: 0x559057bd6c - core::panicking::panic_nounwind_fmt::he3c0f99f63f23666 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/intrinsics/mod.rs:2340:9 17: 0x559057bf48 - core::panicking::panic_null_pointer_dereference::h62085dea607a534d at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/panicking.rs:311:5 18: 0x55906bde90 - nix::sys::socket::sockaddr_storage_to_addr::hf7be2e4b962eaf7a at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nix-0.17.0/src/macros.rs:211:9 19: 0x55906bd1c0 - nix::sys::socket::recvmsg::{{closure}}::hf20286f31d91f872 at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nix-0.17.0/src/sys/socket/mod.rs:881:13 20: 0x55906c91b0 - core::result::Result<T,E>::map::h99b039d9bb5ff78e at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/result.rs:801:25 21: 0x55906bd040 - nix::sys::socket::recvmsg::h5112d626a0e33d9c at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nix-0.17.0/src/sys/socket/mod.rs:864:24 22: 0x5590684134 - zbus::utils::read_exact::hd4a49bbbe6a673e8 at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zbus-1.0.0/src/utils.rs:59:15 23: 0x55906741d8 - zbus::connection::Connection::receive_message::h0d687b171af0cb3c at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zbus-1.0.0/src/connection.rs:244:27 24: 0x5590675400 - zbus::connection::Connection::call_method::h438bf3fc74ee515f at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zbus-1.0.0/src/connection.rs:324:26 25: 0x5590681900 - zbus::proxy::Proxy::call_method::hf3071b2c059b936d at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zbus-1.0.0/src/proxy.rs:117:31 26: 0x5590683054 - zbus::proxy::Proxy::call::ha4e8853a2de7b7a4 at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zbus-1.0.0/src/proxy.rs:144:17 27: 0x5590690e2c - zbus::fdo::DBusProxy::hello::h86d3c99a7b9233ad at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zbus-1.0.0/src/fdo.rs:156:1 28: 0x5590672c78 - zbus::connection::Connection::new_unix_client::hda30af48f83b9b51 at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zbus-1.0.0/src/connection.rs:109:22 29: 0x5590673030 - zbus::connection::Connection::new_session::h90ddb0543f72a72e at /home/azsde/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zbus-1.0.0/src/connection.rs:119:9 30: 0x55905a8c7c - rs::actors::external::debug::start::he2296f5f9fc6d3cc at /home/azsde/squeekboard/src/actors/external/debug.rs:42:22 31: 0x5590e4f4e0 - rs::actors::external::debug::init::{{closure}}::hf062fe88aefd2276 at /home/azsde/squeekboard/src/actors/external/debug.rs:64:9 32: 0x5590e39228 - std::sys::backtrace::__rust_begin_short_backtrace::h569b5aff6417d2b6 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/sys/backtrace.rs:152:18 33: 0x5590e188dc - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h8cc042f8b8c6f5b6 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/thread/mod.rs:559:17 34: 0x5590e3de64 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hbccc7994f468d8f4 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/panic/unwind_safe.rs:272:9 35: 0x5590e12420 - std::panicking::catch_unwind::do_call::h4a0a271b06f9f078 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:589:40 36: 0x5590e18d84 - __rust_try 37: 0x5590e182ec - std::panicking::catch_unwind::h302ca98391df87f6 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:552:19 38: 0x5590e182ec - std::panic::catch_unwind::h62347fa176221fd4 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panic.rs:359:14 39: 0x5590e182ec - std::thread::Builder::spawn_unchecked_::{{closure}}::hc0968cea35ad25fc at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/thread/mod.rs:557:30 40: 0x559058ee84 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h18b4fd5ab643a02f at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/ops/function.rs:250:5 41: 0x5590dc0edc - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha6950db5b1adcc96 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/alloc/src/boxed.rs:1966:9 42: 0x5590dc0edc - std::sys::pal::unix::thread::Thread::new::thread_start::he65f0ae0958ca168 at /rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/sys/pal/unix/thread.rs:107:17 43: 0x7fa5572030 - start_thread at ./nptl/pthread_create.c:442:8 44: 0x7fa55dbf5c - thread_start at ./misc/../sysdeps/unix/sysv/linux/aarch64/clone.S:79:0 45: 0x0 - <unknown>thread caused non-unwinding panic. aborting.Statistics: Posted by azsde — Thu Aug 21, 2025 4:24 pm