47 lines
1.6 KiB
Nix
47 lines
1.6 KiB
Nix
{
|
|
flake.modules.homeManager.handy =
|
|
{ config, pkgs, ... }:
|
|
let
|
|
settings = (pkgs.formats.json { }).generate "handy-settings.json" {
|
|
settings = {
|
|
settings_schema_version = 1;
|
|
selected_model = "handy-computer/nemotron-3.5-asr-streaming-0.6b-gguf/nemotron-3.5-asr-streaming-0.6b-Q8_0.gguf";
|
|
selected_language = "auto";
|
|
translate_to_english = false;
|
|
selected_microphone = null;
|
|
always_on_microphone = false;
|
|
push_to_talk = true;
|
|
paste_method = "ctrl_shift_v";
|
|
typing_tool = "wtype";
|
|
clipboard_handling = "dont_modify";
|
|
auto_submit = false;
|
|
overlay_style = "live";
|
|
overlay_position = "bottom";
|
|
post_process_enabled = false;
|
|
start_hidden = true;
|
|
autostart_enabled = false;
|
|
update_checks_enabled = false;
|
|
show_whats_new_on_update = false;
|
|
onboarding_completed = true;
|
|
};
|
|
};
|
|
in
|
|
{
|
|
home.packages = [ pkgs.handy ];
|
|
|
|
systemd.user.services.handy = {
|
|
Unit = {
|
|
Description = "Handy dictation";
|
|
PartOf = [ "graphical-session.target" ];
|
|
After = [ "graphical-session.target" ];
|
|
};
|
|
Install.WantedBy = [ "graphical-session.target" ];
|
|
Service = {
|
|
# Handy writes migrations and runtime preferences: restore the Nix baseline on start.
|
|
ExecStartPre = "${pkgs.coreutils}/bin/install -Dm600 ${settings} ${config.xdg.dataHome}/com.pais.handy/settings_store.json";
|
|
ExecStart = "${pkgs.handy}/bin/handy --start-hidden";
|
|
};
|
|
};
|
|
};
|
|
}
|