# flake.nix
{
inputs = {
nix-hazkey.url = "github:aster-void/nix-hazkey";
nix-hazkey.inputs.nixpkgs.follows = "nixpkgs"; # nixpkgs の重複を排除する
};
outputs = { self, nixpkgs, ... } @ inputs: {
nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
modules = [
{
_module.args = {
# この行を追加
inherit inputs;
};
}
./configuration.nix
];
};
};
}A. All-in-one (推奨)
# configuration.nix / home.nix
{inputs, pkgs, ...}: let
inherit (pkgs.stdenv) system;
in {
# home-manager の場合は `inputs.nix-hazkey.homeModules.hazkey` を使用
imports = [ inputs.nix-hazkey.nixosModules.hazkey ];
services.hazkey.enable = true;
# `i18n.inputMethod` と同じマネージャー (NixOS or Home Manager) である必要があります
i18n.inputMethod = {
enable = true;
type = "fcitx5";
};
}B. Manual installation
# configuration.nix / home.nix
{pkgs, inputs, ...}: {
# 1. hazkey-server の有効化 (上記同様)
imports = [ inputs.nix-hazkey.nixosModules.hazkey ];
services.hazkey = {
enable = true;
# 自動インストールの無効化
installHazkeySettings = false;
installFcitx5Addon = false;
};
# 2. hazkey-settings のインストール
environment.systemPackages = [inputs.nix-hazkey.packages.${system}.hazkey-settings];
# 3. fcitx5 の設定
i18n.inputMethod = {
enable = true;
type = "fcitx5";
fcitx5.addons = [
inputs.nix-hazkey.packages.${system}.fcitx5-hazkey
];
};
}設定を適用すると hazkey-server が systemd ユーザーサービスとして起動します。
fcitx5 の設定で有効化します。
fcitx5-configtoolhazkey の設定を開きます。 Zenzai はデフォルトでオフになっている可能性があるので、必要に応じて有効化します。
hazkey-settings{inputs, pkgs, ...}: let
inherit (pkgs.stdenv) system;
in {
services.hazkey = {
enable = true;
# zenzai model
# - zenzai_v3_1-small [デフォルト]
# - zenzai_v3_1-xsmall
# - zenzai_v3-small
# - zenzai_v2
zenzai.package = inputs.nix-hazkey.packages.${system}.zenzai_v3_1-xsmall;
};
}Note: 0.2.1 以降、
libllama.packageオプションは廃止されました。llama.cpp は hazkey-server に同梱されており、バックエンドデバイス(CPU / Vulkan)の選択はhazkey-settingsの GUI から行えます。
Vulkan バックエンドはデフォルトで無効です(CPU のみ)。NixOS で有効にするには hazkey-server パッケージを override してください:
{
services.hazkey = {
server.package = inputs.nix-hazkey.packages.${system}.hazkey-server.override { enableVulkan = true; };
};
}Vulkan は GPU ドライバの .so をランタイムでロードします。NixOS では GPU ドライバも nixpkgs からビルドされるため問題になりませんが、non-NixOS ではディストロの GPU ドライバと nixpkgs の glibc が同一プロセスに混在し、SIGSEGV でクラッシュします。
non-NixOS の場合、通常 Vulkan は使用できません。non-nixos-gpu や Home Manager の targets.genericLinux.gpu で /run/opengl-driver に nixpkgs ビルドのドライバを配置すれば動作する可能性があります。
Issue、Pull Request、スター、宣伝などの任意の形式のコントリビューションは歓迎です! リポジトリ編集の詳細は CONTRIBUTION.md をご確認ください。