V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
monetto
V2EX  ›  Linux

WSL2 中文输入法无效

  •  
  •   monetto · 2020-12-22 10:32:44 +08:00 · 6080 次点击
    这是一个创建于 1193 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境为 Win10 18363.1139 + WSL2 + Ubuntu 20.04 GUI 为 xfce4,用的 vcxsrv 连接。 fcitx 已经启动了,右上角可以见到图标。 但是输入后还是英文字母,没有中文输入法的框框。 求大佬帮忙...

    21 条回复    2020-12-23 02:16:22 +08:00
    samin
        1
    samin  
       2020-12-22 10:35:13 +08:00
    弱弱提问一下 WSL2 是有 UI 的 ? 一直以为只有 shell
    monetto
        2
    monetto  
    OP
       2020-12-22 10:39:07 +08:00
    @samin 可以的。网上一搜一大把了。就是没有 GPU 硬件加速,没过度动画,开发用还是足够了。IO 性能损失很小,IDEA 编译速度不输 Win10 。
    codehz
        3
    codehz  
       2020-12-22 10:43:10 +08:00
    vcxsrv 自己问题很多,建议用 x410 试试
    datou
        4
    datou  
       2020-12-22 11:02:16 +08:00
    @samin x11 forwarding
    monetto
        5
    monetto  
    OP
       2020-12-22 11:21:41 +08:00
    @codehz 试过 X410 了,一样的问题,启动了 fcitx,但是输入还是英文字母...
    NilChan
        6
    NilChan  
       2020-12-22 11:39:40 +08:00   ❤️ 1
    如果不介意换 distro 的话可以换到 kali linux 。它自带 wsl gui 支持:kali-win-kex
    interim
        7
    interim  
       2020-12-22 11:41:43 +08:00
    已经有支持 gpu 加速的内核了,不过还没正式发布,需要自己编译
    codehz
        8
    codehz  
       2020-12-22 11:45:56 +08:00   ❤️ 1
    @monetto #5 那可能是环境变量没配置对,我这边是可以用的。。。
    你看看什么 GTK_IM_MODULE 一类的配置
    12101111
        9
    12101111  
       2020-12-22 11:51:17 +08:00   ❤️ 2
    无论是现在的 X11 转发还是微软要出的 Wayland+RDP 的方案, 都是不能使用 Windows 端的输入法的

    必须在 Linux 端安装输入法和 dbus, 然后用 dbus-launch 启动一个 dbus session, 并且让 GUI 和输入法同时得到 DBUS_SESSION_BUS_ADDRESS 的环境变量,这样输入法才能使用
    lry
        10
    lry  
       2020-12-22 11:58:34 +08:00   ❤️ 1
    # 安装本地语言管理 和 中文字体包
    sudo apt-get -y install locales xfonts-intl-chinese fonts-wqy-microhei

    # 安装语言环境 选择 en_US.utf8 和 zh_CN-UTF-8
    # 空格键选择 Tab 键跳出选择,左右方向键选择确定还是取消,回车
    sudo dpkg-reconfigure locales

    # 查看当前系统支持的所有语言
    λ locale -a
    C
    C.UTF-8
    en_US.utf8
    POSIX
    zh_CN.utf8

    # 设置默认语言
    sudo update-locale LC_ALL="zh_CN.UTF-8"
    Mashirobest
        11
    Mashirobest  
       2020-12-22 12:08:17 +08:00 via Android
    你这是中文显示。。。别人要的是能输入中文
    lry
        12
    lry  
       2020-12-22 13:07:43 +08:00
    @Mashirobest 我说的就是中文输入法的解决方式啊。要想输出中文总不能连中文都不能显示吧
    no1xsyzy
        13
    no1xsyzy  
       2020-12-22 13:11:50 +08:00
    @lry 你还是重新看一遍主题里提问的是啥吧……
    lry
        14
    lry  
       2020-12-22 13:17:07 +08:00
    @no1xsyzy 好吧 我以为已经装了中文输入法但是无法打出中文,目前信息只说了装了 fcitx,不确定装没装中文输入法,如果没装的话装个 fcitx-googlepinyin 再按照我上面说的设置 LC 就行了
    yanqiyu
        15
    yanqiyu  
       2020-12-22 13:19:16 +08:00   ❤️ 3
    保证程序和输入法在同一个 dbus session, 这样 im-module 才能和输入法通信
    monetto
        16
    monetto  
    OP
       2020-12-22 14:28:13 +08:00
    @12101111 感谢大佬回复。那我具体应该怎么操作呀,在网上搜索相关教程没找到有说这个的...我目前是手动在终端输入 sudo service dbus start,然后再输入 fcitx 。
    monetto
        17
    monetto  
    OP
       2020-12-22 14:29:26 +08:00
    @yanqiyu 感谢大佬,那我如何确保他们在同一个 dbus session 啊
    yanqiyu
        18
    yanqiyu  
       2020-12-22 16:13:27 +08:00   ❤️ 1
    @monetto
    我现在的做法是
    写一段下面的脚本丢进 ~/.bash_profile, 当然这很简陋并且会随机的出问题,但是勉强能用
    if [-z "$(pidof dbus-daemon)" ]; then
    /usr/bin/dbus-launch --exit-with-x11 2>/dev/null >~/.dbus.env
    fi
    export $(cat ~/.dbus.env)
    12101111
        19
    12101111  
       2020-12-22 16:17:13 +08:00   ❤️ 1
    export DISPLAY=127.0.0.1:1
    export GTK_IM_MODULE=fcitx
    export XMODIFIERS=@im=fcitx
    export QT_IM_MODULE=fcitx
    if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
    eval `dbus-launch --sh-syntax`
    fi
    fcitx&
    no1xsyzy
        20
    no1xsyzy  
       2020-12-22 18:16:50 +08:00
    @lry 其实 locale 跟输入法能不能输入没关系,最初使用 Linux 的时候任何额外组件都半天装不上(网速问题,还不知道应当在开始安装前改源),所以一直都是最低网络需求安装完再改源装中文相关,也不知道改 locale,输入中文倒是可以
    而且不要 profile 级改 LC_ALL,要改改 LANG 。LC_ALL 应当被用来临时修改。
    charlie21
        21
    charlie21  
       2020-12-23 02:16:22 +08:00
    fcitx 是一个输入法框架,需要继续安装具体的输入法(比如 sunpinyin )才能打字

    安装并添加拼音输入法
    > sudo apt install fcitx dbus-x11 im-config fcitx-sunpinyin
    > fcitx-autostart
    > fcitx-config-gtk3 添加拼音(推荐 sunpinyin ),此为输入法配置必须的一步
    默认切换的快捷键是 ctrl + space 或 shift

    输入法的自启动

    办法:在 Settings > Settings Manager > Session and Startup (会话和自启动) 中点击应用程序自启动,设置与 Xfce 一起启动的自启动程序
    添加 命令 "fcitx-autostart &" 即可
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5395 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:50 · PVG 15:50 · LAX 00:50 · JFK 03:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.