{ 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)"; }; }; }; }; }; }