From ecf73eef045ae8820ae5d15f0d0a3376f3f0524b Mon Sep 17 00:00:00 2001 From: bvolpato Date: Sat, 1 Aug 2026 13:31:53 -0400 Subject: [PATCH] fix(control): preserve plain symbol key levels --- rust/limux-host-linux/src/terminal.rs | 2 +- scripts/xvfb-smoke-test.sh | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/rust/limux-host-linux/src/terminal.rs b/rust/limux-host-linux/src/terminal.rs index b3d694c4..f26a7fa6 100644 --- a/rust/limux-host-linux/src/terminal.rs +++ b/rust/limux-host-linux/src/terminal.rs @@ -2125,7 +2125,7 @@ fn translated_keyval_for_keycode( keycode: u32, modifier: gtk::gdk::ModifierType, ) -> gtk::gdk::Key { - if keycode == 0 { + if keycode == 0 || !modifier.contains(gtk::gdk::ModifierType::SHIFT_MASK) { return keyval; } diff --git a/scripts/xvfb-smoke-test.sh b/scripts/xvfb-smoke-test.sh index a12649b5..7cb95f8c 100755 --- a/scripts/xvfb-smoke-test.sh +++ b/scripts/xvfb-smoke-test.sh @@ -274,6 +274,7 @@ grep -Fq "$SCREEN_PROOF" "$LOG_DIR/stage1-screen.txt" \ SHIFTED_KEY_PROOF="$DEMO_DIR/shifted-key-proof" "$LIMUX_CLI" send --workspace limux "printf '" >"$LOG_DIR/stage1-shifted-prefix.txt" +"$LIMUX_CLI" send-key --workspace limux at >"$LOG_DIR/stage1-plain-symbol.txt" "$LIMUX_CLI" send-key --workspace limux 'a' >"$LOG_DIR/stage1-shifted-letter.txt" "$LIMUX_CLI" send-key --workspace limux '1' >"$LOG_DIR/stage1-shifted-symbol.txt" "$LIMUX_CLI" send --workspace limux "' > '$SHIFTED_KEY_PROOF'" >"$LOG_DIR/stage1-shifted-suffix.txt" @@ -282,9 +283,9 @@ for _ in $(seq 1 50); do [ -f "$SHIFTED_KEY_PROOF" ] && break sleep 0.1 done -[ "$(cat "$SHIFTED_KEY_PROOF" 2>/dev/null)" = 'A!' ] \ - || { echo "FAIL: shifted send-key did not produce A!"; exit 1; } -echo "stage 1b: OK (surface realized, terminal I/O and shifted keys verified)" +[ "$(cat "$SHIFTED_KEY_PROOF" 2>/dev/null)" = '@A!' ] \ + || { echo "FAIL: plain and shifted send-key did not produce @A!"; exit 1; } +echo "stage 1b: OK (surface realized, terminal I/O and key levels verified)" # --- 5. Stage 2: live agent-team ------------------------------------------ echo