Karukan は GPT-2 を利用した日本語入力システムです。 Linux と macOS で動作します。Linux では Fcitx5 のアドオンとして動くようになっています。これを NixOS で動かしてみます。Karukan は現在のところ nixpkgs には収録されていません。 Karukan の(Linux 用の karukan-im の)ドキュメントには Ubuntu を想定したインストール方法のみが記載されているので、これを参考に Nix でビルドできるようにします。
まず以下のような Nix プログラムを karukan.nix のような名前で保存します[1]:
{
cmake,
fetchFromGitHub,
libxkbcommon,
openssl,
pkg-config,
rustPlatform,
kdePackages,
fcitx5,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "karukan";
version = "0.1.0";
src = fetchFromGitHub {
owner = "togatoga";
repo = "karukan";
rev = "3a96300e1005a80f6acb98b3dba877ed2041f8ba";
hash = "sha256-KMC7YYFi0UbOkZM7Q/s1eYUXeV9R5JdQj9wtJj5bWBI=";
};
cargoHash = "sha256-4j43EwFsNdJ1HqMwdEE8IKC0y/2gKh0+zNUP5ViIy9k=";
nativeBuildInputs = [
cmake
kdePackages.extra-cmake-modules
libxkbcommon
pkg-config
rustPlatform.bindgenHook # cf. https://github.com/NixOS/nixpkgs/issues/52447#issuecomment-1915060425
fcitx5
];
buildInputs = [
kdePackages.extra-cmake-modules
fcitx5
libxkbcommon
openssl
];
doCheck = false;
configurePhase = ''
pushd karukan-im/fcitx5-addon
cmakeConfigurePhase
popd
'';
buildPhase = ''
runHook preBuild
pushd karukan-im/fcitx5-addon
cmake --build build
popd
runHook postBuild
'';
installPhase = ''
runHook preInstall
pushd karukan-im/fcitx5-addon
cmake --install build
popd
runHook postInstall
'';
})
次に karukan を Fcitx5 のアドオンとして追加します。NixOS の場合は i18n.inputMethod.fcitx5.addons に設定します:
i18n.inputMethod = {
fcitx5.addons = [
(pkgs.callPackage ./karukan.nix {})
];
};
あとは Karukan のインストールドキュメントに従って Fcitx5 の GUI ツールから設定すると使えるようになります。この記事は上記のようにビルドした Karukan を使って書きました。
注釈
-
正直この Nix プログラムはまだ荒削りでもう少しどうにかなる気がしますが、とりあえず今日の成果ということで書いています。 ↩