Fcitx5

From NixOS Wiki
Revision as of 15:31, 23 November 2024 by 34j (talk | contribs) (Add new case for "Add-ons Not Detected")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Fcitx5 is a lightweight input method framework with addon support.

Setup

The following is a simple NixOS configuration that'll setup fcitx5, its GUI config tool, and two addons.

i18n.inputMethod = {
    enabled = "fcitx5";
    fcitx5.addons = with pkgs; [
        fcitx5-mozc
        fcitx5-gtk
    ];
};

Notably, NixOS automagically sets session variables that are required for fcitx5.

Troubleshooting

Add-ons Not Detected

Installing fcitx5 using environment.systemPackages can interfere with add-on detection. Make sure to only add fcitx5 to your config as shown in Setup.

 
Fcitx5 failing to load IME module (claims "使用不可" (unusable))

Another possibility is that you are calling ${pkgs.fcitx5}/bin/fcitx5 instead of the patched fcitx5-with-addons (/run/current-system/sw/bin/fcitx5). For example in Hyprland:

 # ~/.config/hypr/hyprland.conf
 exec-once=fcitx5 -d # not ${pkgs.fcitx5}/bin/fcitx5 !

Fcitx5 Doesn't Start When Using WM

As of NixOS 23.11 i18n.inputMethod.enabled no longer creates systemd services for fcitx5. Instead it relies on XDG autostart files. If using a Window Manager (WM), such as Sway, you may need to add services.xserver.desktopManager.runXdgAutostartIfNone = true; to your NixOS configuration.

See the NixOS 23.11 Release Notes for more information.

Using Wayland

Set boolean i18n.inputMethod.fcitx5.waylandFrontend to true to suppress warnings about environment variables.