Skip to content

Commit 0179318

Browse files
authored
Rewrite kime-wayland, update dependencies, and fix indicator issues (#743)
* fix kwin latest version crash 62e56540 input method commit fix * fix(wayland): handle KeyState::Repeated for KDE 6.5.5 compatibility KDE Plasma 6.5.5 upgraded wl_keyboard grab from version 1 to 10, which introduces KeyState::Repeated (value 2). Previously, kime-wayland only checked for KeyState::Pressed, causing Repeated events to be incorrectly treated as Released, leading to crashes. Changes: - Handle KeyState::Repeated same as Pressed in input_method_v1/v2 - Only clear repeat timer and state on explicit KeyState::Released - Update wayland-client/protocols 0.29 → 0.29.5 - Update xkbcommon 0.7.0 → 0.9.0 Fixes intermittent crashes on KDE Plasma 6.5.5 * fix(indicator): Use tokio async I/O for KDE tray icon update - Replace std::os::unix::net with tokio::net for async Unix socket I/O - Convert try_terminate_previous_server to async function - Use tokio::time::timeout for read/write timeouts - Add assume_sni_available(true) to handle DE initialization timing This fixes the issue where the tray icon was blank and not updating on KDE after ksni 0.2 -> 0.3.3 upgrade. The blocking I/O was preventing the async tray update signals from being processed properly. * docs CHANGELOG update * update dependencies - xkbcommon: 0.7.0 → 0.9.0 - wayland-client: 0.29 → 0.29.5 - wayland-protocols: 0.29 → 0.29.5 - itertools: 0.13 → 0.14 - imageproc: 0.25 → 0.26 (with text feature) - strum: 0.26 → 0.27 - eframe: 0.31 → 0.33 - egui: 0.31 → 0.33 - bindgen: 0.69.4 → 0.72.1 - cbindgen: 0.26.0 → 0.29.2 * docs CHANGELOG update 2 * update nix dependencies * tmp_wayland: Fix potential overflow in key repeat timing * rewrite for wayland-rs 0.31 API with Dispatch trait pattern BREAKING CHANGE: Complete rewrite of kime-wayland for wayland-rs 0.31+ Major changes: - Migrate from Filter-based to Dispatch trait pattern (wayland-client 0.31) - Update wayland-protocols to 0.32 with `unstable` feature for v1 protocol - Add wayland-protocols-misc 0.3 for zwp_input_method_v2 and zwp_virtual_keyboard_v1 - Remove zwp-virtual-keyboard crate (now included in wayland-protocols-misc) - Unify v1 and v2 input method handling in single state machine Technical fixes: - Add event_created_child! macro for ZwpInputMethodV1 opcode 0 (Activate event) - Fix fd ownership in WlKeyboard::Keymap (wayland-client 0.31 provides OwnedFd directly) - Handle KeyState::Repeated (wl_keyboard version 10+) for KDE Plasma 6.5.5 - Use Connection-based API instead of Display Other dependency updates: - xdg 2.5 -> 3.0 (API change: remove Result from BaseDirectories methods) - quick-xml 0.27 -> 0.39 (API change: decode_and_unescape_value takes decoder()) * docs CHANGELOG update 3 * update git ignore and rustfmt * Delete kime-crash.log * Update CHANGELOG to modify breaking change label Removed the BREAKING label from the kime-wayland rewrite entry.
1 parent bcdfbd8 commit 0179318

File tree

26 files changed

+1476
-1668
lines changed

26 files changed

+1476
-1668
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ kime_engine.h
1212
kime_engine.hpp
1313
massif.out*
1414
flamegraph.svg
15+
kime-crash.log
1516

1617
result
1718
.DS_Store

0 commit comments

Comments
 (0)