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

fcitx5 会截断发送给终端的按键序列 #676

Closed
yyy33 opened this issue Nov 29, 2022 · 2 comments
Closed

fcitx5 会截断发送给终端的按键序列 #676

yyy33 opened this issue Nov 29, 2022 · 2 comments

Comments

@yyy33
Copy link

yyy33 commented Nov 29, 2022

Describe the bug
我正在使用 keymapper 来映射我的键盘,当我绑定一个按键来向终端发送一些按键序列时,这些序列的一部分会被fcitx5截断

To Reproduce

  1. 安装 keymapper
    yay -S keymapper-git

2.这是 keymapper.conf

tt = S H I F T Minus C R K A B C D E F G H I J K
[system="Linux" class="Alacritty" modifier="ShiftLeft"]
Enter >>  tt
  1. 配置 并启动 keymapper
    ls -sf keymapper.conf ~/.config/
    sudo systemctl enable keymapperd
    sudo systemctl restart keymapperd
    killall keymapper &>/dev/null
    keymapper &!

  1. 安装 alacritty并启动
    sudo pacman -S --noconfirm alacritty && alacritty

  1. 现在在alacritty中按 shift-enter, 按键被截断为 shift-crkabc

Expected behavior
应该打印`` shift-crkabcdefghijk

Desktop (please complete the following information):

  • Desktop: AwesomeWm (没有使用de)
  • Display server type: X11
  • The output of fcitx5-diagnose if possible.
❯ fcitx5-diagnose
# 系统信息:
1.  `uname -a`:

        Linux x550vc-yyy 6.0.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 29 Oct 2022 14:08:39 +0000 x86
_64 GNU/Linux

4.  `lsb_release`:

    `lsb_release` 未找到.

7.  `/etc/lsb-release`:

    `/etc/lsb-release` 未找到.

8.  `/etc/os-release`:

        NAME="Arch Linux"
        PRETTY_NAME="Arch Linux"
        ID=arch
        BUILD_ID=rolling
        ANSI_COLOR="38;2;23;147;209"
        HOME_URL="https://archlinux.org/"
        DOCUMENTATION_URL="https://wiki.archlinux.org/"
        SUPPORT_URL="https://bbs.archlinux.org/"
        BUG_REPORT_URL="https://bugs.archlinux.org/"
        PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
        LOGO=archlinux-logo

9.  桌面环境:

    无法确定桌面环境。

10.  XDG 会话类型:

        XDG_SESSION_TYPE='x11'

11.  Bash 版本:

        BASH_VERSION='5.1.16(1)-release'

# 环境:
1.  DISPLAY:

        DISPLAY=':0'


        WAYLAND_DISPLAY=''

2.  键盘布局:

    1.  `setxkbmap`:

            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", "", ""

4.  Locale:

    1.  全部可用 locale:

            C
            C.UTF-8
            en_US.utf8
            POSIX
            zh_CN.utf8

    2.  当前 locale:

            LANG=zh_CN.UTF-8
            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=

5.  目录:

    1.  主目录:

            /home/yyy

    2.  `${XDG_CONFIG_HOME}`:

        环境变量 `XDG_CONFIG_HOME` 没有设定。

        `XDG_CONFIG_HOME` 的当前值是 `~/.config` (`/home/yyy/.config`)。

    3.  Fcitx5 设置目录:

        当前 fcitx5 设置目录是 `/mnt/64d0d217-1a4c-4258-860b-02fbc3ade743/note/fcitx5/config/fcit
x5` (`/home/yyy/.config/fcitx5`)。

6.  当前用户:

    脚本作为 yyy (1000) 运行。

# Fcitx 状态:
1.  可执行文件:

    在 `/usr/bin/fcitx5` 找到了 fcitx5。

2.  版本:

    Fcitx 版本: `5.0.21`

3.  进程:

    找到了 1 个 fcitx5 进程:

           2339 fcitx5

4.  `fcitx5-remote`:

    `fcitx5-remote` 工作正常。

5.  DBus 界面:

    使用 `dbus-send` 来检查 dbus。

    DBus 名称 `org.fcitx.Fcitx5` 的所有者是 `:1.21`。

    DBus 名称 `org.fcitx.Fcitx5` 的 PID 所有者是 `2339`。

    来自 dbus 的调试信息:

           Group [x11::0] has 12 InputContext(s)
          IC [8efe0bf4ed97491c82050658d8a52265] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [c8030b8acdf54da8a4a509b54d621a46] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [288f7f8bfcf546c5ad844c7b663d12f1] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [6b8e2bcd96e943fd82f72c2aecf6d35d] program:chromium frontend:dbus cap:6000000012 foc
us:0
          IC [8199b8e0f7ff47879927f7f35df9edad] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [c26dc87652c4478b838bda956c841f81] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [4c46842d1e634a72bd24fd3414ed7a19] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [0bdc22389f5141cbb3e3e0aad707b9d6] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [f448555e56e14ef19ea370f15de4a562] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [a7584d25ac0e4a4cafae28ba0f6a6448] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [29abbab362da41d2b6b4d1ab28105dab] program:variety frontend:dbus cap:6000000012 focu
s:0
          IC [d75add86ad004b74b9a327531cde8a89] program:alacritty frontend:xim cap:4000000000 foc
us:1
        Input Context without group

# Fcitx 配置界面:
1.  配置工具封装:

    在 `/usr/bin/fcitx5-configtool` 找到了 fcitx5-configtool。

2.  Qt 的配置界面:

    在 `/usr/bin/fcitx5-config-qt` 找到了 `fcitx5-config-qt`。

3.  KDE 的配置界面:

    **`kcmshell5` 未找到.**

# 前端设置:
## Xim:
1.  `${XMODIFIERS}`:

    环境变量 XMODIFIERS 已经正确地设为了“@im=fcitx”。
    从环境变量中获取的 Xim 服务名称为 fcitx.

2.  根窗口上的 XIM_SERVERS:

    Xim 服务的名称与环境变量中设置的相同。

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

    环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。

2.  qt5 - `${QT_IM_MODULE}`:

    环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。

3.  Qt 输入法模块文件:

    找到了 fcitx5 的 qt 输入法模块:`/usr/lib/qt/plugins/platforminputcontexts/libfcitx5platformi
nputcontextplugin.so`。
    找到了未知的 fcitx qt 模块:`/usr/lib/qt/plugins/kcms/kcm_fcitx5.so`。
    找到了 fcitx5 qt5 模块:`/usr/lib/fcitx5/qt5/libfcitx-quickphrase-editor5.so`。
    找到了 fcitx5 的 qt6 输入法模块:`/usr/lib/qt6/plugins/platforminputcontexts/libfcitx5platfor
minputcontextplugin.so`。

    下列错误也许并不准确,因为对 Qt 版本的猜测取决于发行版如何打包 Qt。如果您不使用任何对应版本的
 Qt 程序,或者在 Wayland 下使用 Qt 的 text-input 支持,下列错误也也不是严重问题。
    **无法找到 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

        已找到 gtk `2.24.33` 的 fcitx5 输入法模块。

            "/usr/lib/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:

        在 `/usr/bin/gtk-query-immodules-3.0` 找到了 gtk `3.24.34` 的 `gtk-query-immodules`。
        版本行:

            # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.34

        已找到 gtk `3.24.34` 的 fcitx5 输入法模块。

            "/usr/lib/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/lib/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.33` 的输入法模块缓存。
        版本行:

            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.33

        已找到 gtk `2.24.33` 的 fcitx5 输入法模块。

            "/usr/lib/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:

        在 `/usr/lib/gtk-3.0/3.0.0/immodules.cache` 找到了 gtk `3.24.34` 的输入法模块缓存。
        版本行:

            # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.34

        已找到 gtk `3.24.34` 的 fcitx5 输入法模块。

            "/usr/lib/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`。

2.  插件列表:

    1.  找到了 22 个已启用的插件:

            Classic User Interface 5.0.21
            Clipboard 5.0.21
            DBus 5.0.21
            DBus Frontend 5.0.21
            Emoji 5.0.21
            Fcitx4 Frontend 5.0.21
            IBus Frontend 5.0.21
            Lua IME API 5.0.10
            Input method selector 5.0.21
            Keyboard 5.0.21
            KDE Input Method Panel 5.0.21
            Lua Addon Loader 5.0.10
            Status Notifier 5.0.21
            Notification 5.0.21
            Quick Phrase 5.0.21
            Rime 5.0.15
            Spell 5.0.21
            Unicode 5.0.21
            Wayland 5.0.21
            Wayland Input method frontend 5.0.21
            XCB 5.0.21
            X Input Method Frontend 5.0.21

    2.  找到了 0 个被禁用的插件:

3.  插件库: 

    所有插件所需的库都被找到。

4.  用户界面:

    找到了 2 个已启用的用户界面插件:

        Classic User Interface
        KDE Input Method Panel

## 输入法:
1.  `/home/yyy/.config/fcitx5/profile`:

        [Groups/0]
        # Group Name
        Name=默认
        # Layout
        Default Layout=us
        # Default Input Method
        DefaultIM=rime

        [Groups/0/Items/0]
        # Name
        Name=keyboard-us
        # Layout
        Layout=

        [Groups/0/Items/1]
        # Name
        Name=rime
        # Layout
        Layout=

        [GroupOrder]
        0=默认

# 日志:
1.  `date`:

        2022年 11月 29日 星期二 12:06:19 CST

2.  `/home/yyy/.config/fcitx5/crash.log`:

    `/home/yyy/.config/fcitx5/crash.log` 未找到.

**警告:fcitx5-diagnose 的输出可能包含敏感信息,包括发行版名称,内核版本,正在运行的程序名称等
*

**尽管这些信息对于开发者诊断问题有帮助,请在公开发送到在线网站前检查并且根据需要移除的对应信息
*

╭─░▒▓   yyy@x550vc-yyy   0.93   5.11G   71%   10.10.10.248   42.3.27.233 ▓▒░    
├─░▒▓  5s     ~ ▓▒░                                                                    
╰─❯ 

Additional context
houmain/keymapper#54

@wengxt
Copy link
Member

wengxt commented Dec 1, 2022

测试没有问题。
你安装 xcb-imdkit 1.0.4 了吗。

2.mp4

@wengxt wengxt closed this as completed Dec 1, 2022
@yyy33
Copy link
Author

yyy33 commented Dec 2, 2022

xcb-imdkit 1.0.4

多谢,我升级到xcb-imdkit 1.0.4`后 按键序列不会被截断了

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

2 participants