将IBus-Mozc设置为默认启动平假名输入模式,而非直接输入模式。

每次我重新启动电脑并想要输入日语时,按下Super+Space键是不够的,我还必须在Mozc菜单中选择平假名。

Ubuntu Mozc IBus direct input hiragana

每次都让我很困扰。就好像每天第一次使用汽车刹车时,它反而像油门一样加速一样。每天第一次刹车时,你必须记得按下一个杠杆。换句话说:非常烦人,也是发生事故的确切方式。 显然,没有人有动力去解决根本问题,并且有传言说IBus将在2015.10被Fcitx取代(但实际上并没有)。 与此同时,有没有快速解决这个问题的方法,以避免每次都要点击那个按钮?

4升级到16.04后也遇到同样的问题。在14.04上之前可以正常工作。 - sugab
2不是一个解决方案,但我编辑了键盘快捷键,现在我按下super+space,然后使用alt+`来切换到平假名输入。这在工具->属性下的"自定义"键盘映射中设置。 - computermacgyver
@computermacgyver 这个变通方法可能是一个部分解决方案,并且它为这个话题增加了价值。你能把它发表为答案吗?请提及它只是一个变通方法。 - user.dz
看起来这里有相同的未解决问题:https://askubuntu.com/questions/561486/ - user.dz
@user.dz:确实非常相似,但是那个问题是在寻求捷径,而我只是想知道如何让它直接以那种方式启动。 - Nicolas Raoul
这是在ibus-mozc的最新版本中添加的。无需编译!您可以编辑配置文件~/.config/mozc/ibus_config.textproto,在花括号的engines {}下面添加一行composition_mode: HIRAGANA。保存并应用更改,请使用ibus write-cache; ibus restart命令。 - Nikole
5个回答

  1. 你可以修改源代码并重新构建

    sudo apt install build-essential devscripts -y
    sudo apt build-dep ibus-mozc -y
    apt source ibus-mozc
    
  2. cd ~
    然后编辑./mozc*/src/unix/ibus/property_handler.cc并替换

    #if IBUS_CHECK_VERSION(1, 5, 0)
    const bool kActivatedOnLaunch = false;
    

使用

    #if IBUS_CHECK_VERSION(1, 5, 0)
    const bool kActivatedOnLaunch = true;

或者将预处理器指令条件用逻辑非包装起来,变成#if !(...)(这是另一种方法,请选择其中一种)。

现在编辑./mozc*/src/protocol/commands.proto,并替换

    enum CompositionMode {
    DIRECT = 0;
    HIRAGANA = 1;

使用

    enum CompositionMode {
    DIRECT = 1;
    HIRAGANA = 0;
  1. 构建它

    cd mozc*
    dpkg-buildpackage -us -uc -b
    
  2. sudo apt install ./ibus-mozc*.deb (dfsg 版本)

  3. 重新启动


谢谢。在 elementary OS 5.1.2 上对我有用(基于 18.04 bionic),在安装第三步中也需要安装一些依赖的 deb 包。此外,我还需要取消注释 /etc/apt/sources/list 中第一行 deb-src(第 5 行)以完成第一步。 - Carolus
如果你希望自定义的 ibus-mozc 版本不会被系统更新覆盖,你可以在 ./mozc*/debian/changelog 的第一行增加版本号。我对自己所做的事情并不了解,所以请谨慎采纳我的建议。 - Carolus
我为了自己的需要制作了一个Ansible脚本,并稍作调整后在这里分享了它here。虽然我绝对不是这方面的专家,但是这个脚本对我来说似乎是有效的。 - Carolus

ArchWiki解决方法:https://wiki.archlinux.org/title/Mozc#Configuration vi $HOME/.config/mozc/ibus_config.textproto ... active_on_launch: True ... 重新启动系统,ibus-mozc将以平假名模式启动。 这个方法至少适用于Debian/Ubuntu和Arch。
这不是对问题的答案,而是对问题的一个解决方法。 如果你没有问题切换输入法为fcitx。
sudo apt install fcitx-mozc

然后它的工作方式几乎与ibus-mozc相同,并且它会记住平假名/片假名/直接输入等选择。

[编辑] 内联转换看起来像 inline_conv


安装这个对我没有任何影响,我不确定如何实际切换到fcitx方法。 - Sam Bull
1系统设置 > 语言支持,选择fcitx,然后进入系统设置 > 文本输入,选择Mozc (Fcitx),重新启动电脑。在我看来,@Lainnya的回答更实用。 - Sadaharu Wakisaka
嗯,在语言支持中,已经设置为fcitx了。不过我找不到“文本输入”选项。在“语言和地区”下,我可以设置输入源,但是只看到一个“日语(Mozc)”的选项,没有Fcitx。如果我卸载ibus-mozc,那么Mozc选项就会消失。如果有任何区别的话,我正在运行带有原始GNOME的Ubuntu 20.04。 - Sam Bull
1点击这里查看ibus和fcitx的说明页面(链接:https://kinakoankon.net/ubuntu-20-04-japanese-input-ibus-fcitx-mozc/)。对我来说,`fcitx-mozc`比`ibus-mozc`要好得多。作为一个近50年的日语母语者,如果我每周只打一次日语,那么我不介意`ibus-mozc`,或者它在开始时没有设置为平假名,因为自从Ubuntu 16.04的iBus v1.5以来,它就有许多小bug,经常干扰我的输入,真的很烦人/分散注意力。这就是为什么我后悔使用fcitx(自从10.04以来,ibus一直很出色)。如果你想要,你不必卸载ibus,只需运行sudo apt purge ibus即可。 - Sadaharu Wakisaka
@SamBull 对我来说很有效,我也在使用20.04版本。请点击上方的“指南页ibus&fcitx”链接进行操作。谷歌翻译的页面非常易读。 - rapstacke
嗯,我想我已经成功切换到了fcitx输入法,但是fcitx的输入法列表是空的,没有可用的输入法可以添加。也许我还缺少其他的软件包? - Sam Bull
@SamBull,通常情况下是可以的。重新启动后,在输入法菜单中应该有mozc选项。由于某些原因,您或者其他人删除了一些软件包。尝试删除一个主要软件包并安装所有相关软件包。使用命令sudo apt remove fcitx-mozcsudo apt install fcitx-mozc --install suggests --install recommends - Sadaharu Wakisaka
好的,它没有显示任何内容,因为 fcitx 实际上并没有运行。要使其在启动时运行,似乎卸载 ibus 是最简单的选择。为了使其看起来不那么糟糕,我还需要安装 gnome-shell-extension-kimpanel。然而,它仍然不完美,弹出窗口出现在光标之外(可能与 Wayland 的缩放有关?),并且在 shell 中无法工作(例如搜索应用程序时),您还会在顶部面板中得到一个不再工作的第二个键盘选择器(除非使用另一个扩展进行删除)。 - Sam Bull
@SamBull,https://askubuntu.com/questions/567413/installing-japanese-language-support-from-command-line language-pack-ja 我编辑了我的原始帖子,应该在输入时看起来像这样。 - Sadaharu Wakisaka
是的,在启用gnome-shell-extensions-kimpanel后,它只是看起来像那样。对我来说,只是位置不正确,我怀疑这与Wayland(在Ubuntu中不是默认的)和/或HiDPI缩放有关。 - Sam Bull
@SamBull,这可能是一个非常有帮助的问答,请创建一个新问题,并描述你的答案,以帮助那些遭遇相同困境的人。以崇高而专注的Unix用户心态来看,我猜你应该这么做。非常感谢你的发现。 - Sadaharu Wakisaka

简要浏览了一下这个链接,我认为大致意思是这个问题不会被“修复”吗? 无论如何,我有一个解决办法。(至少在kde和xfce4上。) 运行ibus-pref。 进入输入法设置,点击Mozc的首选项。 点击键盘映射样式的自定义... 点击左下角的编辑,创建一个新条目。 这个新条目应该是“直接输入”,动作应该是激活输入法。 至于按键,请确保选择的是其他应用程序很少使用的按键。 您还可以添加另一个条目来取消激活输入法。 完成后重新启动。或者只需注销?我只知道在重新启动后才注意到这个方法有效。

请问您能详细说明一下重启后的操作流程吗?只需按下所选的键,然后立即就可以开始输入平假名了吗? - Nicolas Raoul
您可能仍然需要使用super+space进行切换。系统托盘应该会告诉您当前所选的输入法。您还可以尝试使用qtconfig-qt4,转到界面 > 默认输入法,将其切换为ibus(在此处找到它:链接)。当您选择Mozc输入法后,只需按下您选择的键即可。(例如,我选择了表格条目中的insert - General Grievance
所以,步骤是这样的,对吧?:1)登录。2)按下“super+space”。3)按下选择的键。4)输入平假名。这并不能解决问题,但每次登录可以节省几秒钟的时间。然而,在“开始输入おはよう - 意识到出现了ohayou - 记住这个错误”的过程中,并不能节省时间的损失。 - Nicolas Raoul

这是在ibus-mozc的最近版本中添加的。无需编译! 您可以编辑配置文件~/.config/mozc/ibus_config.textproto,在花括号的 engines {} 下方添加一行composition_mode: HIRAGANA。保存并使用ibus write-cache; ibus restart进行应用。