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

gentoo+sway无法在WPS、foot、dingtalk应用中显示输入法候选窗口 #455

Closed
loaden opened this issue Mar 5, 2022 · 8 comments
Closed

Comments

@loaden
Copy link

loaden commented Mar 5, 2022

gentoo+sway无法在WPS、foot、dingtalk应用中显示输入法候选窗口,但可以输入汉字。
其他应用一切正常。
.bash_profile 中的相关环境变量设置:

export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_DESKTOP=sway
export INPUT_METHOD=fcitx
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export SDL_IM_MODULE=fcitx
export MOZ_DBUS_REMOTE=1
export QT_STYLE_OVERRIDE=adwaita-dark
export GTK_USE_PORTAL=0

# Update systemd and D-Bus envs
dbus-update-activation-environment --systemd --all

# swaywm
[ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ] && exec sway

fcitx5-diagnose 输出:
fcitx5-diagnose.log

# 系统信息:
1.  `uname -a`:
        Linux lucky 5.15.23-gentoo #23 SMP PREEMPT Fri Feb 25 11:09:20 CST 2022 x86_64 Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz GenuineIntel GNU/Linux

5.  桌面环境:
    无法确定桌面环境。

6.  XDG 会话类型:
        XDG_SESSION_TYPE='wayland'

# 环境:
1.  DISPLAY:
        DISPLAY=':0'
        WAYLAND_DISPLAY='wayland-1'

2.  键盘布局:
    1.  `setxkbmap`:
        `setxkbmap` 未找到.

    2.  `xprop`:
            _XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""

3.  Locale:
    1.  全部可用 locale:
            C
            C.utf8
            POSIX
            zh_CN.utf8

    2.  当前 locale:
            LANG=zh_CN.utf8

# Fcitx 状态:
1.  可执行文件:
    在 `/usr/bin/fcitx5` 找到了 fcitx5。

2.  版本:
    Fcitx 版本: `5.0.13`

5.  DBus 界面:
    使用 `dbus-send` 来检查 dbus。
    DBus 名称 `org.fcitx.Fcitx5` 的所有者是 `:1.13`。
    DBus 名称 `org.fcitx.Fcitx5` 的 PID 所有者是 `490`。
    来自 dbus 的调试信息:
           Group [wayland:] has 9 InputContext(s)
          IC [9a74a1b77e5941c8a6696978425b549b] program:obs frontend:dbus cap:e001800072 focus:0
          IC [2d3281cd77aa4d9d94ec732b60c4339b] program:firefox frontend:dbus cap:e001000012 focus:0
          IC [1868cc566cb84677898989dcbe8a9ed4] program:thunar frontend:dbus cap:e001000012 focus:0
          IC [ba012ed4c1c24dfb8453339454cba50b] program:firefox frontend:dbus cap:e001000012 focus:0
          IC [fe29419c734f4dcda4c2234abcd76153] program:firefox frontend:dbus cap:e001000012 focus:0
          IC [7931d70e80a1485bbaff96fd94d1cbf7] program:firefox frontend:dbus cap:e001000052 focus:0
          IC [2d3e42118e9c42f486bdc27e0fa6903a] program:featherpad frontend:dbus cap:e801800072 focus:0
          IC [a5764b0903954961bc9063a0666f9531] program:thunar frontend:dbus cap:e001000052 focus:0
          IC [0962d333062745d09409b44729a70aa6] program: frontend:wayland_v2 cap:100000052 focus:1
        Input Context without group
          IC [4aed7dad032c4c5a8ab26f0c91367b6b] program:code frontend:dbus focus:0

# 前端设置:
## Xim:
1.  `${XMODIFIERS}`:
    环境变量 XMODIFIERS 已经正确地设为了“@im=fcitx”。
    从环境变量中获取的 Xim 服务名称为 fcitx.

2.  根窗口上的 XIM_SERVERS:
    **无法在根窗口找到 xim_server。**

## Qt:
1.  qt4 - `${QT4_IM_MODULE}`:
    环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。

2.  qt5 - `${QT_IM_MODULE}`:
    环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。

3.  Qt 输入法模块文件:
    找到了 fcitx5 的 qt5 输入法模块:`/usr/lib64/qt5/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so`。
    找到了 fcitx5 qt5 模块:`/usr/lib64/fcitx5/qt5/libfcitx-quickphrase-editor5.so`。
    **无法找到 Qt4 的 fcitx5 输入法模块。**

## Gtk:
1.  gtk - `${GTK_IM_MODULE}`:
    环境变量 GTK_IM_MODULE 已经正确地设为了“fcitx”。

2.  `gtk-query-immodules`:
    1.  gtk 2:
        在 `/usr/bin/gtk-query-immodules-2.0` 找到了 gtk `2.24.33` 的 `gtk-query-immodules`。
        版本行:
            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.33
        **无法在 `/usr/bin/gtk-query-immodules-2.0` 的输出中找到 fcitx5。**
        **无法找到 gtk 2 的 fcitx5 输入法模块。**

    2.  gtk 3:
        在 `/usr/bin/gtk-query-immodules-3.0` 找到了 gtk `3.24.30` 的 `gtk-query-immodules`。
        版本行:
            # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.30
        已找到 gtk `3.24.30` 的 fcitx5 输入法模块。
            "/usr/lib64/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:*" 

3.  Gtk 输入法模块缓存:
    1.  gtk 2:
        在 `/usr/lib64/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.33` 的输入法模块缓存。
        版本行:
            # Created by /usr/bin/x86_64-pc-linux-gnu-gtk-query-immodules-2.0 from gtk+-2.24.33
        已找到 gtk `2.24.33` 的 fcitx5 输入法模块。
            # ModulesPath = /var/tmp/portage/._unmerge_/app-i18n/fcitx5-gtk-5.0.11/homedir/.gtk-2.0/2.10.0/x86_64-pc-linux-gnu/immodules:/var/tmp/portage/._unmerge_/app-i18n/fcitx5-gtk-5.0.11/homedir/.gtk-2.0/2.10.0/immodules:/var/tmp/portage/._unmerge_/app-i18n/fcitx5-gtk-5.0.11/homedir/.gtk-2.0/x86_64-pc-linux-gnu/immodules:/var/tmp/portage/._unmerge_/app-i18n/fcitx5-gtk-5.0.11/homedir/.gtk-2.0/immodules:/usr/lib64/gtk-2.0/2.10.0/x86_64-pc-linux-gnu/immodules:/usr/lib64/gtk-2.0/2.10.0/immodules:/usr/lib64/gtk-2.0/x86_64-pc-linux-gnu/immodules:/usr/lib64/gtk-2.0/immodules

    2.  gtk 3:
        在 `/usr/lib64/gtk-3.0/3.0.0/immodules.cache` 找到了 gtk `3.24.30` 的输入法模块缓存。
        版本行:
            # Created by /usr/bin/x86_64-pc-linux-gnu-gtk-query-immodules-3.0 from gtk+-3.24.30
        已找到 gtk `3.24.30` 的 fcitx5 输入法模块。
            "/usr/lib64/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:*" 

    3.  gtk 4:
        **无法找到 gtk 4 的输入法模块缓存**
        **无法在缓存中找到 gtk 4 的 fcitx5 输入法模块。**

4.  Gtk 输入法模块文件:
    1.  gtk 2:
        找到的全部 Gtk 2 输入法模块文件均存在。

    2.  gtk 3:
        找到的全部 Gtk 3 输入法模块文件均存在。

    3.  gtk 4:
        找到的全部 Gtk 4 输入法模块文件均存在。

# 配置:
## Fcitx 插件:
1.  插件配置文件目录:
    找到了 fcitx5 的插件配置目录:`/usr/share/fcitx5/addon`。
@loaden
Copy link
Author

loaden commented Mar 5, 2022

我尝试添加fcitx5-gtk的gtk2, gtk4支持,但结果发现GTK2程序leafpad也同样出现不显示输入法候选窗口的问题。
而gtk4的模块则没找到:

    3.  gtk 4:
        **无法找到 gtk 4 的输入法模块缓存**
        **无法在缓存中找到 gtk 4 的 fcitx5 输入法模块。**

这是我系统上fcitx5-gtk的USE情况:

gentoo@lucky ~ $ equery u fcitx5-gtk 
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for app-i18n/fcitx5-gtk-5.0.12:
 U I
 + + gtk2          : Install input method module for GTK+ 2 
 + + gtk3          : Enable support for GTK+3 
 + + gtk4          : Enable support for GTK 4 
 + + introspection : Add support for GObject based introspection
 + + snooper       : Enable key snooper for gtk app 

@loaden
Copy link
Author

loaden commented Mar 6, 2022

换成Flatpak的不稳定版本,除了foot仍然不显示输入法窗口外,钉钉、WPS都正常了。所以,这两者之间有什么联系呢?
我的Gentoo的编译USE:

gentoo@lucky /etc/portage/package.use $ cat fcitx*
app-i18n/fcitx5-gtk gtk4
app-i18n/fcitx5-meta -chinese-addons -configtool rime
app-i18n/fcitx5-qt onlyplugin qt5 qt

@wengxt
Copy link
Member

wengxt commented Mar 8, 2022

你的 gtk2,gtk3 都开了 X11 吗?

fcitx5 的 X11 呢?

@loaden
Copy link
Author

loaden commented Mar 9, 2022

我没有gtk2的应用,都特意避开了。Fcitx5没开X11,这是我开了X的应用与库:

x11-libs/cairo X
x11-libs/gtk+ X
dev-cpp/gtkmm X
>=media-libs/libepoxy-1.5.9-r1 X
>=media-libs/libglvnd-1.4.0 X
>=x11-libs/libxkbcommon-1.3.1 X
media-libs/mesa X
gui-wm/sway X -swaybar
gui-libs/wlroots X

这是我Fcitx5的配置:

gentoo@lucky /etc/portage/package.use $ cat fcitx*
app-i18n/fcitx5-gtk gtk4
app-i18n/fcitx5-meta -chinese-addons -configtool rime
app-i18n/fcitx5-qt onlyplugin qt5

@wengxt
Copy link
Member

wengxt commented Mar 9, 2022

你应该开fcitx5的x11

@wengxt wengxt closed this as completed Mar 9, 2022
@zhangn1985
Copy link

请问,foot不能显示候选窗口的问题解决了吗?是什么方法?

@wengxt
Copy link
Member

wengxt commented Dec 15, 2022

请问,foot不能显示候选窗口的问题解决了吗?是什么方法?

swaywm/sway#7226

https://aur.archlinux.org/packages/sway-im

@zhangn1985
Copy link

了解了,等sway更新。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants