Commit a5c36a4f8cb9
Changed files (7)
dots
.config
niri
home
common
desktop
systems
kyushu
dots/.config/niri/config.kdl
@@ -84,7 +84,6 @@ spawn-at-startup "waybar"
// FIXME should be through systemd
spawn-at-startup "yubikey-agent" "-l" "/run/user/1000/yubikey-agent/yubikey-agent.sock"
spawn-at-startup "swaybg" "-i" "/home/vincent/desktop/pictures/lockscreen"
-spawn-at-startup "voxtype" "daemon"
prefer-no-csd
home/common/desktop/niri/default.nix
@@ -23,9 +23,6 @@
wofi
rofimoji
swaybg
-
- # Voice-to-text with Whisper
- wip.voxtype
];
services = {
@@ -46,44 +43,4 @@
];
};
};
-
- # Voxtype configuration (voice-to-text with Whisper)
- # Keybinding is handled by niri (Mod+F3 -> voxtype record toggle)
- xdg.configFile."voxtype/config.toml".text = ''
- # Enable state file for status monitoring (Waybar integration)
- state_file = "auto"
-
- [hotkey]
- # Hotkey handling is done by niri compositor
- enabled = false
-
- [audio]
- # Audio input device ("default" uses system default)
- device = "default"
- # Sample rate in Hz (whisper expects 16000)
- sample_rate = 16000
- # Maximum recording duration in seconds (safety limit)
- max_duration_secs = 60
- # Silence threshold in dB - adjust if needed
- silence_threshold = -30.0
-
- [whisper]
- # Model to use for transcription
- # Using multilingual model for auto-detection (en/fr)
- model = "base"
- # Language for transcription ("en" for English, "auto" for auto-detection)
- language = "auto"
- # Translate non-English speech to English
- translate = false
-
- [output]
- # Use clipboard mode - more reliable than typing
- mode = "clipboard"
-
- [output.notification]
- # Enable notifications for recording events
- on_recording_start = true
- on_recording_stop = true
- on_transcription = true
- '';
}
home/common/desktop/default.nix
@@ -16,6 +16,7 @@
./mails.nix
./mpv.nix
./passage.nix
+ ./voxtype.nix
./xdg.nix
../dev/default.nix
home/common/desktop/voxtype.nix
@@ -0,0 +1,55 @@
+{ inputs, system, ... }:
+{
+ imports = [ inputs.voxtype.homeManagerModules.default ];
+
+ programs.voxtype = {
+ enable = true;
+ package = inputs.voxtype.packages.${system}.default;
+
+ # Using multilingual model for auto-detection (en/fr)
+ model.name = "base";
+
+ # Systemd user service for the daemon
+ service.enable = true;
+
+ settings = {
+ # Enable state file for status monitoring (Waybar integration)
+ state_file = "auto";
+
+ hotkey = {
+ # Hotkey handling is done by niri compositor (Mod+F3)
+ enabled = false;
+ };
+
+ audio = {
+ # Audio input device ("default" uses system default)
+ device = "default";
+ # Sample rate in Hz (whisper expects 16000)
+ sample_rate = 16000;
+ # Maximum recording duration in seconds (safety limit)
+ max_duration_secs = 60;
+ # Silence threshold in dB
+ silence_threshold = -30.0;
+ };
+
+ whisper = {
+ # Language for transcription ("auto" for auto-detection)
+ language = "auto";
+ # Translate non-English speech to English
+ translate = false;
+ };
+
+ output = {
+ # Use clipboard mode - more reliable than typing
+ mode = "clipboard";
+
+ notification = {
+ # Enable notifications for recording events
+ on_recording_start = true;
+ on_recording_stop = true;
+ on_transcription = true;
+ };
+ };
+ };
+ };
+}
systems/kyushu/home.nix
@@ -52,8 +52,6 @@ in
qmk
qmk_hid
- wip.voxtype
-
startpaac
batzconverter # TODO I need to fix it or package it upstream
flake.lock
@@ -443,6 +443,24 @@
"type": "github"
}
},
+ "flake-utils_2": {
+ "inputs": {
+ "systems": "systems_3"
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
"gitignore": {
"inputs": {
"nixpkgs": [
@@ -927,7 +945,8 @@
"nixpkgs-master": "nixpkgs-master",
"nixpkgs-wip-consolidated": "nixpkgs-wip-consolidated",
"pre-commit-hooks": "pre-commit-hooks",
- "system-manager": "system-manager"
+ "system-manager": "system-manager",
+ "voxtype": "voxtype"
}
},
"rust-overlay": {
@@ -1001,6 +1020,21 @@
"type": "github"
}
},
+ "systems_3": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
@@ -1021,6 +1055,27 @@
"repo": "treefmt-nix",
"type": "github"
}
+ },
+ "voxtype": {
+ "inputs": {
+ "flake-utils": "flake-utils_2",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1769105117,
+ "narHash": "sha256-9hBSeT2jmF3bTbv6mbnpzaWF/ETGOjV+NKH3ChEUM4A=",
+ "owner": "peteonrails",
+ "repo": "voxtype",
+ "rev": "cdb71f99502c0c8ef0560e86e110c8151804e1ae",
+ "type": "github"
+ },
+ "original": {
+ "owner": "peteonrails",
+ "repo": "voxtype",
+ "type": "github"
+ }
}
},
"root": "root",
flake.nix
@@ -404,5 +404,8 @@
copilot-cli.url = "github:scarisey/copilot-cli-flake";
copilot-cli.inputs.nixpkgs.follows = "nixpkgs";
+
+ voxtype.url = "github:peteonrails/voxtype";
+ voxtype.inputs.nixpkgs.follows = "nixpkgs";
};
}