82 lines
3 KiB
Nix
82 lines
3 KiB
Nix
{ 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)
|
|
)
|
|
'';
|
|
};
|
|
};
|
|
}
|