Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems with dead keys #5564

Open
4 tasks done
leafyzito opened this issue Aug 25, 2024 · 10 comments
Open
4 tasks done

Problems with dead keys #5564

leafyzito opened this issue Aug 25, 2024 · 10 comments
Labels
bug Something isn't working as intended, or works in a confusing/unintuitive way for the user OS: Linux

Comments

@leafyzito
Copy link

leafyzito commented Aug 25, 2024

Checklist

  • I'm reporting a problem with Chatterino
  • I've verified that I'm running the most recent nightly build or stable release
  • I've looked for my problem on the wiki
  • I've searched the issues and pull requests for similar looking reports

Describe your issue

  • Can't use accent marks in words like "água" or "pão" (these are just portuguese examples that use accent marks).
  • When I press ~ or ' , it simply gets ignored and types "agua" or "pao", using the same examples as before

This only happens on Linux as far as I know.
I only noticed this being an issue when I moved from Windows to Linux Mint 22. It works fine on Windows.

Interestingly the version from Software Manager works fine, but the lastest versions from this repo doesn't.

Screenshots

No response

OS and Chatterino Version

Chatterino 2.5.1 (commit 6e104bd) built with Qt 6.6.1 Running on Linux Mint 22, kernel: 6.8.0-41-generic

@leafyzito leafyzito added the issue-report An issue reported by a user. label Aug 25, 2024
@leafyzito leafyzito changed the title Cannot use accent marks Cannot type accent marks Aug 26, 2024
@douglascdev
Copy link
Contributor

I tried a few of the versions in the releases section and tested for this bug. I was able to reproduce it in versions 2.5.0-beta1 and 2.5.0, but works as expected in 2.4.5, so seems like something introduced in 2.5.0.

@douglascdev
Copy link
Contributor

Also tried the nightly release(commit acdb84c3) and that has the same bug, but weirdly enough, building master from source doesn't have it. Not sure what's going on.

@Nerixyz
Copy link
Contributor

Nerixyz commented Aug 28, 2024

but weirdly enough, building master from source doesn't have it. Not sure what's going on.

Are you sure it's running with the same Qt version?

@douglascdev
Copy link
Contributor

but weirdly enough, building master from source doesn't have it. Not sure what's going on.

Are you sure it's running with the same Qt version?

I'm on Arch Linux, I built with Qt 6.7.2. Nightly seems to use that same exact version though, and still has the bug, so I'm guessing the Qt version isn't the cause.

@Nerixyz
Copy link
Contributor

Nerixyz commented Aug 28, 2024

I'm on Arch Linux, I built with Qt 6.7.2. Nightly seems to use that same exact version though, and still has the bug, so I'm guessing the Qt version isn't the cause.

Are you sure it's actually the identical version? Try checking with ldd. I suppose one uses the Qt version built in the Docker container and the other uses the one installed on your system. If that's the case, it's probably a bug with the Docker container.

@douglascdev
Copy link
Contributor

Trying to run ldd at any of the AppImages I downloaded from the releases page gives me not a dynamic executable, but worked with the one I built:

	linux-vdso.so.1 (0x00007e5c6bff5000)
	libQt6Widgets.so.6 => /usr/lib/libQt6Widgets.so.6 (0x00007e5c6a600000)
	libQt6Svg.so.6 => /usr/lib/libQt6Svg.so.6 (0x00007e5c6bf3a000)
	libQt6Gui.so.6 => /usr/lib/libQt6Gui.so.6 (0x00007e5c69c00000)
	libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007e5c6bf08000)
	libOpenGL.so.0 => /usr/lib/libOpenGL.so.0 (0x00007e5c6bedd000)
	libQt6Concurrent.so.6 => /usr/lib/libQt6Concurrent.so.6 (0x00007e5c6bed6000)
	libQt6Network.so.6 => /usr/lib/libQt6Network.so.6 (0x00007e5c69a3b000)
	libQt6Core5Compat.so.6 => /usr/lib/libQt6Core5Compat.so.6 (0x00007e5c6ada7000)
	libQt6Core.so.6 => /usr/lib/libQt6Core.so.6 (0x00007e5c69400000)
	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007e5c6becf000)
	libssl.so.3 => /usr/lib/libssl.so.3 (0x00007e5c6a526000)
	libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007e5c68e00000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007e5c68a00000)
	libm.so.6 => /usr/lib/libm.so.6 (0x00007e5c69311000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007e5c6be9f000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007e5c6880f000)
	libz.so.1 => /usr/lib/libz.so.1 (0x00007e5c6ad8e000)
	libEGL.so.1 => /usr/lib/libEGL.so.1 (0x00007e5c6be8b000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007e5c6ad3e000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007e5c68cbf000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007e5c686c1000)
	libQt6DBus.so.6 => /usr/lib/libQt6DBus.so.6 (0x00007e5c6a46e000)
	libxkbcommon.so.0 => /usr/lib/libxkbcommon.so.0 (0x00007e5c68679000)
	libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007e5c692d7000)
	libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007e5c6855f000)
	libmd4c.so.0 => /usr/lib/libmd4c.so.0 (0x00007e5c6ad28000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007e5c68495000)
	libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007e5c683dd000)
	libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007e5c6838a000)
	libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007e5c6ad19000)
	libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007e5c682ab000)
	libproxy.so.1 => /usr/lib/libproxy.so.1 (0x00007e5c6ad14000)
	libicuuc.so.75 => /usr/lib/libicuuc.so.75 (0x00007e5c680b1000)
	libicui18n.so.75 => /usr/lib/libicui18n.so.75 (0x00007e5c67c00000)
	libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007e5c67fbd000)
	libdouble-conversion.so.3 => /usr/lib/libdouble-conversion.so.3 (0x00007e5c69a24000)
	libb2.so.1 => /usr/lib/libb2.so.1 (0x00007e5c68ca1000)
	libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x00007e5c67b6e000)
	/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007e5c6bff7000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007e5c67f94000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007e5c67b43000)
	libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007e5c67aa4000)
	libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007e5c67a53000)
	libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007e5c67a31000)
	libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007e5c69a11000)
	libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007e5c6796c000)
	libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007e5c6793f000)
	libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007e5c6a466000)
	libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007e5c68c93000)
	libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007e5c69a0a000)
	libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007e5c67f82000)
	libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007e5c6791c000)
	libpxbackend-1.0.so => /usr/lib/libproxy/libpxbackend-1.0.so (0x00007e5c6790d000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007e5c678ae000)
	libicudata.so.75 => /usr/lib/libicudata.so.75 (0x00007e5c65a00000)
	libcap.so.2 => /usr/lib/libcap.so.2 (0x00007e5c68c87000)
	libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007e5c6785b000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007e5c692d2000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007e5c67853000)
	libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007e5c67788000)
	libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007e5c65833000)
	libduktape.so.207 => /usr/lib/libduktape.so.207 (0x00007e5c657e7000)
	libffi.so.8 => /usr/lib/libffi.so.8 (0x00007e5c6777d000)
	libnghttp3.so.9 => /usr/lib/libnghttp3.so.9 (0x00007e5c6775a000)
	libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x00007e5c657bd000)
	libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007e5c6579b000)
	libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007e5c65752000)
	libpsl.so.5 => /usr/lib/libpsl.so.5 (0x00007e5c6573e000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007e5c67753000)
	libmount.so.1 => /usr/lib/libmount.so.1 (0x00007e5c656ef000)
	libunistring.so.5 => /usr/lib/libunistring.so.5 (0x00007e5c6553f000)
	libblkid.so.1 => /usr/lib/libblkid.so.1 (0x00007e5c65506000)

@Nerixyz
Copy link
Contributor

Nerixyz commented Aug 28, 2024

Oh right, my bad. We statically link to Qt. But I'm pretty sure this is a bug in the Qt ./configure options. The logs from Chatterino might be interesting. If I understand correctly, ibus is responsible for this input. (might be related: Qt6.5.0 and ibus (Ubuntu); Problem with accents on QT applications)

@douglascdev
Copy link
Contributor

But I'm pretty sure this is a bug in the Qt ./configure options.

Yeah that would make sense.

If I understand correctly, ibus is responsible for this input. (might be related: Qt6.5.0 and ibus (Ubuntu); Problem with accents on QT applications)

My distro didn't have the ibus package installed in the first place, and installing it didn't seem to do anything. Using X11 also didn't make the existing releases work.

The logs from Chatterino might be interesting.

Not sure if it's safe to post the whole log with QT_LOGGING_RULES="chatterino.*.debug=true" here so I'll grep the lines mentioning QT.

Nighty release:

qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in "/tmp/.mount_ChatteDc7hly/usr/plugins"
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile

Release 2.4.5:

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

Working master branch compiled from git:

qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile

@douglascdev
Copy link
Contributor

@Nerixyz the ldd that the AppImage binary generates looks very different from mine:

 Running LDD on chatterino binary:
	linux-vdso.so.1 (0x00007ffd77190000)
	libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f2782af7000)
	libOpenGL.so.0 => /lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007f2782acb000)
	libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f2782a90000)
	libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f27829c1000)
	libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f2782977000)
	libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f2780b7f000)
	libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f2780ab7000)
	libxcb-glx.so.0 => /lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f2780a9a000)
	libEGL.so.1 => /lib/x86_64-linux-gnu/libEGL.so.1 (0x00007f2780a87000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f2780947000)
	libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f2780900000)
	libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f27808fb000)
	libxkbcommon-x11.so.0 => /lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 (0x00007f27808f0000)
	libxcb-cursor.so.0 => /lib/x86_64-linux-gnu/libxcb-cursor.so.0 (0x00007f2780600000)
	libxcb-icccm.so.4 => /lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007f27808e9000)
	libxcb-image.so.0 => /lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007f27808e3000)
	libxcb-keysyms.so.1 => /lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007f27808de000)
	libxcb-randr.so.0 => /lib/x86_64-linux-gnu/libxcb-randr.so.0 (0x00007f27808cb000)
	libxcb-render-util.so.0 => /lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007f27808c4000)
	libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f27808bf000)
	libxcb-sync.so.1 => /lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f27808b5000)
	libxcb-xfixes.so.0 => /lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007f27808ab000)
	libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f278089c000)
	libxcb-shape.so.0 => /lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007f2780895000)
	libxcb-xkb.so.1 => /lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007f2780877000)
	libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f278084d000)
	libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f278083f000)
	libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f27805a0000)
	libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f27803c6000)
	libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f278028c000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2780821000)
	libicui18n.so.70 => /lib/x86_64-linux-gnu/libicui18n.so.70 (0x00007f277ff5d000)
	libicuuc.so.70 => /lib/x86_64-linux-gnu/libicuuc.so.70 (0x00007f277fd62000)
	libpcre2-16.so.0 => /lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007f277fcd8000)
	libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007f277fc34000)
	libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007f277f7f0000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f277f5c4000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f277f4dd000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f277f4bd000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f277f294000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f2782b32000)
	libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f277f1dc000)
	libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f277f1b5000)
	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f277f184000)
	libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f2780814000)
	libxcb-util.so.1 => /lib/x86_64-linux-gnu/libxcb-util.so.1 (0x00007f278080b000)
	libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f277f17e000)
	libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f277f176000)
	libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f277f153000)
	libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007f277f146000)
	libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f277f13f000)
	libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f277f0fb000)
	libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f277f0cf000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f277f059000)
	libicudata.so.70 => /lib/x86_64-linux-gnu/libicudata.so.70 (0x00007f277d43b000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f277d423000)
	libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f277d3ec000)
	libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f277d355000)
	libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f277d346000)

@Mm2PL Mm2PL added bug Something isn't working as intended, or works in a confusing/unintuitive way for the user OS: Linux and removed issue-report An issue reported by a user. labels Nov 22, 2024
@Mm2PL Mm2PL changed the title Cannot type accent marks Problems with dead keys Nov 22, 2024
@Mm2PL
Copy link
Collaborator

Mm2PL commented Nov 22, 2024

Unable to replicate.

I am using X11, i3. With ibus explicitly enabled and disabled in Qt. However without ibus dead keys are not shown to the user when they type (like on windows), ibus shows underlined text both for dead keys and things like unicode search.

Chatterino 2.5.1 DEBUG (commit 2215455 modified) built with Qt 6.8.0. Running on Arch Linux, kernel: 6.11.6-arch1-1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working as intended, or works in a confusing/unintuitive way for the user OS: Linux
Projects
None yet
Development

No branches or pull requests

4 participants