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

WSL2 中文输入法无效

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

    环境为 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     Solana     2293 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 02:10 PVG 10:10 LAX 18:10 JFK 21:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86