fcitx5: move configuration to home-manager
This commit is contained in:
parent
a2cd4d6ad1
commit
f3bcaad18b
|
@ -40,6 +40,7 @@ in {
|
||||||
./programs/zathura.nix
|
./programs/zathura.nix
|
||||||
|
|
||||||
./services/dunst.nix
|
./services/dunst.nix
|
||||||
|
./services/fcitx5.nix
|
||||||
./services/mpd.nix
|
./services/mpd.nix
|
||||||
./services/picom.nix
|
./services/picom.nix
|
||||||
./services/polybar.nix
|
./services/polybar.nix
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
let
|
||||||
|
im = config.i18n.inputMethod;
|
||||||
|
cfg = im.fcitx5;
|
||||||
|
fcitx5Package = pkgs.libsForQt5.fcitx5-with-addons.override { inherit (cfg) addons; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
i18n.inputMethod = {
|
||||||
|
enabled = "fcitx5";
|
||||||
|
fcitx5.addons = with pkgs; [
|
||||||
|
fcitx5-mozc
|
||||||
|
fcitx5-gtk
|
||||||
|
# fcitx5-chinese-addons
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile = let
|
||||||
|
format = pkgs.formats.ini { };
|
||||||
|
in {
|
||||||
|
"fcitx5/profile".source = format.generate "fcitx5-profile" {
|
||||||
|
"Groups/0" = {
|
||||||
|
Name = "Default";
|
||||||
|
"Default Layout" = "us";
|
||||||
|
DefaultIM = "mozc";
|
||||||
|
};
|
||||||
|
"Groups/0/Items/0" = {
|
||||||
|
Name = "keyboard-us";
|
||||||
|
Layout = "";
|
||||||
|
};
|
||||||
|
"Groups/0/Items/1" = {
|
||||||
|
Name = "keyboard-no";
|
||||||
|
Layout = "";
|
||||||
|
};
|
||||||
|
"Groups/0/Items/2" = {
|
||||||
|
Name = "mozc";
|
||||||
|
Layout = "";
|
||||||
|
};
|
||||||
|
GroupOrder = {
|
||||||
|
"0" = "Default";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"fcitx5/config".source = format.generate "fcitx5-config" {
|
||||||
|
Hotkey = {
|
||||||
|
# Enumerate when press trigger key repeatedly
|
||||||
|
EnumerateWithTriggerKeys = "True";
|
||||||
|
# Temporally switch between first and current Input Method
|
||||||
|
AltTriggerKeys = "";
|
||||||
|
# Enumerate Input Method Forward
|
||||||
|
EnumerateForwardKeys = "";
|
||||||
|
# Enumerate Input Method Backward
|
||||||
|
EnumerateBackwardKeys = "";
|
||||||
|
# Skip first input method while enumerating
|
||||||
|
EnumerateSkipFirst = "False";
|
||||||
|
};
|
||||||
|
|
||||||
|
"Hotkey/TriggerKeys" = {
|
||||||
|
"0" = "Control+space";
|
||||||
|
"1" = "Zenkaku_Hankaku";
|
||||||
|
"2" = "Hangul";
|
||||||
|
};
|
||||||
|
|
||||||
|
"Hotkey/EnumerateGroupForwardKeys"."0" = "Super+space";
|
||||||
|
"Hotkey/EnumerateGroupBackwardKeys"."0" = "Shift+Super+space";
|
||||||
|
"Hotkey/ActivateKeys"."0" = "Hangul_Hanja";
|
||||||
|
"Hotkey/DeactivateKeys"."0" = "Hangul_Romaja";
|
||||||
|
"Hotkey/PrevPage"."0" = "Up";
|
||||||
|
"Hotkey/NextPage"."0" = "Down";
|
||||||
|
"Hotkey/PrevCandidate"."0" = "Shift+Tab";
|
||||||
|
"Hotkey/NextCandidate"."0" = "Tab";
|
||||||
|
"Hotkey/TogglePreedit"."0" = "Control+Alt+P";
|
||||||
|
|
||||||
|
Behaviour = {
|
||||||
|
# Active By Default
|
||||||
|
ActiveByDefault = "False";
|
||||||
|
# Share Input State
|
||||||
|
ShareInputState = "All";
|
||||||
|
# Show preedit in application
|
||||||
|
PreeditEnabledByDefault = "True";
|
||||||
|
# Show Input Method Information when switch input method
|
||||||
|
ShowInputMethodInformation = "True";
|
||||||
|
# Show Input Method Information when changing focus
|
||||||
|
showInputMethodInformationWhenFocusIn = "False";
|
||||||
|
# Show compact input method information
|
||||||
|
CompactInputMethodInformation = "True";
|
||||||
|
# Show first input method information
|
||||||
|
ShowFirstInputMethodInformation = "True";
|
||||||
|
# Default page size
|
||||||
|
DefaultPageSize = 5;
|
||||||
|
# Override Xkb Option
|
||||||
|
OverrideXkbOption = "False";
|
||||||
|
# Custom Xkb Option
|
||||||
|
CustomXkbOption = "";
|
||||||
|
# Force Enabled Addons
|
||||||
|
EnabledAddons = "";
|
||||||
|
# Force Disabled Addons
|
||||||
|
DisabledAddons = "";
|
||||||
|
# Preload input method to be used by default
|
||||||
|
PreloadInputMethod = "True";
|
||||||
|
# Allow input method in the password field
|
||||||
|
AllowInputMethodForPassword = "False";
|
||||||
|
# Show preedit text when typing password
|
||||||
|
ShowPreeditForPassword = "False";
|
||||||
|
# Interval of saving user data in minutes
|
||||||
|
AutoSavePeriod = 30;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.fcitx5-daemon = {
|
||||||
|
Service.Restart="on-failure";
|
||||||
|
Service.ExecStart = lib.mkForce "${fcitx5Package}/bin/fcitx5";
|
||||||
|
Service.ExecReload = "/bin/kill -HUP $MAINPID";
|
||||||
|
};
|
||||||
|
}
|
|
@ -158,54 +158,7 @@ in {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
i18n = {
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
defaultLocale = "en_US.UTF-8";
|
|
||||||
inputMethod = lib.mkIf (!machineVars.headless) {
|
|
||||||
# enabled = "fcitx";
|
|
||||||
# engines = with pkgs.fcitx-engines; [ mozc ];
|
|
||||||
enabled = "fcitx5";
|
|
||||||
fcitx5.addons = with pkgs; [
|
|
||||||
fcitx5-mozc
|
|
||||||
fcitx5-gtk
|
|
||||||
# fcitx5-chinese-addons
|
|
||||||
];
|
|
||||||
|
|
||||||
fcitx5.ignoreUserConfig = true;
|
|
||||||
fcitx5.settings.inputMethod = {
|
|
||||||
"Groups/0" = {
|
|
||||||
"Name" = "Default";
|
|
||||||
"Default Layout" = "ch";
|
|
||||||
"DefaultIM" = "mozc";
|
|
||||||
};
|
|
||||||
"Groups/0/Items/0" = {
|
|
||||||
"Name" = "keybord-us";
|
|
||||||
"Layout" = null;
|
|
||||||
};
|
|
||||||
"Groups/0/Items/1" = {
|
|
||||||
"Name" = "keybord-no";
|
|
||||||
"Layout" = null;
|
|
||||||
};
|
|
||||||
"Groups/0/Items/2" = {
|
|
||||||
"Name" = "mozc";
|
|
||||||
"Layout" = null;
|
|
||||||
};
|
|
||||||
"GroupOrder" = {
|
|
||||||
"0" = "Default";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services."fcitx5" = lib.mkIf (config.i18n.inputMethod.enabled == "fcitx5") {
|
|
||||||
description = "Fcitx5 IME";
|
|
||||||
wantedBy = [ "graphical.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
ExecStart = "${config.i18n.inputMethod.package}/bin/fcitx5";
|
|
||||||
ExecReload = "/bin/kill -HUP $MAINPID";
|
|
||||||
Restart="on-failure";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
variables = {
|
variables = {
|
||||||
|
|
Loading…
Reference in New Issue