fix input method
This commit is contained in:
parent
f854e12c4e
commit
783318e968
3 changed files with 104 additions and 14 deletions
|
|
@ -90,16 +90,6 @@
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Input method configuration
|
|
||||||
i18n.inputMethod = {
|
|
||||||
enable = true;
|
|
||||||
type = "ibus";
|
|
||||||
ibus.engines = with pkgs.ibus-engines; [
|
|
||||||
libpinyin # Chinese Simplified Pinyin
|
|
||||||
mozc # Japanese (Romaji)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Touchpad configuration (host-specific overrides)
|
# Touchpad configuration (host-specific overrides)
|
||||||
services.libinput.touchpad = {
|
services.libinput.touchpad = {
|
||||||
disableWhileTyping = true;
|
disableWhileTyping = true;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,79 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
# Fcitx5 input method configuration
|
||||||
|
xdg.configFile."fcitx5/profile" = {
|
||||||
|
force = true;
|
||||||
|
text = ''
|
||||||
|
[Groups/0]
|
||||||
|
Name=Default
|
||||||
|
Default Layout=us
|
||||||
|
DefaultIMName=keyboard-us
|
||||||
|
|
||||||
|
[Groups/0/Items/0]
|
||||||
|
Name=keyboard-us
|
||||||
|
Layout=
|
||||||
|
|
||||||
|
[Groups/0/Items/1]
|
||||||
|
Name=rime
|
||||||
|
Layout=
|
||||||
|
|
||||||
|
[Groups/0/Items/2]
|
||||||
|
Name=mozc
|
||||||
|
Layout=
|
||||||
|
|
||||||
|
[GroupOrder]
|
||||||
|
0=Default
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."fcitx5/config" = {
|
||||||
|
force = true;
|
||||||
|
text = ''
|
||||||
|
[Hotkey]
|
||||||
|
TriggerKeys=
|
||||||
|
EnumerateWithTriggerKeys=True
|
||||||
|
AltTriggerKeys=
|
||||||
|
EnumerateForwardKeys=
|
||||||
|
EnumerateBackwardKeys=
|
||||||
|
EnumerateSkipFirst=False
|
||||||
|
|
||||||
|
[Behavior]
|
||||||
|
ActiveByDefault=False
|
||||||
|
ShareInputState=No
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Rime configuration for Simplified Chinese
|
||||||
|
xdg.configFile."fcitx5/rime/default.custom.yaml" = {
|
||||||
|
force = true;
|
||||||
|
text = ''
|
||||||
|
patch:
|
||||||
|
schema_list:
|
||||||
|
- schema: luna_pinyin_simp
|
||||||
|
menu:
|
||||||
|
page_size: 7
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Rime addon configuration - 7 candidates per page
|
||||||
|
xdg.configFile."fcitx5/conf/rime.conf" = {
|
||||||
|
force = true;
|
||||||
|
text = ''
|
||||||
|
[InputMethod]
|
||||||
|
PageSize=7
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Mozc addon configuration - 7 candidates per page
|
||||||
|
xdg.configFile."fcitx5/conf/mozc.conf" = {
|
||||||
|
force = true;
|
||||||
|
text = ''
|
||||||
|
[InputMethod]
|
||||||
|
PageSize=7
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
|
|
@ -11,14 +84,14 @@
|
||||||
|
|
||||||
# Environment variables for input methods
|
# Environment variables for input methods
|
||||||
env = [
|
env = [
|
||||||
"GTK_IM_MODULE,ibus"
|
"GTK_IM_MODULE,fcitx"
|
||||||
"QT_IM_MODULE,ibus"
|
"QT_IM_MODULE,fcitx"
|
||||||
"XMODIFIERS,@im=ibus"
|
"XMODIFIERS,@im=fcitx"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Execute apps at launch
|
# Execute apps at launch
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"ibus-daemon -drx"
|
"fcitx5 -d"
|
||||||
"hypridle"
|
"hypridle"
|
||||||
"waybar"
|
"waybar"
|
||||||
"nm-applet --indicator"
|
"nm-applet --indicator"
|
||||||
|
|
@ -103,6 +176,22 @@
|
||||||
"SUPER, Return, exec, ghostty"
|
"SUPER, Return, exec, ghostty"
|
||||||
"SUPER, Space, exec, wofi --show drun"
|
"SUPER, Space, exec, wofi --show drun"
|
||||||
|
|
||||||
|
# Input method switching (cycles through configured IMs)
|
||||||
|
"ALT, Space, exec, ${pkgs.writeShellScript "fcitx5-cycle" ''
|
||||||
|
current=$(${pkgs.fcitx5}/bin/fcitx5-remote -n)
|
||||||
|
case "$current" in
|
||||||
|
keyboard-us)
|
||||||
|
${pkgs.fcitx5}/bin/fcitx5-remote -s rime
|
||||||
|
;;
|
||||||
|
rime)
|
||||||
|
${pkgs.fcitx5}/bin/fcitx5-remote -s mozc
|
||||||
|
;;
|
||||||
|
mozc|*)
|
||||||
|
${pkgs.fcitx5}/bin/fcitx5-remote -s keyboard-us
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
''}"
|
||||||
|
|
||||||
# Window focus navigation (vim-style)
|
# Window focus navigation (vim-style)
|
||||||
"SUPER, h, movefocus, l"
|
"SUPER, h, movefocus, l"
|
||||||
"SUPER, j, movefocus, d"
|
"SUPER, j, movefocus, d"
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,17 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Input method configuration for Hyprland
|
||||||
|
i18n.inputMethod = {
|
||||||
|
enable = true;
|
||||||
|
type = "fcitx5";
|
||||||
|
fcitx5.addons = with pkgs; [
|
||||||
|
fcitx5-rime # Chinese Simplified/Traditional (more powerful than libpinyin)
|
||||||
|
fcitx5-mozc # Japanese (Romaji)
|
||||||
|
fcitx5-gtk # GTK integration
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# System packages for Hyprland
|
# System packages for Hyprland
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
hyprland
|
hyprland
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue