deskflow / deskflow/deskflow

key combinations maybe intercepted with IME enabled

Open
#8,977 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
C++
Stars
28.8k
Forks
4.9k
Avg merge
2d 17h
Merged PRs (30d)
21

Description

### Sanity checks

- [x] I have done the sanity checks, and my issue persists
- [x] These sanity checks are not relevant to the bug

### Deskflow version info

- Deskflow: 1.24.0

### Build type

Community package (apt, dnf, brew, etc.)

### Operating systems (OS)

- [x] Windows
- [x] macOS
- [ ] Linux (X11)
- [ ] Linux (Wayland)
- [ ] BSD-derived
- [ ] Other (please specify)

### Deskflow configuration

- Server: MacBook macOS 15.6.1
- Client: Windows 11
- Windows has a monitor, macOS has two monitors
- layout (L-R): Windwos Monitor | macbook | macbook Monitor

### What steps will reproduce the problem?

1. Enable an IME (e.g., Chinese/Japanese/Korean) on the server (macOS).
2. Connect to the client (Windows 11) via Deskflow.
3. Attempt to input a key combination (e.g., `Shift` + `-`) on the client.
4. Observe whether the expected character (e.g., `_`) is output correctly.

### Log output

Log Output

```shell
[2025-09-25T14:58:02] DEBUG: openssl cipher: TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
[2025-09-25T14:58:02] INFO: network encryption protocol: TLSv1.3
[2025-09-25T14:58:02] NOTE: accepted client connection
[2025-09-25T14:58:02] DEBUG: saying hello as Synergy, protocol v1.8
[2025-09-25T14:58:03] INFO: switch from "macbook" to "win-PC" at 3839,780
[2025-09-25T14:58:03] INFO: leaving screen
[2025-09-25T14:58:03] DEBUG1: mask=0000 outMask=0000
[2025-09-25T14:58:03] WARNING: can't get the active group, use the first group instead
[2025-09-25T14:58:03] DEBUG1: modifiers on update: 0x0000
[2025-09-25T14:58:03] DEBUG: hiding cursorå
[2025-09-25T14:58:03] WARNING: cursor may not be visible
[2025-09-25T14:58:03] DEBUG: opening clipboard
[2025-09-25T14:58:03] DEBUG: closing clipboard
[2025-09-25T14:58:03] INFO: screen "macbook" updated clipboard 0
[2025-09-25T14:58:03] DEBUG: opening clipboard
[2025-09-25T14:58:03] DEBUG: closing clipboard
[2025-09-25T14:58:03] INFO: screen "macbook" updated clipboard 1
[2025-09-25T14:58:03] DEBUG1: mask=0000 outMask=0000
[2025-09-25T14:58:03] DEBUG1: send enter to "win-PC", 3839,780 1 0000
[2025-09-25T14:58:03] DEBUG: sending clipboard 0 to "win-PC
[2025-09-25T14:58:03] DEBUG: sent clipboard size=2454136
[2025-09-25T14:58:03] DEBUG: sending clipboard 1 to "win-PC"
[2025-09-25T14:58:03] DEBUG: sent clipboard size=2454136
[2025-09-25T14:58:03] DEBUG1: sending clipboard chunk
[2025-09-25T14:58:04] DEBUG1: event: button press button=1
[2025-09-25T14:58:04] DEBUG1: onMouseDown id=1
[2025-09-25T14:58:04] DEBUG1: send mouse down to "win-PC" id=1
[2025-09-25T14:58:04] DEBUG1: event: button release button=1
[2025-09-25T14:58:04] DEBUG1: onMouseUp id=1
[2025-09-25T14:58:04] DEBUG1: send mouse up to "win-PC" id=1
[2025-09-25T14:58:06] DEBUG1: event: Key event kind: 10, keycode=51
[2025-09-25T14:58:06] DEBUG1: new mask: 0x0000
[2025-09-25T14:58:06] DEBUG1: onKeyDown id=61192 mask=0x0000 button=0x0034 lang=zh-Hans
[2025-09-25T14:58:06] DEBUG1: send key down to "win-PC" id=61192, mask=0x0000, button=0x0034, language=zh-Hans
[2025-09-25T14:58:06] DEBUG1: event: Key event kind: 11, keycode=51
[2025-09-25T14:58:06] DEBUG1: new mask: 0x0000
[2025-09-25T14:58:06] DEBUG1: onKeyUp id=0 mask=0x0000 button=0x0034
[2025-09-25T14:58:06] DEBUG1: send key up to "win-PC" id=0, mask=0x0000, button=0x0034
[2025-09-25T14:58:06] DEBUG1: event: Key event kind: 10, keycode=0
[2025-09-25T14:58:06] DEBUG1: new mask: 0x0000
[2025-09-25T14:58:06] DEBUG1: onKeyDown id=97 mask=0x0000 button=0x0001 lang=zh-Hans
[2025-09-25T14:58:06] DEBUG1: send key down to "win-PC" id=97, mask=0x0000, button=0x0001, language=zh-Hans
[2025-09-25T14:58:06] DEBUG1: event: Key event kind: 11, keycode=0
[2025-09-25T14:58:06] DEBUG1: new mask: 0x0000
[2025-09-25T14:58:06] DEBUG1: onKeyUp id=0 mask=0x0000 button=0x0001
[2025-09-25T14:58:06] DEBUG1: send key up to "win-PC" id=0, mask=0x0000, button=0x0001
[2025-09-25T14:58:07] DEBUG1: event: Key event kind: 12, keycode=56
[2025-09-25T14:58:07] DEBUG1: mask=20102 outMask=0001
[2025-09-25T14:58:07] DEBUG1: new mask: 0x0001
[2025-09-25T14:58:07] DEBUG1: onKeyDown id=61409 mask=0x0001 button=0x0039 lang=zh-Hans
[2025-09-25T14:58:07] DEBUG1: send key down to "win-PC" id=61409, mask=0x0001, button=0x0039, language=zh-Hans
[2025-09-25T14:58:07] DEBUG1: event: Key event kind: 10, keycode=27
[2025-09-25T14:58:07] DEBUG1: new mask: 0x0001
[2025-09-25T14:58:07] DEBUG1: onKeyDown id=8212 mask=0x0001 button=0x001c lang=zh-Hans
[2025-09-25T14:58:07] DEBUG1: send key down to "win-PC" id=8212, mask=0x0001, button=0x001c, language=zh-Hans
[2025-09-25T14:58:07] DEBUG1: onKeyDown id=8212 mask=0x0001 button=0x001c lang=zh-Hans
[2025-09-25T14:58:07] DEBUG1: send key down to "win-PC" id=8212, mask=0x0001, button=0x001c, language=zh-Hans
[2025-09-25T14:58:07] DEBUG1: event: Key event kind: 11, keycode=27
[2025-09-25T14:58:07] DEBUG1: new mask: 0x0001
[2025-09-25T14:58:07] DEBUG1: onKeyUp id=0 mask=0x0001 button=0x001c
[2025-09-25T14:58:07] DEBUG1: send key up to "win-PC" id=0, mask=0x0001, button=0x001c
[2025-09-25T14:58:07] DEBUG1: event: Key event kind: 12, keycode=56
[2025-09-25T14:58:07] DEBUG1: mask=0100 outMask=0000
[2025-09-25T14:58:07] DEBUG1: new mask: 0x0000
[2025-09-25T14:58:07] DEBUG1: onKeyUp id=61409 mask=0x0000 button=0x0039
[2025-09-25T14:58:07] DEBUG1: send key up to "win-PC" id=61409, mask=0x0000, button=0x0039
[2025-09-25T14:58:07] DEBUG1: event: Key event kind: 10, keycode=36
[2025-09-25T14:58:07] DEBUG1: new mask: 0x0000
[2025-09-25T14:58:07] DEBUG1: onKeyDown id=61197 mask=0x0000 button=0x0025 lang=zh-Hans
[2025-09-25T14:58:07] DEBUG1: send key down to "win-PC" id=61197, mask=0x0000, button=0x0025, language=zh-Hans
[2025-09-25T14:58:07] DEBUG1: event: Key event kind: 11, keycode=36
[2025-09-25T14:58:07] DEBUG1: new mask: 0x0000
[2025-09-25T14:58:07] DEBUG1: onKeyUp id=0 mask=0x0000 button=0x0025
[2025-09-25T14:58:07] DEBUG1: send key up to "win-PC" id=0, mask=0x0000, button=0x0025
[2025-09-25T14:58:07] DEBUG1: event: Key event kind: 12, keycode=56
[2025-09-25T14:58:07] DEBUG1: mask=20102 outMask=0001
[2025-09-25T14:58:07] DEBUG1: new mask: 0x0001
[2025-09-25T14:58:07] DEBUG1: onKeyDown id=61409 mask=0x0001 button=0x0039 lang=zh-Hans
[2025-09-25T14:58:07] DEBUG1: send key down to "win-PC" id=61409, mask=0x0001, button=0x0039, language=zh-Hans
[2025-09-25T14:58:08] DEBUG1: event: Key event kind: 10, keycode=27
[2025-09-25T14:58:08] DEBUG1: new mask: 0x0001
[2025-09-25T14:58:08] DEBUG1: onKeyDown id=8212 mask=0x0001 button=0x001c lang=zh-Hans
[2025-09-25T14:58:08] DEBUG1: send key down to "win-PC" id=8212, mask=0x0001, button=0x001c, language=zh-Hans
[2025-09-25T14:58:08] DEBUG1: onKeyDown id=8212 mask=0x0001 button=0x001c lang=zh-Hans
[2025-09-25T14:58:08] DEBUG1: send key down to "win-PC" id=8212, mask=0x0001, button=0x001c, language=zh-Hans
[2025-09-25T14:58:08] DEBUG1: event: Key event kind: 11, keycode=27
[2025-09-25T14:58:08] DEBUG1: new mask: 0x0001
[2025-09-25T14:58:08] DEBUG1: onKeyUp id=0 mask=0x0001 button=0x001c
[2025-09-25T14:58:08] DEBUG1: send key up to "win-PC" id=0, mask=0x0001, button=0x001c
[2025-09-25T14:58:08] DEBUG1: event: Key event kind: 10, keycode=27
[2025-09-25T14:58:08] DEBUG1: new mask: 0x0001
[2025-09-25T14:58:08] DEBUG1: onKeyDown id=8212 mask=0x0001 button=0x001c lang=zh-Hans
[2025-09-25T14:58:08] DEBUG1: send key down to "win-PC" id=8212, mask=0x0001, button=0x001c, language=zh-Hans
[2025-09-25T14:58:08] DEBUG1: onKeyDown id=8212 mask=0x0001 button=0x001c lang=zh-Hans
[2025-09-25T14:58:08] DEBUG1: send key down to "win-PC" id=8212, mask=0x0001, button=0x001c, language=zh-Hans
[2025-09-25T14:58:08] DEBUG1: event: Key event kind: 11, keycode=27
[2025-09-25T14:58:08] DEBUG1: new mask: 0x0001
[2025-09-25T14:58:08] DEBUG1: onKeyUp id=0 mask=0x0001 button=0x001c
[2025-09-25T14:58:08] DEBUG1: send key up to "win-PC" id=0, mask=0x0001, button=0x001c
[2025-09-25T14:58:09] DEBUG1: event: Key event kind: 12, keycode=56
[2025-09-25T14:58:09] DEBUG1: mask=0100 outMask=0000
[2025-09-25T14:58:09] DEBUG1: new mask: 0x0000
[2025-09-25T14:58:09] DEBUG1: onKeyUp id=61409 mask=0x0000 button=0x0039
[2025-09-25T14:58:09] DEBUG1: send key up to "win-PC" id=61409, mask=0x0000, button=0x0039
[2025-09-25T14:58:11] DEBUG1: try to leave "win-PC" on right
[2025-09-25T14:58:11] DEBUG1: waiting to switch
[2025-09-25T14:58:11] DEBUG1: mask=0000 outMask=0000
[2025-09-25T14:58:11] DEBUG1: try to leave "win-PC" on right
[2025-09-25T14:58:11] DEBUG1: mask=0000 outMask=0000
[2025-09-25T14:58:12] INFO: switch from "win-PC" to "macbook" at 3,1740
[2025-09-25T14:58:12] DEBUG1: send leave to "win-PC"
[2025-09-25T14:58:21] IPC: started server, waiting for clients
[2025-09-25T14:58:22] IPC: peer fingerprint: ABAD7FA145380FF74808C354C91468D46FF51EB1D3AE2BDC65C3D5CC31FDA05F
[2025-09-25T14:58:22] INFO: accepted secure socket
[2025-09-25T14:58:22] INFO: network encryption protocol: TLSv1.3
[2025-09-25T14:58:22] NOTE: accepted client connection
[2025-09-25T14:58:22] INFO: local languages: en
[2025-09-25T14:58:22] IPC: client "win-PC" has connected
```

### Additional information

When using languages requiring an Input Method Editor (IME), such as Chinese, Japanese, or Korean, the local IME intercepts certain keystrokes, preventing Deskflow from synchronizing keyboard operations correctly. Specifically, key combinations (e.g., Shift + - to output _) fail to execute on the client side.

### Issues Note

Please react with ☹️ if this bug affects you.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.