{ pkgs, ... }: { # Configure default fonts fonts = { packages = with pkgs; [ inter iosevka noto-fonts noto-fonts-cjk-sans noto-fonts-cjk-serif noto-fonts-emoji meslo-lgs-nf ]; fontconfig.defaultFonts = { serif = [ "Noto Serif" "Noto Serif CJK SC" ]; sansSerif = [ "Inter" "Noto Sans CJK SC" ]; monospace = [ "Iosevka" "Noto Sans CJK SC" ]; }; }; # Configure input methods i18n = { defaultLocale = "en_US.UTF-8"; inputMethod = { enabled = "fcitx5"; fcitx5.addons = with pkgs; [ fcitx5-rime ]; }; supportedLocales = [ "C.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" "ja_JP.UTF-8/UTF-8" "zh_CN.GB18030/GB18030" "zh_CN.UTF-8/UTF-8" ]; }; # Configure keyboard mapping services.kanata = { enable = true; keyboards.core = { devices = [ "/dev/input/by-id/usb-ASUSTeK_Computer_Inc._N-KEY_Device-if02-event-kbd" ]; config = '' (defsrc esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del grv 1 2 3 4 5 6 7 8 9 0 - = bspc tab q w e r t y u i o p [ ] \ caps a s d f g h j k l ; ' ret lsft z x c v b n m , . / rsft up lctl lmet lalt spc ralt rctl left down rght ) (deflayer base _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @li _ _ _ ) (deflayer index XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX @lb XX @lm XX XX XX XX XX XX XX XX XX XX XX XX XX XX ) (deflayer media XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX prev next XX XX XX XX XX XX pp XX @li XX XX XX ) (defalias li (layer-toggle index) lb (layer-switch base) lm (layer-switch media) ) ''; }; }; }