AppFlowy-IO/AppFlowy

[Bug] Layers of optimized keyboard layouts do not work

开放

#4,892 创建于 2024年3月13日

 (6 条评论) (0 个反应) (0 位负责人)Dart (5,881 个派生)batch import
help wantedimprovements

仓库指标

星标
 (75,639 个星标)
PR 合并指标
 (平均合并 1小时 18分钟) (30 天内合并 1 个 PR)

描述

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.

贡献者指南