feat: add local dictation with Handy and Niri shortcuts

This commit is contained in:
kiri committed 2026-09-09 20:08:46 +02:00
1 parent 4949aef927
commit 786fc97ea0
4 files changed
+48

No files matched your search

+16
View File
@@ -118,6 +118,22 @@ reports are not a fresh comparison with this baseline.
## Open choices and next discussion
Dictation: plain local transcription is selected; rambling cleanup is deferred.
The shared Niri module installs Handy and starts it hidden with the desktop.
Super+D toggles recording; Super+Shift+D cancels. Commands were verified against
the pinned Handy 0.9.1 source. No microphone recording or model download was run.
After user activation, launch Handy from Walker, download/select Parakeet V3,
keep automatic language detection and disable push-to-talk for toggle operation.
In Advanced, choose paste method None and clipboard handling Copy to Clipboard.
Keep post-processing disabled. Settings/models remain writable app-owned state.
Start Handy manually for the current session; desktop autostart applies on login.
Try an English and a Dutch recording, paste into Codex with Ctrl+Shift+V, then
submit manually. User feedback needed: recognition accuracy, delay and shortcut
delivery. Automatic paste can follow if wanted after checking Niri compatibility.
Verification: formatting, flake evaluation, Zenith and Polaris no-link system
builds, and whitespace checks passed. No system activation or interactive
dictation was performed; recognition quality and latency remain unmeasured.
The focus is the broader environment, not further API/database polish. Candidate
areas remain places/ownership, navigation/interaction, human/agent collaboration,
and system operation/maintenance; these are discussion areas, not a work queue.
+4
View File
@@ -27,6 +27,10 @@ use a flake to declare its tools without Nix owning the surrounding workspace.
- Neovim, Niri, Walker and the terminal feel right: direct, keyboard-driven
interaction with useful connections to the rest of the environment.
- Use Handy for local plain dictation, mainly English with occasional Dutch.
Start with Parakeet V3 and clipboard output. Niri owns recording shortcuts;
model downloads and microphone preferences remain application-owned. Cleanup
through Codex, a cloud API or a local language model is deferred.
- Outlook is acceptable as an application, but its interaction and integration
do not fit as naturally. Accessible mail for tools and agents matters separately
from choosing a mail reader. Preserve meaning and source context, not just text.
+19
View File
@@ -1,5 +1,6 @@
{
browser,
handy,
launcher,
swapMonitorWorkspaces,
terminal,
@@ -34,6 +35,24 @@ in
_props.hotkey-overlay-title = "App Launcher";
};
# Dictation
"Mod+D" = {
spawn = [
handy
"--toggle-transcription"
];
_props.repeat = false;
_props.hotkey-overlay-title = "Toggle Dictation";
};
"Mod+Shift+D" = {
spawn = [
handy
"--cancel"
];
_props.repeat = false;
_props.hotkey-overlay-title = "Cancel Dictation";
};
# Hardware media, volume, and brightness keys
"XF86AudioPlay" = spawnLocked "playerctl play-pause";
"XF86AudioStop" = spawnLocked "playerctl stop";
+9
View File
@@ -41,10 +41,18 @@ in
playerctl
brightnessctl
wireplumber
handy
]
++ [ swapMonitorWorkspaces ];
};
desktop.autostart = [
[
(lib.getExe pkgs.handy)
"--start-hidden"
]
];
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
wayland.windowManager.niri = {
@@ -136,6 +144,7 @@ in
terminal
;
swapMonitorWorkspaces = lib.getExe swapMonitorWorkspaces;
handy = lib.getExe pkgs.handy;
};
};
};