git.lucas.co / cce-terminal
terminal emulator
git clone https://git.lucas.co/cce-terminal.git

commit9481cf719d308fccf43186c0e59ef2e60e506d5e
parent055bc71a09
authorLucas Galante <[email protected]>
date2026-08-13 15:44
Install a logger so fatal event-loop errors are visible

cce-ui reports its fatal paths — a Wayland dispatch Io error or protocol
error ending the event loop (window_runner.rs:4338/4360) — through the
`log` facade, which is a silent sink unless the app installs a logger.
cce-terminal never did, so when its compositor connection died on
2026-08-13 the app's own explanation was discarded and only libwayland's
C-level stderr survived to say why. Mirrors cce-status-interface's
env_logger setup (default filter info), plus start/exit markers.

Co-Authored-By: Claude Fable 5 <[email protected]>

 Cargo.toml  | 2 ++
 src/main.rs | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/Cargo.toml b/Cargo.toml
index 0d1711a..795b271 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,3 +10,5 @@ calloop = "0.13.0"
 libc = "0.2"
 alacritty_terminal = "0.26.0"
 glyphon = "0.8"
+log = "0.4"
+env_logger = "0.11"
diff --git a/src/main.rs b/src/main.rs
index 5c8bebc..bff01d9 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1154,7 +1154,14 @@ impl Application for TerminalApp {
 }
 
 fn main() {
+    // cce-ui logs its own fatal paths (Wayland dispatch / protocol errors that
+    // end the event loop) through `log`, which is a no-op sink unless the app
+    // installs a logger — without this, an app that dies with its compositor
+    // connection leaves no explanation behind.
+    env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();
+    log::info!("cce-terminal starting (pid {})", std::process::id());
     cce_ui::engine::run::<TerminalApp>();
+    log::info!("cce-terminal event loop returned; exiting");
 }
 
 #[cfg(test)]