您尚未登录。

#1 2020-03-07 15:16:08

Reverier
会员
所在地: 西安
注册时间: 2020-03-07
帖子: 14
个人网站

安装Bumblebee后fcitx无法在以独显运行的程序中输入中文

问题如题, 由于不想频繁的注销登录, 所以采用了Bumblebee的解决方案. 驱动安装了nvidia和mesa, 没有使用xf86-video-intel这个包, 因为这个驱动会在屏幕录制时导致屏幕撕裂和闪动.
我使用primusrun来以独显运行某些游戏和Davinci Resolve来做一些视频剪辑. 在这些界面内都无法输入中文. 我只能开一个文本编辑器, 以复制粘贴的形式间接输入.
电脑的配置如下:

reverier at Reverier-Arch in ~ 301.670 Kb
↪  neofetch                                  2020年 03月 07日 星期六 14:56:50 CST
                   -`                    reverier@Reverier-Arch 
                  .o+`                   ---------------------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Host: AERO 15 Classic-XA 
               `+oooooo:                 Kernel: 5.5.8-arch1-1 
               -+oooooo+:                Uptime: 20 mins 
             `/:-:++oooo+:               Packages: 1776 (pacman) 
            `/++++/+++++++:              Shell: fish 3.1.0 
           `/++++++++++++++:             Resolution: 1920x1080 
          `/+++ooooooooooooo/`           DE: Plasma 
         ./ooosssso++osssssso+`          WM: KWin 
        .oossssso-````/ossssss+`         WM Theme: K01-d 
       -osssssso.      :ssssssso.        Theme: Layan-dark [GTK2/3] 
      :osssssss/        osssso+++.       Icons: McMojave-circle-dark [GTK2/3] 
     /ossssssss/        +ssssooo/-       Terminal: konsole 
   `/ossssso+/:-        -:/+osssso+-     Terminal Font: Fira Code Retina 18 
  `+sso+:-`                 `.-/+oso:    CPU: Intel i7-9750H (12) @ 4.500GHz 
 `++:.                           `-/+/   GPU: Intel UHD Graphics 630 
 .`                                 `/   GPU: NVIDIA GeForce RTX 2070 Mobile 
                                         Memory: 2750MiB / 15865MiB 
reverier at Reverier-Arch in ~ 301.670 Kb
↪  inxi -Fxxxz                                                                                     2020年 03月 07日 星期六 15:08:22 CST
System:    Host: Reverier-Arch Kernel: 5.5.8-arch1-1 x86_64 bits: 64 compiler: gcc v: 9.2.1 Desktop: KDE Plasma 5.18.2 
           tk: Qt 5.14.1 info: latte-dock wm: kwin_x11 dm: SDDM Distro: Arch Linux 
Machine:   Type: Laptop System: GIGABYTE product: AERO 15 Classic-XA v: N/A serial: <filter> Chassis: type: 10 v: y.y 
           serial: <filter> 
           Mobo: GIGABYTE model: AERO 15 Classic-XA serial: <filter> UEFI: American Megatrends v: B02 date: 03/28/2019 
Battery:   ID-1: BAT1 charge: 94.2 Wh condition: 94.2/94.2 Wh (100%) volts: 16.8/15.2 model: GIGABYTE Aero 15 type: Li-ion 
           serial: <filter> status: Full 
           Device-1: hidpp_battery_0 model: Logitech G304 Lightspeed Wireless Gaming Mouse serial: <filter> 
           charge: 100% (should be ignored) rechargeable: yes status: Discharging 
CPU:       Topology: 6-Core model: Intel Core i7-9750H bits: 64 type: MT MCP arch: Kaby Lake rev: A L2 cache: 12.0 MiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 62431 
           Speed: 844 MHz min/max: 800/4500 MHz Core speeds (MHz): 1: 844 2: 859 3: 895 4: 845 5: 846 6: 899 7: 900 8: 852 
           9: 842 10: 845 11: 887 12: 898 
Graphics:  Device-1: Intel UHD Graphics 630 vendor: Gigabyte driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:3e9b 
           Device-2: NVIDIA TU106M [GeForce RTX 2070 Mobile] vendor: Gigabyte driver: nvidia v: 440.64 bus ID: 01:00.0 
           chip ID: 10de:1f10 
           Display: x11 server: X.Org 1.20.7 driver: modesetting unloaded: vesa alternate: fbdev,intel compositor: kwin_x11 
           resolution: 1920x1080~240Hz 
           OpenGL: renderer: Mesa DRI Intel UHD Graphics 630 (Coffeelake 3x8 GT2) v: 4.6 Mesa 19.3.4 compat-v: 3.0 
           direct render: Yes 
Audio:     Device-1: Intel Cannon Lake PCH cAVS vendor: Gigabyte driver: snd_hda_intel v: kernel bus ID: 00:1f.3 
           chip ID: 8086:a348 
           Device-2: NVIDIA TU106 High Definition Audio vendor: Gigabyte driver: snd_hda_intel v: kernel bus ID: 01:00.1 
           chip ID: 10de:10f9 
           Sound Server: ALSA v: k5.5.8-arch1-1 
Network:   Device-1: Intel Wireless-AC 9560 [Jefferson Peak] vendor: Bigfoot Networks driver: iwlwifi v: kernel port: 5000 
           bus ID: 00:14.3 chip ID: 8086:a370 
           IF: wlo1 state: up mac: <filter> 
           Device-2: Qualcomm Atheros Killer E2500 Gigabit Ethernet vendor: Gigabyte driver: alx v: kernel port: 3000 
           bus ID: 02:00.0 chip ID: 1969:e0b1 
           IF: enp2s0 state: up speed: 100 Mbps duplex: full mac: <filter> 
Drives:    Local Storage: total: 476.94 GiB used: 619.93 GiB (130.0%) 
           ID-1: /dev/nvme0n1 vendor: Intel model: SSDPEKKW512G8 size: 476.94 GiB speed: 31.6 Gb/s lanes: 4 serial: <filter> 
           rev: 004C scheme: GPT 
           ID-2: /dev/nvme1n1 vendor: Western Digital model: WDS100T3X0C-00SJG0 size: 931.51 GiB speed: 31.6 Gb/s lanes: 4 
           serial: <filter> rev: 102000WD scheme: GPT 
Partition: ID-1: / size: 98.98 GiB used: 61.23 GiB (61.9%) fs: ext4 dev: /dev/nvme1n1p7 
           ID-2: /home size: 87.13 GiB used: 48.35 GiB (55.5%) fs: ext4 dev: /dev/nvme1n1p6 
Sensors:   System Temperatures: cpu: 58.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 327 Uptime: 32m Memory: 15.49 GiB used: 2.70 GiB (17.4%) Init: systemd v: 244 Compilers: gcc: 9.2.1 
           clang: 9.0.1 Shell: fish v: 3.1.0 running in: yakuake inxi: 3.0.37 

fcitx安装了fcitx-im软件包组和fcitx-configtool, kcm-fcitx.
.xprofile的配置:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export SAL_USE_VCLPLUGIN=gtk
export LC_ALL="zh_CN.UTF-8"
export XIM_PROGRAM=fcitx
export XIM=fcitx

我尝试在google上搜索相关的问题, 但是什么也没有找到, 似乎大家都没有遇到这个问题, 还是说使用bumblebee的人太少了?
这个问题是无法解决的已知bug吗? 还是我的配置有问题, 缺少某些软件包?

最近编辑记录 Reverier (2020-03-07 15:17:13)


Org: XDSEC@XDU

离线

#2 2020-03-07 15:34:39

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,443
个人网站

Re: 安装Bumblebee后fcitx无法在以独显运行的程序中输入中文

NVIDIA 官方支持的 prime offload 方案不好么?把现有方案的东西卸载干净,然后安装 nvidia-prime 包再重启应该就好了。缺点是N卡会一直处于开启状态(当然不用的时候是省电模式)。

离线

#3 2020-03-07 18:33:25

Reverier
会员
所在地: 西安
注册时间: 2020-03-07
帖子: 14
个人网站

Re: 安装Bumblebee后fcitx无法在以独显运行的程序中输入中文

谢谢你 可是这个问题似乎不是由驱动问题引起的. 我卸载掉了bumblebee和相关模块并安装了nvidia-prime, 重启后问题依旧.
我的fcitx配置使用meta+space来切换激活/非激活输入法, 可是在prime-run运行的程序里, 这个快捷键只会往输入框里输入一个空格......


Org: XDSEC@XDU

离线

#4 2020-03-07 19:02:56

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,443
个人网站

Re: 安装Bumblebee后fcitx无法在以独显运行的程序中输入中文

fcitx-diagnose 看看吧。
你试过不用 prime-run 运行那些程序,输入法可用么?

离线

#5 2020-03-08 21:01:20

Reverier
会员
所在地: 西安
注册时间: 2020-03-07
帖子: 14
个人网站

Re: 安装Bumblebee后fcitx无法在以独显运行的程序中输入中文

不使用prime-run的话, 程序会用核显运行, 输入法可用 (比如Minecraft)
但是Davinci Resolve不使用prime-run的话会报地址错误而无法启动.

reverier at Reverier-Arch in ~ 305.321 Kb
↪  fcitx-diagnose                                                                                  2020年 03月 08日 星期日 20:37:29 CST
# 系统信息:
1.  `uname -a`:

        Linux Reverier-Arch 5.5.8-arch1-1 #1 SMP PREEMPT Fri, 06 Mar 2020 00:57:33 +0000 x86_64 GNU/Linux

2.  `lsb_release -a`:

        LSB Version:    1.4
        Distributor ID: Arch
        Description:    Arch Linux
        Release:        rolling
        Codename:       n/a

3.  `lsb_release -d`:

        Description:    Arch Linux

4.  `/etc/lsb-release`:

        LSB_VERSION=1.4
        DISTRIB_ID=Arch
        DISTRIB_RELEASE=rolling
        DISTRIB_DESCRIPTION="Arch Linux"

5.  `/etc/os-release`:

        NAME="Arch Linux"
        PRETTY_NAME="Arch Linux"
        ID=arch
        BUILD_ID=rolling
        ANSI_COLOR="0;36"
        HOME_URL="https://www.archlinux.org/"
        DOCUMENTATION_URL="https://wiki.archlinux.org/"
        SUPPORT_URL="https://bbs.archlinux.org/"
        BUG_REPORT_URL="https://bugs.archlinux.org/"
        LOGO=archlinux

6.  桌面环境:

    桌面环境为 `kde`。

7.  Bash 版本:

        BASH_VERSION='5.0.16(1)-release'

# 环境:
1.  DISPLAY:

        DISPLAY=':0'

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

3.  Locale:

    1.  全部可用 locale:

            C
            en_US.utf8
            POSIX
            zh_CN.utf8
            zh_HK.utf8
            zh_TW.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=zh_CN.UTF-8

4.  目录:

    1.  主目录:

            /home/reverier

    2.  `${XDG_CONFIG_HOME}`:

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

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

    3.  Fcitx 设置目录:

        当前 fcitx 设置目录是 `~/.config/fcitx` (`/home/reverier/.config/fcitx`)。

5.  当前用户:

    脚本作为 reverier (1000) 运行。

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

    在 `/usr/bin/fcitx` 找到了 fcitx.

2.  版本:

    Fcitx 版本: `4.2.9.7`

3.  进程:

    找到了 2 个 fcitx 进程:

           2433 fcitx
           2445 fcitx-dbus-watc

4.  `fcitx-remote`:

    `fcitx-remote` 工作正常.

5.  DBus 界面:

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

    DBus 名称 `org.fcitx.Fcitx` 的所有者是 `:1.147`。

    DBus 名称 `org.fcitx.Fcitx` 的 PID 所有者是 `2433`。

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

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

2.  用于 GTK+-2.0 的配置界面:

    **未找到 gtk2 的配置界面.**

3.  用于 GTK+-3.0 的配置界面:

    在 `/usr/bin/fcitx-config-gtk3` 找到了 `fcitx-config-gtk3`。

4.  KDE 的配置界面:

    **`kcmshell4` 未找到.**

# 前端设置:
## 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 输入法模块文件:

    找到了 fcitx 的 qt 模块: `/usr/lib/fcitx/qt/libfcitx-quickphrase-editor5.so`.
    找到了 fcitx 的 qt 模块: `/usr/lib/fcitx/qt/libfcitx-libpinyin-dictmanager.so`.
    找到了未知的 fcitx qt 模块: `/usr/lib/qt/plugins/kcm_fcitx.so`.
    找到了 Qt5 的输入法模块: `/usr/lib/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so`.
    **无法找到 Qt4 的 fcitx 输入法模块.**

## 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.32` 的 `gtk-query-immodules`.
        版本行:

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

        已找到 gtk `2.24.32` 的 fcitx 输入法模块.

            "/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

        在 `/usr/bin/gtk-query-immodules-2.0-32` 找到了 gtk `2.24.32` 的 `gtk-query-immodules`.
        版本行:

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

        **无法在 `/usr/bin/gtk-query-immodules-2.0-32` 的输出重找到 fcitx.**

    2.  gtk 3:

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

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

        已找到 gtk `3.24.14` 的 fcitx 输入法模块.

            "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

3.  Gtk 输入法模块缓存:

    1.  gtk 2:

        在 `/usr/lib/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.32` 的输入法模块缓存.
        版本行:

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

        已找到 gtk `2.24.32` 的 fcitx 输入法模块.

            "/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

        在 `/usr/lib32/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.32` 的输入法模块缓存.
        版本行:

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

        **无法输入法模块缓存 `/usr/lib32/gtk-2.0/2.10.0/immodules.cache` 中找到 fcitx**

    2.  gtk 3:

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

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

        已找到 gtk `3.24.14` 的 fcitx 输入法模块.

            "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

4.  Gtk 输入法模块文件:

    1.  gtk 2:

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

    2.  gtk 3:

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

# 配置:
## Fcitx 插件:
1.  插件配置文件目录:

    找到了 fcitx 插件配置目录: `/usr/share/fcitx/addon`.

2.  插件列表:

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

            fcitx-autoeng
            fcitx-chttrans
            fcitx-classic-ui
            fcitx-clipboard
            fcitx-cloudpinyin
            fcitx-dbus
            fcitx-freedesktop-notify
            fcitx-googlepinyin
            fcitx-imselector
            fcitx-ipc
            fcitx-ipcportal
            fcitx-keyboard
            fcitx-kimpanel-ui
            fcitx-libpinyin
            fcitx-notificationitem
            fcitx-pinyin
            fcitx-pinyin-enhance
            fcitx-quickphrase
            fcitx-remote
            fcitx-spell
            fcitx-table
            fcitx-unicode
            fcitx-vk
            fcitx-x11
            fcitx-xim
            fcitx-xkb
            fcitx-xkbdbus

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

            fcitx-fullwidth-char
            fcitx-light-ui
            fcitx-punc
            fcitx-qw

3.  插件库: 

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

4.  用户界面:

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

        fcitx-classic-ui
        fcitx-kimpanel-ui

## 输入法:
1.  找到了 2 个启用的输入法:

        fcitx-keyboard-us
        pinyin-libpinyin

2.  默认输入法:

    您已经正确的将一个键盘输入法 "fcitx-keyboard-us" 设为默认.

# 日志:
1.  `date`:

        2020年 03月 08日 星期日 20:37:51 CST

2.  `~/.config/fcitx/log/`:

        总用量 0
        -rw-r--r-- 1 reverier reverier 0  3月  3 22:22 crash.log

3.  `~/.config/fcitx/log/crash.log`:

不过我发现了我使用prime-run的程序似乎都和java有关, 我尝试搜索了一下Davinci Resolve是用什么实现的, 可是并没有搜索到结果. 我使用prime-run kate, 可以正常输入中文.
但是在不使用prime-run的情况下java程序也是可以正常输入中文的, 比如IDEA和Minecraft, 为什么prime-run运行的java程序就不能输入中文了呢? 我也没有搜索到相关的答案.
有几个关于java程序不能使用fcitx输入的帖子, 介绍的是通过延迟启动fcitx, 然后kill掉并重新启动的方法, 我尝试了但是没有任何效果.


Org: XDSEC@XDU

离线

#6 2020-03-08 21:20:22

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,443
个人网站

Re: 安装Bumblebee后fcitx无法在以独显运行的程序中输入中文

你的配置没有问题啊。我的 Minecraft 里可以使用输入法呢。

离线

页脚