Fcitx5: Difference between revisions

imported>Tamiyo
Created page with "Fcitx5 is a lightweight input method framework with addon support. == Setup == The following is a simple NixOs configuration that'll setup fcitx5, its config tool, and two ad..."
 
Jasi (talk | contribs)
m Change addon to add-ons for consistency
 
(19 intermediate revisions by 9 users not shown)
Line 1: Line 1:
Fcitx5 is a lightweight input method framework with addon support.
[https://fcitx-im.org/wiki/Fcitx_5 Fcitx5] is a lightweight input method framework with add-on support.


== Setup ==
== Installation ==
The following is a simple NixOs configuration that'll setup fcitx5, its config tool, and two addons.


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


Notably, NixOs automagically sets session variables that are required for fcitx5. It's also worth pointing out that installing fcitx5 using <code>environment.systemPackages</code> can interfere with addon detection.
The following is a snippet for a NixOS configuration that sets up fcitx5, its GUI config tool, and two add-ons.
{{File|3={
  i18n.inputMethod = {
    enable = true;
    type = "fcitx5";
    fcitx5.addons = with pkgs; [
      fcitx5-mozc
      fcitx5-gtk
    ];
  };
}|name=/etc/nixos/configuration.nix|lang=nix}}
 
== Configuration ==
Fcitx5 can be configured declaratively (though this is <strong>optional</strong>) using {{nixos:option|i18n.inputMethod.fcitx5.settings}} or [https://home-manager-options.extranix.com/?query=i18n.inputMethod.fcitx5.settings i18n.inputMethod.fcitx5.settings] ([[Home Manager]]). The former generates a config file in {{ic|/etc/xdg/fcitx5}} and the latter in {{ic|~/.config/fcitx5}}.
 
It would be easier to edit the Fcitx5 profile through GUI tools (i.e. {{nixos:package|kdePackages.fcitx5-configtool}}) [https://wiki.archlinux.org/title/Fcitx5#Configuration_tool as recommended in Arch Wiki], then convert the generated configuration files to Nix configuration;
 
* {{ic|cat ~/.config/fcitx5/profile}} (if exists) to {{ic|i18n.inputMethod.fcitx5.settings.inputMethod}}
* {{ic|cat ~/.config/fcitx5/config}} (if exists) to {{ic|i18n.inputMethod.fcitx5.settings.globalOptions}}
 
{{file|configuration.nix or home.nix|nix|3=
i18n.inputMethod.fcitx5.settings.inputMethod = {
  GroupOrder."0" = "Default";
  "Groups/0" = {
    Name = "Default";
    "Default Layout" = "jp";
    DefaultIM = "mozc";
  };
  "Groups/0/Items/0".Name = "keyboard-jp";
  "Groups/0/Items/1".Name = "mozc";
};
# i18n.inputMethod.fcitx5.settings.globalOptions = { };
 
# If not using Home Manager, you may want to ignore your local config at ~/.config/fcitx5 using the following option.
# i18n.inputMethod.fcitx5.ignoreUserConfig = true;
}}
 
== Troubleshooting ==
=== Add-ons Not Detected ===
'''Do not''' install fcitx5 using <code>environment.systemPackages</code> can interfere with add-on detection. Make sure to only add fcitx5 to your config as shown in [[Fcitx5#Setup | Setup]].
 
[[File:Fcitx5-mozc-load-fail.jpg|thumb|Fcitx5 failing to load IME module (claims "使用不可" (unusable))]]
 
Another possibility is that you are calling <code>${pkgs.fcitx5}/bin/fcitx5</code> instead of the patched <code>fcitx5-with-addons</code> (<code>/run/current-system/sw/bin/fcitx5</code>). For example in [[Hyprland]]:
 
  # ~/.config/hypr/hyprland.conf
  exec-once=fcitx5 -d # not ${pkgs.fcitx5}/bin/fcitx5 !
 
=== Fcitx5 Doesn't Start When Using WM ===
If using a Window Manager (WM), such as [[Sway]], you may need to add <code>services.xserver.desktopManager.runXdgAutostartIfNone = true;</code> to your NixOS configuration.
 
=== Using Wayland ===
Set boolean <code>i18n.inputMethod.fcitx5.waylandFrontend</code> to true to suppress warnings about environment variables.
 
For more details on how to correctly set fcitx5 for different compositors and applications, refer to the [https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland fcitx5 wiki].
 
[[Category:Applications]]