[GH-ISSUE #4892] [Bug] Layers of optimized keyboard layouts do not work #2173

Open
opened 2026-03-23 21:20:19 +00:00 by mirror · 6 comments
Owner

Originally created by @Glitchy-Tozier on GitHub (Mar 13, 2024).
Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/4892

Bug Description

There's a number of people who use optimized keyboard layouts, such as Dvorak or Colemak.

It's common for these layouts to incorporate additional layers, letting users type special symbols or access navigation more easily. For example, layouts of the NEO-family (warning: German website) let you easily access navigation functionality without moving your hands to the edges of your keyboard.

The issue is that AppFlowy doesn't seem to recognize that layer. It just ignores anything typed using it. For example, if I try to move around in this text I'm composing by using the arrow keys provided by my keyboard, it works on GitHub. In AppFlowy, nothing happens.

This is a big issue because it prevents any user of this kind of optimized keyboard layout from using AppFlowy, as it disabled all their navigation. Which is unfortunate, because I (and others) would love to use this app.

How to Reproduce

I can only give instructions for Linux:

  1. Go to your keyboard-settings
  2. Select a layout such as Neo 2, Bone, or KOY (and make it your main layout, just to be sure)
  3. Go to Appflowy and place your cursor somewhere inside a text
  4. Try moving your cursor left and right by holding down a M4 or Mod4 (as can be seen here) and pressing s or f on your physical keyboard.
  5. See bug: Nothing happens, whereas every other app with a text input would let you move the cursor

Expected Behavior

Users of optimized keyboard layouts should be able to input characters and use their keyboard's functionality as they should be able to do in any other app.

Operating System

Linux Mint 21.3 Cinnamon

AppFlowy Version(s)

0.5.1, Installed via Flatpak, but also happens on the Snap version

Screenshots

No response

Additional Context

My hunch is that AppFlowy captures inputs that use M4 or Mod4 (as can be seen here) and selectively ignores some/most of them, as it might expect some kind of shortcut.

Originally created by @Glitchy-Tozier on GitHub (Mar 13, 2024). Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/4892 ### Bug Description There's a number of people who use optimized keyboard layouts, such as Dvorak or Colemak. It's common for these layouts to incorporate additional layers, letting users type special symbols or access navigation more easily. For example, layouts of the [NEO-family](https://neo-layout.org/) (warning: German website) let you easily access navigation functionality without moving your hands to the edges of your keyboard. The issue is that AppFlowy doesn't seem to recognize that layer. It just ignores anything typed using it. For example, if I try to move around in this text I'm composing by using the arrow keys provided by my keyboard, it works on GitHub. In AppFlowy, nothing happens. This is a big issue because it prevents any user of this kind of optimized keyboard layout from using AppFlowy, as it disabled all their navigation. Which is unfortunate, because I (and others) would love to use this app. ### How to Reproduce I can only give instructions for Linux: 1. Go to your keyboard-settings 2. Select a layout such as _Neo 2_, _Bone_, or _KOY_ (and make it your main layout, just to be sure) 3. Go to Appflowy and place your cursor somewhere inside a text 4. Try moving your cursor left and right by holding down a `M4` or `Mod4` (as can be seen [here](https://dl.neo-layout.org/grafik/bilder-einzeln/flat/neo-4-tkl.path.svg)) and pressing `s` or `f` on your physical keyboard. 5. **See bug**: Nothing happens, whereas every other app with a text input would let you move the cursor ### Expected Behavior Users of optimized keyboard layouts should be able to input characters and use their keyboard's functionality as they should be able to do in any other app. ### Operating System Linux Mint 21.3 Cinnamon ### AppFlowy Version(s) 0.5.1, Installed via Flatpak, but also happens on the Snap version ### Screenshots _No response_ ### Additional Context My hunch is that AppFlowy captures inputs that use `M4` or `Mod4` (as can be seen [here](https://dl.neo-layout.org/grafik/bilder-einzeln/flat/neo-4-tkl.path.svg)) and selectively ignores some/most of them, as it might expect some kind of shortcut.
Author
Owner

@LucasXu0 commented on GitHub (Mar 13, 2024):

@Glitchy-Tozier could you please run this example project? https://dartpad.dev/?id=8ac50e509411d9f6848bd264c77c9b81. It's designed to capture and display keyboard events.

Try moving your cursor left and right by holding down a M4 or Mod4 (as can be seen here) and pressing s or f on your physical keyboard.

I'm curious about what the output will show in the example. Please share a screenshot after you try pressing the M4 + 's'/'f' keys in this project.

Sample
Screenshot 2024-03-13 at 17 30 59

<!-- gh-comment-id:1993922789 --> @LucasXu0 commented on GitHub (Mar 13, 2024): @Glitchy-Tozier could you please run this example project? https://dartpad.dev/?id=8ac50e509411d9f6848bd264c77c9b81. It's designed to capture and display keyboard events. > Try moving your cursor left and right by holding down a M4 or Mod4 (as can be seen [here](https://dl.neo-layout.org/grafik/bilder-einzeln/flat/neo-4-tkl.path.svg)) and pressing s or f on your physical keyboard. I'm curious about what the output will show in the example. Please share a screenshot after you try pressing the M4 + 's'/'f' keys in this project. **Sample** <img width="1842" alt="Screenshot 2024-03-13 at 17 30 59" src="https://github.com/AppFlowy-IO/AppFlowy/assets/11863087/5fa48ba2-d676-459a-a68e-f14ef58ba7f2">
Author
Owner

@Glitchy-Tozier commented on GitHub (Mar 13, 2024):

@LucasXu0 Here you go:
EDIT: The shift-event has nothing to do with it, i accidentally triggered it. Only the first three log entries should be relevant.

image

<!-- gh-comment-id:1993937576 --> @Glitchy-Tozier commented on GitHub (Mar 13, 2024): @LucasXu0 Here you go: EDIT: The shift-event has nothing to do with it, i accidentally triggered it. Only the first three log entries should be relevant. ![image](https://github.com/AppFlowy-IO/AppFlowy/assets/59611881/b7d75ad1-e8f8-4b27-ad4b-f73e8d873721)
Author
Owner

@LucasXu0 commented on GitHub (Mar 13, 2024):

@Glitchy-Tozier That's odd. The arrow keys should be functional in AppFlowy because we identify keyboard events by KeyId.

Screenshot 2024-03-13 at 17 41 21 Screenshot 2024-03-13 at 17 41 35
<!-- gh-comment-id:1993965209 --> @LucasXu0 commented on GitHub (Mar 13, 2024): @Glitchy-Tozier That's odd. The arrow keys should be functional in AppFlowy because we identify keyboard events by KeyId. <img width="688" alt="Screenshot 2024-03-13 at 17 41 21" src="https://github.com/AppFlowy-IO/AppFlowy/assets/11863087/2919daf5-4d45-4e90-ae82-0b2f7c40a819"> <img width="506" alt="Screenshot 2024-03-13 at 17 41 35" src="https://github.com/AppFlowy-IO/AppFlowy/assets/11863087/62f03333-669c-487b-b30d-4d704380647d">
Author
Owner

@Glitchy-Tozier commented on GitHub (Mar 13, 2024):

@LucasXu0 The pyhsical arrow-keys work just fine. But if I try to input them using the layout's additional functionality (as I have done for the screenshot you requested) it doesn't work.
Maybe AppFlowy is configured to ignore certain key-combinations that include the physical "Alt Right" key?

<!-- gh-comment-id:1993974222 --> @Glitchy-Tozier commented on GitHub (Mar 13, 2024): @LucasXu0 The pyhsical arrow-keys work just fine. But if I try to input them using the layout's additional functionality (as I have done for the screenshot you requested) it doesn't work. Maybe AppFlowy is configured to ignore certain key-combinations that include the physical "Alt Right" key?
Author
Owner

@Glitchy-Tozier commented on GitHub (Mar 13, 2024):

I should note that in particular the arrow-, page-up-, page-down-, tab- shortcuts seem most affected, while the home-, end-, and enter- shortcuts seem to work just fine.
Here's me pressing the affected combinations (without releasing "Mod 4" inbetween):

image

<!-- gh-comment-id:1994007421 --> @Glitchy-Tozier commented on GitHub (Mar 13, 2024): I should note that in particular the `arrow`-, `page-up`-, `page-down`-, `tab`- shortcuts seem most affected, while the `home`-, `end`-, and `enter`- shortcuts seem to work just fine. Here's me pressing the affected combinations (without releasing "Mod 4" inbetween): ![image](https://github.com/AppFlowy-IO/AppFlowy/assets/59611881/5901c216-7f91-49e0-b4e6-7b0abd4ce245)
Author
Owner

@Glitchy-Tozier commented on GitHub (Apr 19, 2024):

Any progress on what could be causing this?

<!-- gh-comment-id:2066083124 --> @Glitchy-Tozier commented on GitHub (Apr 19, 2024): Any progress on what could be causing this?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AppFlowy-IO/AppFlowy#2173
No description provided.