fcitx5 не работает в приложениях electron/Chromium на Ubuntu 24.04, GNOME wayland.

Вопрос или проблема

Мой недавно установленный метод установки fcitx5 для китайского языка не работает в приложениях на базе Electron. (Я могу вводить только латинские символы, и кажется, что метод ввода не принимает мой ввод.) Я использую Ubuntu 24.04 и GNOME 46.

Примечание: Я добавил --enable-wayland-ime --ozone-platform-hint=wayland --enable-features=UseOzonePlatform для работы в Wayland. Удаление этих флагов заставляет fcitx5 работать, но они мне нужны, так как я использую дробное масштабирование, которое плохо работает в XWayland.

Я протестировал некоторые другие приложения, не основанные на Electron, такие как Evince и Nautilus, и fcitx5 работает правильно.

Я установил необходимые переменные окружения и установил kimpanel по инструкциям здесь. Я также запустил im-config и выбрал fcitx5.

  • /etc/environment:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
  • результат fcitx5-diagnose
    (Примечание: некоторая личная информация удалена, спрашивайте, если это необходимо для решения проблемы.)
  1. uname -a:
    [удалено, спрашивайте, если это необходимо]

  2. lsb_release -a:

     Distributor ID: Ubuntu
     Description:    Ubuntu 24.04.1 LTS
     Release:    24.04
     Codename:   noble
    
  3. lsb_release -d:

    Description:    Ubuntu 24.04.1 LTS
    
  4. /etc/lsb-release:

    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=24.04
    DISTRIB_CODENAME=noble
    DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS"
    
  5. /etc/os-release:

    PRETTY_NAME="Ubuntu 24.04.1 LTS"
    NAME="Ubuntu"
    VERSION_ID="24.04"
    VERSION="24.04.1 LTS (Noble Numbat)"
    VERSION_CODENAME=noble
    ID=ubuntu
    ID_LIKE=debian
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    UBUNTU_CODENAME=noble
    LOGO=ubuntu-logo
    
  6. Рабочая среда:

    Рабочая среда: gnome3.

  7. Тип XDG сессии:

    XDG_SESSION_TYPE='wayland'
    
  8. Версия Bash:

    BASH_VERSION='5.2.21(1)-release'
    

Окружение:

  1. DISPLAY:

    DISPLAY=':0'
    
    
    WAYLAND_DISPLAY='wayland-0'
    
  2. Клавиатурная раскладка:

    1. setxkbmap:

      WARNING: Running setxkbmap against an Xwayland server
      xkb_keymap {
          xkb_keycodes  { include "evdev+aliases(qwerty)" };
          xkb_types     { include "complete"  };
          xkb_compat    { include "complete"  };
          xkb_symbols   { include "pc+us+inet(evdev)" };
          xkb_geometry  { include "pc(pc105)" };
      };
      
    2. xprop:

      _XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""
      
  3. Языковые настройки:

    1. Доступные языковые настройки:

      C
      C.utf8
      en_AG
      en_AG.utf8
      en_AU.utf8
      en_BW.utf8
      en_CA.utf8
      en_DK.utf8
      en_GB.utf8
      en_HK.utf8
      en_IE.utf8
      en_IL
      en_IL.utf8
      en_IN
      en_IN.utf8
      en_NG
      en_NG.utf8
      en_NZ.utf8
      en_PH.utf8
      en_SG.utf8
      en_US.utf8
      en_ZA.utf8
      en_ZM
      en_ZM.utf8
      en_ZW.utf8
      POSIX
      zh_CN.utf8
      zh_SG.utf8
      
    2. Текущие языковые настройки:

      LANG=zh_CN.UTF-8
      LANGUAGE=zh_CN:en_US:en
      LC_CTYPE="zh_CN.UTF-8"
      LC_NUMERIC=zh_CN.UTF-8
      LC_TIME=zh_CN.UTF-8
      LC_COLLATE="zh_CN.UTF-8"
      LC_MONETARY=zh_CN.UTF-8
      LC_MESSAGES="zh_CN.UTF-8"
      LC_PAPER=zh_CN.UTF-8
      LC_NAME=zh_CN.UTF-8
      LC_ADDRESS=zh_CN.UTF-8
      LC_TELEPHONE=zh_CN.UTF-8
      LC_MEASUREMENT=zh_CN.UTF-8
      LC_IDENTIFICATION=zh_CN.UTF-8
      LC_ALL=
      
  4. Каталоги:

    1. Домашний каталог:

      /home/[my username, удалено]
      
    2. ${XDG_CONFIG_HOME}:

      Переменная окружения XDG_CONFIG_HOME не установлена.

      Текущее значение XDG_CONFIG_HOME это ~/.config (/home/[my username]/.config).

    3. Каталог настроек Fcitx5:

      Текущий каталог настроек fcitx5 это ~/.config/fcitx5 (/home/[my username]/.config/fcitx5).

  5. Текущий пользователь:

    Скрипт запущен от имени [my username] (1000).

Состояние Fcitx:

  1. Исполняемый файл:

    fcitx5 найден в /usr/bin/fcitx5.

  2. Версия:

    Версия Fcitx: 5.1.7

  3. Процесс:

    Найден 1 процесс fcitx5:

       3563 fcitx5
    
  4. fcitx5-remote:

    fcitx5-remote работает нормально.

  5. Интерфейс DBus:

    Используйте dbus-send для проверки dbus.

    Владелец имени DBus org.fcitx.Fcitx5 это :1.85.

    Владелец PID имени DBus org.fcitx.Fcitx5 это 3563.

    Отладочная информация от dbus:

       Group [x11::0] has 0 InputContext(s)
    Group [wayland:] has 5 InputContext(s)
      IC [fee9340d9d2349d2aeccfa71867efada] program:org.gnome.Nautilus frontend:dbus cap:4001000032 focus:0
      IC [8d946ad303c04e809ba570a2b4af7dfd] program:gnome-terminal-server frontend:dbus cap:6001000032 focus:1
      IC [f2f7df07339d48f1b19644170f0395a3] program:org.gnome.Nautilus frontend:dbus cap:4001021072 focus:0
      IC [b6b2642c4b834c929777fa14db5fc868] program:sublime_text frontend:dbus cap:6001000020 focus:0
      IC [9f1f250ef47d4680aa8df4f539960021] program: frontend:ibus cap:52 focus:0
    Input Context without group
    

Конфигурация Fcitx:

  1. Инструмент конфигурации:

    fcitx5-configtool найден в /usr/bin/fcitx5-configtool.

  2. Qt конфигурационный интерфейс:

    fcitx5-config-qt найден в /usr/bin/fcitx5-config-qt.

  3. KDE конфигурационный интерфейс:

    kcmshell5 не найден.

Настройки переднего плана:

Проверяемые переменные окружения могут показать только окружение текущей командной строки. Есть вероятность, что ваша окружение не применено ко всему рабочему столу. Вы можете использовать xargs -0 -L1 /proc/$PID/environ для проверки переменных окружения процесса, который не работает должным образом.

Xim:

  1. ${XMODIFIERS}:

    Переменная окружения XMODIFIERS корректно установлена на “@im=fcitx”.
    Имя службы Xim, полученное из переменной окружения, это fcitx.

  2. Службы XIM на корневом окне:

    Имя службы XIM совпадает с указанным в переменной окружения.

Qt:

  1. qt4 – ${QT4_IM_MODULE}:

    Переменная окружения QT_IM_MODULE корректно установлена на “fcitx”.

    fcitx5-qt4-immodule-probing не найден.

  2. qt5 – ${QT_IM_MODULE}:

    Переменная окружения QT_IM_MODULE корректно установлена на “fcitx”.

    Используйте fcitx5-qt5-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:

    QT_QPA_PLATFORM=wayland
    QT_IM_MODULE=fcitx
    IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContext
    
  3. qt6 – ${QT_IM_MODULE}:

    Переменная окружения QT_IM_MODULE корректно установлена на “fcitx”.

    Используйте fcitx5-qt6-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:

    QT_QPA_PLATFORM=wayland
    QT_IM_MODULE=fcitx
    IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContext
    
  4. Файлы модуля ввода Qt:

    Найден Qt5 модуль ввода fcitx5: /lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so.
    Найден Qt6 модуль ввода fcitx5: /lib/x86_64-linux-gnu/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so.
    Найден модуль fcitx5 qt6: /lib/x86_64-linux-gnu/fcitx5/qt6/libfcitx-quickphrase-editor5.so.

    Следующие ошибки могут быть неточными, так как угадать путь соответствующей версии Qt зависит от того, как Qt упакован в дистрибутиве. Если вы не используете каких-либо программ соответствующей версии Qt или используете текстовый ввод Qt в Wayland, следущие ошибки не являются критичными.Не найдены модули ввода для Qt4 fcitx5.

Gtk:

  1. gtk – ${GTK_IM_MODULE}:

    Переменная окружения GTK_IM_MODULE корректно установлена на “fcitx”.

    Используйте fcitx5-gtk2-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:

    GTK_IM_MODULE=fcitx
    

    Используйте fcitx5-gtk3-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:

    GTK_IM_MODULE=fcitx
    

    Используйте fcitx5-gtk4-immodule-probing для проверки реально используемого модуля ввода в текущем окружении:

    GTK_IM_MODULE=fcitx
    
  2. gtk-query-immodules:

    1. gtk 2:

      Не найден gtk-query-immodules для gtk 2.

      Не найден модуль ввода для gtk 2 fcitx5.

    2. gtk 3:

      Не найден gtk-query-immodules для gtk 3.

      Не найден модуль ввода для gtk 3 fcitx5.

  3. Кэш модуля ввода Gtk:

    1. gtk 2:

      Кэш модуля ввода gtk 2.24.33 найден в /lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache.
      Строка с версией:

      # Создано /usr/lib/x86_64-linux-gnu/libgtk2.0-0t64/gtk-query-immodules-2.0 из gtk+-2.24.33
      

      Модуль ввода fcitx5 найден для gtk 2.24.33.

      "/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-fcitx5.so" 
      "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      
    2. gtk 3:

      Кэш модуля ввода gtk 3.24.41 найден в /lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache.
      Строка с версией:

      # Создано /usr/lib/x86_64-linux-gnu/libgtk-3-0t64/gtk-query-immodules-3.0 из gtk+-3.24.41
      

      Модуль ввода fcitx5 найден для gtk 3.24.41.

      "/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-fcitx5.so" 
      "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
      

      Кэш модуля ввода gtk 3.24.41 найден в /lib/i386-linux-gnu/gtk-3.0/3.0.0/immodules.cache.
      Строка с версией:

      # Создано /usr/lib/i386-linux-gnu/libgtk-3-0t64/gtk-query-immodules-3.0 из gtk+-3.24.41
      

      Модуль fcitx5 не найден в кэше /lib/i386-linux-gnu/gtk-3.0/3.0.0/immodules.cache

  4. Файлы модуля ввода Gtk:

    1. gtk 2:

      Все найденные файлы модулей ввода Gtk 2 доступны.

    2. gtk 3:

      Все найденные файлы модулей ввода Gtk 3 доступны.

    3. gtk 4:

      Все найденные файлы модулей ввода Gtk 4 доступны.

Конфигурация:

Модули Fcitx:

  1. Каталог конфигурационных файлов модулей:

    Найден каталог конфигурационных файлов модулей fcitx5: /usr/share/fcitx5/addon.

  2. Список модулей:

    1. Найдено 30 активированных модулей:

      Chewing 5.1.1
      Simplified and Traditional Chinese Translation 5.1.3
      Classic User Interface 5.1.7
      Clipboard 5.1.7
      Cloud Pinyin 5.1.3
      DBus 5.1.7
      DBus Frontend 5.1.7
      Emoji 5.1.7
      Fcitx4 Frontend 5.1.7
      Full width character 5.1.3
      IBus Frontend 5.1.7
      Lua IME API 5.0.12
      Input method selector 5.1.7
      Keyboard 5.1.7
      KDE Input Method Panel 5.1.7
      Lua Addon Loader 5.0.12
      Status Notifier 5.1.7
      Notification 5.1.7
      Pinyin 5.1.3
      Extra Pinyin functionality 5.1.3
      Punctuation 5.1.3
      Quick Phrase 5.1.7
      Spell 5.1.7
      Table 5.1.3
      Unicode 5.1.7
      DBus Virtual Keyboard 5.1.7
      Wayland 5.1.7
      Wayland Input method frontend 5.1.7
      XCB 5.1.7
      X Input Method Frontend 5.1.7
      
    2. Найдено 0 отключенных модулей:

  3. Библиотека модулей:

    Все библиотеки, необходимые для модулей, найдены.

  4. Пользовательский интерфейс:

    Найдено 3 активированных модуля пользовательского интерфейса:

    Classic User Interface
    KDE Input Method Panel
    DBus Virtual Keyboard
    

    Процесс Kimpanel:

       3229 /usr/bin/gnome-shell
    

Методы ввода:

  1. $HOME/.config/fcitx5/profile:

    [Groups/0]
    # Имя группы
    Name=По умолчанию
    # Раскладка
    Default Layout=us
    # Метод ввода по умолчанию
    DefaultIM=pinyin
    
    [Groups/0/Items/0]
    # Имя
    Name=keyboard-us
    # Раскладка
    Layout=
    
    [Groups/0/Items/1]
    # Имя
    Name=pinyin
    # Раскладка
    Layout=
    
    [GroupOrder]
    0=По умолчанию
    

Лог:

  1. date:

     2025年 01月 04日 星期六 14:15:03 CST
    
  2. $HOME/.config/fcitx5/crash.log:

    $HOME/.config/fcitx5/crash.log не найден.

Ответ или решение

Когда вы сталкиваетесь с проблемой работы метода ввода fcitx5 в приложениях на основе Electron/Chromium в Ubuntu 24.04 под Wayland, важно учитывать несколько ключевых аспектов для успешной настройки и решения проблемы. Давайте подробно рассмотрим ситуацию и предложим варианты решений.

Описание проблемы

На вашем компьютере установлена Ubuntu 24.04 с GNOME 46, и вы используете среду Wayland. Вы сталкиваетесь с проблемой, когда китайский метод ввода fcitx5 не работает в приложениях, основанных на Electron и Chromium, хотя работает в других приложениях, таких как Evince и Nautilus. Применение флагов --enable-wayland-ime --ozone-platform-hint=wayland --enable-features=UseOzonePlatform было необходимо для работы с дробным масштабированием, однако, это привело к проблемам с методом ввода.

Анализ

  1. Параметры среды: Ваши настройки среды включают правильные переменные для интеграции fcitx5, такие как GTK_IM_MODULE=fcitx, QT_IM_MODULE=fcitx, и XMODIFIERS=@im=fcitx. Это указывает на то, что основная конфигурация сделана правильно.

  2. Wayland и Electron/Chromium: Использование Wayland в сочетании с Electron/Chromium может вызывать проблемы, так как Wayland и X11 имеют разные методы обработки ввода. Electron и Chromium все еще могут иметь недоработки в поддержке IME под Wayland.

  3. Флаги запуска: Флаги --enable-wayland-ime --ozone-platform-hint=wayland --enable-features=UseOzonePlatform необходимы для работы приложения на Wayland, но могут влиять на работу IME.

Возможные решения

  1. Обновление Electron/Chromium: Проверьте, доступны ли обновления для Electron или Chromium. Новые релизы могут содержать улучшения совместимости с Wayland и IME.

  2. Использование альтернативных методов ввода: Если fcitx5 не работает в специфических приложениях, попробуйте альтернативы, такие как ibus, если это возможно.

  3. Отладка среды Wayland: Используйте xprop и xev для проверки событий ввода и убедитесь, что соответствующие события проходят через Wayland корректно.

  4. Тестирование окружения IME: Выполните проверку переменных окружения в работающем процессе, как предложено в вашей конфигурации, используя xargs на /proc/$PID/environ, чтобы убедиться, что все переменные установлены правильно во всех контекстах.

  5. Конфигурация Electron/Chromium: Возможно, параметров самого приложения недостаточно. Попробуйте внести изменения в файл конфигурации ~/.config/electron-flags.conf, добавив туда нужные флаги.

Заключение

Успешная интеграция fcitx5 в среду Wayland с приложениями на базе Electron и Chromium требует всестороннего подхода. Убедитесь, что все системные компоненты и приложения обновлены до последних версий, и перепроверьте правильность всех конфигураций. Этот подход позволит максимально использовать преимущества вашего рабочего окружения и обеспечить функционирование всех необходимых методов ввода.

Оцените материал
Добавить комментарий

Капча загружается...