Sigil-Ebook / Sigil

Sigil is a multi-platform EPUB ebook editor
GNU General Public License v3.0
5.97k stars 578 forks source link

[Bug]:Problem on Ubuntu with fcitx5 - input method can not switch #782

Closed hypertextPreprocessor closed 2 weeks ago

hypertextPreprocessor commented 2 weeks ago

Bug Description

Environment: Ubuntu 24.04.LTS Sigil 2.0.1 qt5 fcitx5 Every applictions with this fcitx5 works fine but sigil some errors: image ![Uploading image.png…]()

Platform (OS)

Windows (Default)

OS Version / Specifics

Ubuntu 24.04.LTS

What version of Sigil are you using?

2.0.1

Any backtraces or crash reports

op[2952]: [2944:2974:1107/122558.410322:ERROR:connection_factory_impl.cc(483)] ConnectionHandler failed with net error: -2
11月 07 12:26:22 youyou gnome-shell[1866]: Error processing key on IM: Cannot invoke method; proxy is for the well-known name org.freedesktop.IBus without an owner, >
11月 07 12:26:22 youyou gnome-control-c[4042]: Unable to connect to ibus: The given address is empty
11月 07 12:26:22 youyou gnome-shell[1866]: Unable to connect to ibus: The given address is empty
11月 07 12:26:22 youyou google-chrome.desktop[2952]: (google-chrome-stable:2944): IBUS-WARNING **: 12:26:22.489: Unable to connect to ibus: The given address is empty
11月 07 12:26:23 youyou gnome-shell[11914]: The XKEYBOARD keymap compiler (xkbcomp) reports:
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86CameraAccessEnable
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86CameraAccessDisable
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86CameraAccessToggle
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86NextElement
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86PreviousElement
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86AutopilotEngageToggle
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86MarkWaypoint
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86Sos
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86NavChart
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86FishingChart
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86SingleRangeRadar
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86DualRangeRadar
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86RadarOverlay
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86TraditionalSonar
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86ClearvuSonar
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86SidevuSonar
11月 07 12:26:23 youyou gnome-shell[11914]: > Warning:          Could not resolve keysym XF86NavInfo
11月 07 12:26:23 youyou gnome-shell[11914]: Errors from xkbcomp are not fatal to the X server
11月 07 12:26:23 youyou gnome-shell[1866]: Gio.DBusError: GDBus.Error:org.freedesktop.DBus.Error.UnknownProperty: Unknown interface org.freedesktop.IBus or property >

                                            Stack trace:
                                              _promisify/proto[asyncFunc]/</<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:453:45
                                              @resource:///org/gnome/shell/ui/init.js:21:20
                                              ### Promise created here: ###
                                              _initEngines@resource:///org/gnome/shell/misc/ibusManager.js:170:34
                                              _onConnected@resource:///org/gnome/shell/misc/ibusManager.js:163:14
                                              @resource:///org/gnome/shell/ui/init.js:21:20
dougmassay commented 2 weeks ago

I've no experience with fcitx5 configuration whatsoever. But a brief search shows that there are known issues with fcitx5 and Chromium browsers running in Wayland. Sigil uses a chromium browser with QtWebEngine. If you're using Wayland, I'm not sure there's a workaround. Try a regular Gnome session and see if the problem persists. Also make sure the fcitx5-qt package is installed as Sigil is a Qt app.

kevinhendricks commented 2 weeks ago

You might want to try a google search using the following:

fcitx5 Gio.DBusError GDBus.Error.org.freedesktop.DBus.Error.UnknownProperty Unknown interface org.freedesktop.IBus or property

It returns many links related to similar problems with Ubuntu systems.

In addition, our latest released version of Sigil is Sigil-2.3.1 which uses Qt6. Please give that a try and see if the problem persists.

Unfortunately, there will be no more releases or bug fixes for Qt5 based systems as that version of Qt has too many bugs and security issues.

Our minimum build requirements for Sigil are Qt 6.4 and Python 3.9, and cmake 3.18.

kevinhendricks commented 2 weeks ago

Closed this inadvertently so reopening in case more information becomes available.

hypertextPreprocessor commented 2 weeks ago

when I created this issue my environment is QT5 ,and sigil version is 2.0.1, and today , I removes all QT5 relvants and sigil 2.0.1 which installed from apt repository , then I have QT6 installed ,follow the instructions on github linux build ,and successfuly build a sigil 2.4.0 , problem still . now my desktop environment : OS: Ubuntu 24.04.1 LTS Window System: Wayland sigil: 2.4.0 (loaded qt 6.4.2) what more , maybe this info was helpful, I also have kimpanel extension installed (from a system notification hint message , that would help for fcitx has a poper popup in some applications). Here's what I konw about from arch wiki

text-input requires the Wayland compositor and the client to use the same version of the protocol. You might want to use #IM modules if the version mismatches for some applications. In particular, Qt < 6.7 does not support text-input-v3, which as of 2024-03 is the only version of such protocols supported in GNOME and Sway. anyway, I correctly got fcitx5 environment in the file ~/.bash_profile:

export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export SDL_IM_MODULE=fcitx5
export GLFW_IM_MODULE=ibus

thanks to @dougmassay answer , and I tried fcitx-qt module installed ,problem still , image (due to I really not sure the qt6 module pricisely ,so have fcitx5-frontend-qt6 aslo installed)

and when I switch input method ,does not have any effect in the sigil ,thus can I only write English, here is the log from journalctl -xe

11月 08 13:01:12 youyou kcm_fcitx5.desktop[31418]: qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
11月 08 13:01:39 youyou gnome-shell[2116]: Usage of object.actor is deprecated for Panel
                                            get@resource:///org/gnome/shell/ui/environment.js:310:23
                                            _onOpenStateChanged@file:///home/tanglin/.local/share/gnome-shell/extensions/kimpanel@kde.org/menu.js:101:1
                                            _callHandlers@resource:///org/gnome/gjs/modules/core/_signals.js:130:42
                                            _emit@resource:///org/gnome/gjs/modules/core/_signals.js:119:10
                                            open@resource:///org/gnome/shell/ui/popupMenu.js:984:14
                                            execMenu@file:///home/tanglin/.local/share/gnome-shell/extensions/kimpanel@kde.org/menu.js:49:18
                                            _parseSignal@file:///home/tanglin/.local/share/gnome-shell/extensions/kimpanel@kde.org/extension.js:129:23
                                            @resource:///org/gnome/shell/ui/init.js:21:20
11月 08 13:01:39 youyou gnome-shell[2116]: Exception in callback for signal: open-state-changed: Error: incorrect pop

                                            Stack trace:
                                              popModal@resource:///org/gnome/shell/ui/main.js:788:15
                                              _ungrab@file:///home/tanglin/.local/share/gnome-shell/extensions/kimpanel@kde.org/menu.js:172:14
                                              _onOpenStateChanged@file:///home/tanglin/.local/share/gnome-shell/extensions/kimpanel@kde.org/menu.js:93:22
                                              _callHandlers@resource:///org/gnome/gjs/modules/core/_signals.js:130:42
                                              _emit@resource:///org/gnome/gjs/modules/core/_signals.js:119:10
                                              close@resource:///org/gnome/shell/ui/popupMenu.js:1001:14
                                              _onKeyFocusChanged@file:///home/tanglin/.local/share/gnome-shell/extensions/kimpanel@kde.org/menu.js:143:14
                                              onComplete@resource:///org/gnome/shell/ui/boxpointer.js:166:22
                                              _makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:67:13
                                              _easeActor@resource:///org/gnome/shell/ui/environment.js:156:17
                                              Clutter.Actor.prototype.ease@resource:///org/gnome/shell/ui/environment.js:287:15
                                              close@resource:///org/gnome/shell/ui/boxpointer.js:159:14
                                              close@resource:///org/gnome/shell/ui/popupMenu.js:992:30
                                              PopupMenu/<@resource:///org/gnome/shell/ui/popupMenu.js:894:30
                                              onComplete@file:///home/tanglin/.local/share/gnome-shell/extensions/hidetopbar@mathieu.bidon.ca/panelVisibilityManager.js:123:30
                                              _makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:67:13
                                              _easeActor/<@resource:///org/gnome/shell/ui/environment.js:154:64
                                              @resource:///org/gnome/shell/ui/init.js:21:20

here's the log from fcitx5-diagnose: (parts of it)

## Xim:
1.  `${XMODIFIERS}`:

    Environment variable XMODIFIERS is set to "@im=fcitx" correctly.
    Xim Server Name from Environment variable is fcitx.

2.  XIM_SERVERS on root window:

    Xim server name is the same with that set in the environment variable.

## Qt:
1.  qt4 - `${QT4_IM_MODULE}`:

    Environment variable QT_IM_MODULE is set to "fcitx" correctly.

    **`fcitx5-qt4-immodule-probing` not found.**

2.  qt5 - `${QT_IM_MODULE}`:

    Environment variable QT_IM_MODULE is set to "fcitx" correctly.

    **`fcitx5-qt5-immodule-probing` not found.**

3.  qt6 - `${QT_IM_MODULE}`:

    Environment variable QT_IM_MODULE is set to "fcitx" correctly.

    Using fcitx5-qt6-immodule-probing to check the actual im module to be used under current environment:

        QT_QPA_PLATFORM=wayland
        QT_IM_MODULE=fcitx
        IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContext

4.  Qt IM module files:

    Found fcitx5 im module for qt6: `/lib/x86_64-linux-gnu/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so`.
    Found unknown fcitx qt module: `/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_fcitx5.so`.
    Found fcitx5 qt6 module: `/lib/x86_64-linux-gnu/fcitx5/qt6/libfcitx-quickphrase-editor5.so`.

    Following error may not be accurate because guessing Qt version from path depends on how your distribution packages Qt. It is not a critical error if you do not use any Qt application with certain version of Qt or you are using text-input support by Qt under Wayland.
    **Cannot find fcitx5 input method module for Qt4.**
    **Cannot find fcitx5 input method module for Qt5.**

## Gtk:
1.  gtk - `${GTK_IM_MODULE}`:

    Environment variable GTK_IM_MODULE is set to "fcitx" correctly.

    **`fcitx5-gtk2-immodule-probing` not found.**

    **`fcitx5-gtk3-immodule-probing` not found.**

    **`fcitx5-gtk4-immodule-probing` not found.**

However, I switched my Gnome window system to X11, works perfectfine!! but normally I want to use wayland...

image

hypertextPreprocessor commented 2 weeks ago

Well. You could laugh at how stubborn I am ,so inisted ,But finally solved the probelm myself without konwing how, from the recall I just have the two steps movement on my system:

  1. config fcitx5 autostart right after system booted thorugh cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart
  2. install gtk im module by apt install fcitx5-frontend-gtk2 install fcitx5-frontend-gtk3
  3. reboot system and now , dah dah.... image
kevinhendricks commented 2 weeks ago

Glad to hear it was a system configuration issue and not Sigil related.