This commit is contained in:
2026-08-02 21:35:35 +09:00
parent dfc4dc79d6
commit 5e12c1d953
3 changed files with 74 additions and 170 deletions
-69
View File
@@ -1,69 +0,0 @@
[Hotkey]
# トリガーキーを押すたびに切り替える
EnumerateWithTriggerKeys=False
# 一時的に第1入力メソッドに切り替える
AltTriggerKeys=
# 切り替え時は第1入力メソッドをスキップする
EnumerateSkipFirst=False
# Time limit in milliseconds for triggering modifier key shortcuts
ModifierOnlyKeyTimeout=250
[Hotkey/TriggerKeys]
1=Zenkaku_Hankaku
[Hotkey/ActivateKeys]
0=Henkan
[Hotkey/DeactivateKeys]
0=Muhenkan
[Hotkey/PrevPage]
0=Up
[Hotkey/NextPage]
0=Down
[Hotkey/PrevCandidate]
0=Shift+Tab
[Hotkey/NextCandidate]
0=Tab
[Hotkey/TogglePreedit]
0=Control+Alt+P
[Behavior]
# デフォルトで有効にする
ActiveByDefault=False
# フォーカス時に状態をリセット
resetStateWhenFocusIn=No
# 入力状態を共有する
ShareInputState=No
# アプリケーションにプリエディットを表示する
PreeditEnabledByDefault=True
# 入力メソッドを切り替える際に入力メソッドの情報を表示する
ShowInputMethodInformation=True
# フォーカスを変更する際に入力メソッドの情報を表示する
showInputMethodInformationWhenFocusIn=False
# 入力メソッドの情報をコンパクトに表示する
CompactInputMethodInformation=True
# 第1入力メソッドの情報を表示する
ShowFirstInputMethodInformation=True
# デフォルトのページサイズ
DefaultPageSize=5
# XKB オプションより優先する
OverrideXkbOption=False
# カスタム XKB オプション
CustomXkbOption=
# Force Enabled Addons
EnabledAddons=
# Force Disabled Addons
DisabledAddons=
# Preload input method to be used by default
PreloadInputMethod=True
# パスワード欄に入力メソッドを許可する
AllowInputMethodForPassword=False
# パスワード入力時にプリエディットテキストを表示する
ShowPreeditForPassword=False
# ユーザーデータを保存する間隔(分)
AutoSavePeriod=30
-44
View File
@@ -1,44 +0,0 @@
{
config,
lib,
osConfig,
...
}:
let
mkSessionService = target: {
Unit = {
Description = "Fcitx 5 input method";
Documentation = [ "https://fcitx-im.org/" ];
PartOf = [ target ];
After = [ target ];
};
Service = {
ExecStart = "${osConfig.i18n.inputMethod.package}/bin/fcitx5 --replace";
Restart = "on-failure";
};
Install.WantedBy = [ target ];
};
in
{
home.file.".config/fcitx5/config" = {
recursive = true;
source = ./config;
};
# niri starts XDG autostart entries through systemd. The explicit service
# below is shared with labwc, so suppress the package-provided entry.
xdg.configFile."autostart/org.fcitx.Fcitx5.desktop".text = ''
[Desktop Entry]
Hidden=true
'';
systemd.user.services =
lib.optionalAttrs config.my.applications.niri.enable {
fcitx5-niri = mkSessionService "niri.service";
}
// lib.optionalAttrs config.my.applications.labwc.enable {
fcitx5-labwc = mkSessionService "labwc-session.target";
};
}
+74 -57
View File
@@ -1,43 +1,4 @@
{ pkgs, ... }: { pkgs, ... }:
let
# CC-BY-SA 3.0: https://github.com/jiro-aqua/aquamozc-dictionary
kanaengDictionary =
pkgs.runCommandNoCC "mozcdic-ut-kanaeng"
{
nativeBuildInputs = with pkgs; [
gawk
gnutar
bzip2
];
}
''
mkdir -p "$out"
awk -F '\t' 'NF == 3 { print $1 "\t0000\t0000\t8000\t" $2; }' \
${
pkgs.fetchurl {
url = "https://raw.githubusercontent.com/jiro-aqua/aquamozc-dictionary/ae7fae40b18f1500d97e3e4531fdff22abdc6a39/edict-katakana-english/kanaeng.mozc.txt";
hash = "sha256-rw8AlE2YAc3d4B6qQ6+LYchDiGwm6TesIfOozzZBGXo=";
}
} > mozcdic-ut-kanaeng.txt
tar -cjf "$out/mozcdic-ut-kanaeng.txt.tar.bz2" mozcdic-ut-kanaeng.txt
'';
mozcWithKanaeng = pkgs.mozc.override {
dictionaries = with pkgs; [
mozcdic-ut-alt-cannadic
mozcdic-ut-edict2
mozcdic-ut-jawiki
mozcdic-ut-neologd
mozcdic-ut-personal-names
mozcdic-ut-place-names
mozcdic-ut-skk-jisyo
mozcdic-ut-sudachidict
kanaengDictionary
];
};
in
{ {
services.hazkey.enable = true; services.hazkey.enable = true;
@@ -48,30 +9,86 @@ in
fcitx5 = { fcitx5 = {
waylandFrontend = true; waylandFrontend = true;
addons = with pkgs; [ addons = with pkgs; [
(fcitx5-mozc.override { mozc = mozcWithKanaeng; })
fcitx5-gtk fcitx5-gtk
kdePackages.fcitx5-qt kdePackages.fcitx5-qt
qt6Packages.fcitx5-configtool qt6Packages.fcitx5-configtool
]; ];
settings.inputMethod = { settings = {
GroupOrder."0" = "Default"; inputMethod = {
"Groups/0" = { GroupOrder."0" = "Default";
Name = "Default"; "Groups/0" = {
"Default Layout" = "jp"; Name = "Default";
DefaultIM = "mozc"; "Default Layout" = "jp";
DefaultIM = "hazkey";
};
"Groups/0/Items/0" = {
Name = "keyboard-jp";
};
"Groups/0/Items/1" = {
Name = "hazkey";
};
}; };
"Groups/0/Items/0" = {
Name = "keyboard-jp"; globalOptions = {
Layout = ""; Hotkey = {
}; EnumerateWithTriggerKeys = false;
"Groups/0/Items/1" = { AltTriggerKeys = "";
Name = "mozc"; EnumerateSkipFirst = false;
Layout = ""; ModifierOnlyKeyTimeout = 250;
}; };
"Groups/0/Items/2" = {
Name = "hazkey"; "Hotkey/TriggerKeys" = {
Layout = ""; "1" = "Zenkaku_Hankaku";
};
"Hotkey/ActivateKeys" = {
"0" = "Henkan";
};
"Hotkey/DeactivateKeys" = {
"0" = "Muhenkan";
};
"Hotkey/PrevPage" = {
"0" = "Up";
};
"Hotkey/NextPage" = {
"0" = "Down";
};
"Hotkey/PrevCandidate" = {
"0" = "Shift+Tab";
};
"Hotkey/NextCandidate" = {
"0" = "Tab";
};
"Hotkey/TogglePreedit" = {
"0" = "Control+Alt+P";
};
Behavior = {
ActiveByDefault = false;
resetStateWhenFocusIn = "No";
ShareInputState = "No";
PreeditEnabledByDefault = true;
ShowInputMethodInformation = true;
showInputMethodInformationWhenFocusIn = false;
CompactInputMethodInformation = true;
ShowFirstInputMethodInformation = true;
DefaultPageSize = 5;
OverrideXkbOption = false;
CustomXkbOption = "";
EnabledAddons = "";
DisabledAddons = "";
PreloadInputMethod = true;
AllowInputMethodForPassword = false;
ShowPreeditForPassword = false;
AutoSavePeriod = 30;
};
}; };
}; };
}; };