77 lines
1.6 KiB
Nix

{
config,
lib,
pkgs,
modulePath,
...
}:
{
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
console.keyMap = "fr-bepo";
i18n.inputMethod = {
enable = true;
type = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-gtk
fcitx5-mozc
];
fcitx5.waylandFrontend = true;
fcitx5.plasma6Support = true;
fcitx5.settings.inputMethod = {
"Groups/0" = {
"Name" = "RegularTyping";
"Default Layout" = "fr-bepo";
"DefaultIM" = "keyboard-fr-bepo";
};
"Groups/0/Items/0" = {
"Name" = "keyboard-fr-bepo";
"Layout" = "fr-bepo";
};
"Groups/0/Items/1" = {
"Name" = "keyboard-fr";
"Layout" = "fr";
};
"Groups/0/Items/2" = {
"Name" = "mozc";
"Layout" = "fr-bepo";
};
};
fcitx5.settings.globalOptions = {
"[Hotkey]" = {
"EnumerateWithTriggerKeys" = true;
};
"[Hotkey/TriggerKeys]" = {
"0" = "Control+Shift+K";
};
"[Behaviour]" = {
"ActiveByDefault" = true;
};
};
};
services.xserver.desktopManager.runXdgAutostartIfNone = true;
environment.sessionVariables = rec {
XMODIFIERS = "@im=fcitx";
};
# Keyboard layout for login manager
services.xserver.xkb.layout = "fr";
services.xserver.xkb.variant = "bepo";
services.keyd = {
enable = true;
keyboards = {
default = {
ids = [ "*" ];
settings = {
main = {
"f23+leftshift+leftmeta" = "layer(control)";
};
};
};
};
};
}