axolotl-chat / axolotl

A Signal compatible cross plattform client written in Go, Rust and Vuejs
https://axolotl.chat
GNU General Public License v3.0
326 stars 52 forks source link

[BUG] Input of certain letters not possible (Mobian@Pinephone) #635

Open nuehm-arno opened 2 years ago

nuehm-arno commented 2 years ago

Description

It is currently not possible to enter the letters "z", "o", "x", "é", "ö", "ü" (=Pos1-key), "ô", "W" into the input field in Axolotl chats using the Pinephone keyboard squeekboard. It seems to be an Electron/Axolotl thing, because starting Electron itself via terminal (~/.config/textsecure.nanuc/electron/vendor/electron-linux-arm64/electron https://...) is not producing this bug and entering the specific letters is possible.

Steps to Reproduce

  1. Start Axolotl
  2. Open chat
  3. Try to write one of the above mentioned letters
  4. Nothing is shown in the input field

Expected behavior: Every letter to be shown.

Actual behavior: Some letters are not shown.

Versions

v1.0.7

Device

Mobian@Pinephone

Link to Debug Log

The logs do not shown any hint...

1peter10 commented 2 years ago

Sounds a lot like the issues I have had when I last tried Chromium with the Ozone Wayland backend, which is being used here. Chromium might be the culprit here – or Squeekboard.

nuehm-arno commented 2 years ago

Thank you very much. Starting Electron 15.3.0 without the Ozone Wayland backend let's us write the letters again.

So the question at the moment is: Nicer look and faster haptic or entering all letters.

mikeshenson commented 2 years ago

I am also having this issue, but with different letters.

Description Portrait mode "e" "f" "h" "i" "r" "u" "y" "z" do not show. All uppercase letters work. Landscape mode "f" "u" do not show up. All uppercase letters work.

Versions OS: Rolling Arch Phosh: 0.14.0-2 Axolotl 1.0.8 Squeekboard 1.14.0-1 Language: English (United States), Formats United States (English)

nuehm-arno commented 2 years ago

@mikeshenson Thanks for confirming.

Since the Electron team seems to have high requirements for their bug/issue solving (I was asked to file in some testcases with code etc.), I propose to not use the Ozone platform on the Pinephone and switch back to the blurry times - which is sad though. But I will keep an eye on Electron with every new release to see, if there is improvement. What do you think @nanu-c ?

nanu-c commented 2 years ago

But yes i would revert the previous version. I hink we can do a small app as they want because it's just a <textarea \> or <input type="text" />that has this problems. And if not it's a problem with astilectron.

kmsgli commented 2 years ago

How can i fix this issue what is the proper way to run electron without ozone?

nuehm-arno commented 2 years ago

That feature is hardcoded in main.go - I will provide a Mobian specific patched version today, where the Ozone platform is disabled. So everyone can choose.

nuehm-arno commented 2 years ago

Here is v1.0.8-3 for Mobian user with Ozone deactivated - all letters except ü and V are back. The screen is blurry and Axolotl is laggy as in the good old times.

https://github.com/nuehm-arno/axolotl-mobian-package

Direct download

wget https://github.com/nuehm-arno/axolotl-mobian-package/blob/0163cb9b791abe76abe342f15f7e2b27dad54fb9/axolotl_1.0.8-3_arm64.deb

mikeshenson commented 2 years ago

I would like to add more testing data. I am still running the Axolotl 1.0.8.

I have a custom squeekboard layout that I added memory preset to (i.e. "Heading Home" or my email address) The memory presets also have issues with the same missing letters.

All keys work properly with an external keyboard plugged into the Pine64 docking bar.

I found a work around to show all letters: Open gedit and type out a message >> select all >> copy >> open Axolotl and paste text in a message.

Versions Phone: PinePhone 3Gig Version OS: Rolling Arch Phosh: 0.14.0-2 Axolotl 1.0.8 Squeekboard 1.14.0-1

Ferenc- commented 2 years ago

So it appears, that squeekboard has been tracking this "situation" since ages: https://gitlab.gnome.org/World/Phosh/squeekboard/-/issues/244

And it looks like ultimately the chromium / electron patch should probably be upstreamed by somebody, who can confidently argue about correctness in ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc.

In the meantime we have some temporary workarounds:

1, Not using squeekboard, but an actual keyboard because squeekboard is not a keyboard but an input method. A good candidate is the PP keyboard for example, but other HW or SW keyboards could work.

2, Copy paste from scratchpad like mikeshenson suggested.

3, Create custom squeekboard layouts where you have all your previously missing letters on some auxilary extra layer, depending on what your original layout was. Or just try out some other already existing layouts. On my private layout I haven't even noticed this issue for quite a while.

4, Axolotl packagers could try to apply and ship the chromium / electron patch. The practice of "silently" downloading some binaries from github is not really a good security practice anyway, I think most of the users would prefer to get electron from the same trusted source, where Axolotl also came from.

nuehm-arno commented 2 years ago

Thanks for the research, @Ferenc- .

I agree, that the silent binary download is not the best practice. I haven't tried to build Electron myself, but since the patch for squeekboard usage seems really necessary, one should look into that. Shipping the patched Electron binary inside the Mobian/Debian-arm64 package could be a good solution.

I'll have a try soonish and keep you posted...

kop316 commented 2 years ago

I am seeing this issue too. "C" seems to be interpreted as a backspace on Mobian/Pinephone Pro. I installed version 1.3.1

kkofler commented 2 years ago

On Plasma Mobile (Maliit virtual keyboard), a lot of characters are broken, including the digits, so I cannot even input my phone number to register. And using X11 rather than Ozone/Wayland is not an option because Electron does not start up at all (segfaults immediately) in X11 mode on Plasma Mobile (see flathub/org.nanuc.Axolotl#9).

1peter10 commented 2 years ago

I suggest you to try to make Axolotl run as described here https://github.com/nuehm-arno/axolotl-mobian-package#daemonized-server-setup and access it with an Angelfish web app pointed at http://127.0.0.1:9080. That should fix your keyboard issues and also make it so, that you don't have to launch Axolotl periodically in order to view/receive messages.

kkofler commented 2 years ago

I know that that mostly works, but it is not (no longer, since several months ago) possible to register with Signal with that setup, so I cannot get started with Axolotl that way. Since early this year, registering requires the browser to implement a handler for the custom signalcaptcha:// protocol. This is implemented by #775 for the Electron and QML wrappers (and the latter is not packaged anywhere), but it cannot by design be implemented in server mode. As a result, the server mode has become entirely useless for new users.

kkofler commented 2 years ago

If the QML version were available on Flathub, I could try that one, but alas, it is not.

kkofler commented 2 years ago

As I understand it, this: https://chromium-review.googlesource.com/c/chromium/src/+/3750452 needs to make its way into Electron to make it usable with virtual keyboards on Wayland. At least this thread: https://gitlab.gnome.org/World/Phosh/squeekboard/-/issues/244#note_1581502 claims that that would also fix the bad characters, not just the keyboard not coming up automatically.

Currently, Electron is entirely unusable on mobile GNU/Linux.

nuehm-arno commented 2 years ago

Hello there and thanks for posting your issue.

Please try to start Axolotl with this flag -electron-flag no-ozone since it deactivates the Ozone platform of Electron. Input of most letters should be working except "ü" and a few capital letters (at least on Mobian).

Please let me know, if that helps on Plasma, too.

nuehm-arno commented 2 years ago

P.S.: Axolotl is facing some issues at the moment (registering broken, etc.) so please wait for the next version (might be v1.7.0 or v1.6.1) to be released.