akiyosi / goneovim

A GUI frontend for neovim.
MIT License
2.37k stars 62 forks source link

Compose key not respected #408

Closed gi1242 closed 1 year ago

gi1242 commented 2 years ago

Looks like goneovim doesn't respect my Compose key (Plasma/Wayland).

I set the compose key by going to Settings → Keyboard → Advanced → Position of Compose Key → Right Alt.

Goneovim ignores this. When I press the right alt I get a weird question mark symbol. The right alt works fine in all other applications.

Steps to reproduce:

  1. Set compose to right alt Settings → Keyboard → Advanced → Position of Compose Key → Right Alt.

  2. Type a digraph / accent. For instance press Right Alt then - then >.

This should produce . It does this on all applications, except goneovim where it produces an undefined character.

akiyosi commented 1 year ago

@gi1242 Hi, Thanks for this issue report.

Hmmm, goneovim's key handling is heavily based on Neovim-qt, but this problem appears to be unresolved on the Neovim-qt side as well. https://github.com/equalsraf/neovim-qt/issues/181

Also, it seems to me that more user examples are needed to elaborate on the issue. (I don't think your report of the problem is wrong, but it seems to me that the OS configuration is also very much involved, and I would expect a situation where some people are fine and others are having problems).

gi1242 commented 1 year ago

Strange. I just tested on my system: the compose key works fine in neovim-qt, but doesn't work in goneovim. Is there anything I can do to help you reproduce it?

rainDiX commented 1 year ago

I have the same issue using the official binary. Building goneovim from source did solve the issue on my sice. The main difference is that I have the latest qt 5.15 installed whereas goneovim official binaries are built against Qt 5.14.2. The second difference is that I have the qtwayland module installed, but I tried with QT_QPA_PLATFORM=xcb and compose-key still worked. My guess is that updating Qt on the CI should get rid of the issue (and maybe adding the qtwayland could be a nice addition)

akiyosi commented 1 year ago

@rainDiX Thanks for comment! That information is very helpful.

@gi1242 I update the Qt version for building goneovim linux artifact. Would you confirm that compose-key works with this artifact?

https://github.com/akiyosi/goneovim/actions/runs/3128139266

rainDiX commented 1 year ago

@akiyosi the compose-key still do not work with this binary. My best guess know is that some Qt modules are missing. After some digging, the install-qt-action seems to install qtwayland and qtx11extras libraries, but they seems to be ignored when the bindings are generated. Maybe some dependencies like libxcb-xkb are missing. I'm testing things on my side and I'll comment back here if I find anything relevant.

gi1242 commented 1 year ago

I update the Qt version for building goneovim linux artifact. Would you confirm that compose-key works with this artifact?

Unfortunately it didn't work. (Something was wrong with the artifact though; it wouldn't run natively under Wayland, and needed XWayland.). I can try buidling from source this weekend...

akiyosi commented 1 year ago

@gi1242 @rainDiX Thanks for confirming! It seems that qtwayland is not a valid module name but qtwaylandcompositer is. Would you please check if this CI artifact solves the problem?

https://github.com/akiyosi/goneovim/actions/runs/3149172021

gi1242 commented 1 year ago

Somehow the artifacts always start with the message

qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""

and then just run under xwayland. (The compose key problem is present in this case.) I'll try building form source and report back.

gi1242 commented 1 year ago

I just built from source both with 56341a43817549844a68229f55bb41262d50949c, and with the latest nightly (c87cba6). It runs under Wayland directly now; however the compose key is not respected by either.

akiyosi commented 1 year ago

@gi1242 Sorry for the late reply. I have created a goenovim built based on the latest version of Qt. Could you please confirm that it works with the artifacts generated by the following CI?

https://github.com/akiyosi/goneovim/actions/runs/3247244936

akiyosi commented 1 year ago

@rainDiX If you have time, could you please show me the dependencies of the goneovim binaries you have built? For example, I would like to know the results of the ldd /path/to/goneovim or lddtree /path/to/goneovim commands.

rainDiX commented 1 year ago

Hi, here's the output, looking at my build, it is not very clean.

$ ldd ./goneovim
        linux-vdso.so.1 (0x00007ffe2997e000)
    libQt5Widgets.so.5 => /home/rain/Development/packages/goneovim-git/src/go/src/github.com/therecipe/env_linux_amd64_513/5.13.0/gcc_64/lib/libQt5Widgets.so.5 (0x00007f7af7400000)
    libQt5Gui.so.5 => /home/rain/Development/packages/goneovim-git/src/go/src/github.com/therecipe/env_linux_amd64_513/5.13.0/gcc_64/lib/libQt5Gui.so.5 (0x00007f7af6a00000)
    libQt5Core.so.5 => /home/rain/Development/packages/goneovim-git/src/go/src/github.com/therecipe/env_linux_amd64_513/5.13.0/gcc_64/lib/libQt5Core.so.5 (0x00007f7af6200000)
    libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f7af737a000)
    libQt5Svg.so.5 => /home/rain/Development/packages/goneovim-git/src/go/src/github.com/therecipe/env_linux_amd64_513/5.13.0/gcc_64/lib/libQt5Svg.so.5 (0x00007f7af5e00000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f7af5bc9000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007f7af7292000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f7af7272000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007f7af59e2000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f7af7c55000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007f7af7258000)
    libicui18n.so.56 => /home/rain/Development/packages/goneovim-git/src/go/src/github.com/therecipe/env_linux_amd64_513/5.13.0/gcc_64/lib/libicui18n.so.56 (0x00007f7af5400000)
    libicuuc.so.56 => /home/rain/Development/packages/goneovim-git/src/go/src/github.com/therecipe/env_linux_amd64_513/5.13.0/gcc_64/lib/libicuuc.so.56 (0x00007f7af5000000)
    libicudata.so.56 => /home/rain/Development/packages/goneovim-git/src/go/src/github.com/therecipe/env_linux_amd64_513/5.13.0/gcc_64/lib/libicudata.so.56 (0x00007f7af3600000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f7af7253000)
    libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f7af724e000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f7af60c3000)
    /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f7af7c7c000)
    libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007f7af592a000)
    libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007f7af69cc000)
    libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007f7af3565000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f7af3422000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f7af6098000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f7af69c5000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f7af69bd000)
akiyosi commented 1 year ago

@gi1242 @rainDiX I think I was able to create a goneovim binary that integrated qtwayland. I do not have the wayland environment on my hands at the moment, so I am not able to test this immediately. I would appreciate it if you could test this new binary in the wayland environment to see if the compose key works.

https://github.com/akiyosi/goneovim/actions/runs/3256119760

gi1242 commented 1 year ago

Thank you so much! This worked perfectly for me. Now I can start using goneovim again. (No compose key was a dealbreaker for me, so I had to use a different front end in the meantime.) Thanks again!

akiyosi commented 1 year ago

@gi1242 Thanks for confirming! Now I would like to merge these changes. This issue is closed.

pro-anon commented 1 year ago

I have an issue with the compose key on X. As soon as I press the right alt key it shows this weird symbol image

Compose key shows this: �
����
�