Skip to content

Commit 0389f4a

Browse files
Merge pull request #30 from kristoferlund/dev
2 parents ac7be82 + b90e413 commit 0389f4a

26 files changed

Lines changed: 1342 additions & 245 deletions

CHANGELOG.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
12+
- **Output mode configuration** - Control transcription output destination with CLI flags:
13+
- Default: outputs to stdout for piping to other commands
14+
- `-c` flag: copy to clipboard
15+
- `-o <file>` flag: write to file
16+
- **Top-level record options** - `-c` and `-o` flags now available at CLI top level without explicit `record` command (e.g., `ostt -c` equivalent to `ostt record -c`)
17+
- **Automatic log rotation** - Log files kept for 7 most recent days; older logs automatically deleted on startup
18+
- **Version tracking and auto-updates** - Application version tracked in config; app-managed files (float script, Alacritty config) automatically updated on version changes
19+
- **Retry command** - Re-transcribe previous recordings without re-recording audio (`ostt retry` or `ostt retry N`)
20+
- **Replay command** - Playback previous recordings using system audio player (`ostt replay` or `ostt replay N`)
21+
- **Recording history** - Maintains history of 10 most recent audio recordings with automatic rotation
22+
- **Command aliases** - Short aliases for common commands: `r` (record), `a` (auth), `h` (history), `k` (keywords), `c` (config), `rp` (replay)
23+
- **Rich help system** - Two-tier help with `-h` (short) and `--help` (long with examples)
24+
- **Improved error messages** - Typo suggestions and better command-not-found errors
25+
- **Shell completions** - Generate completion scripts for bash, zsh, fish, and PowerShell (`ostt completions <shell>`)
26+
27+
### Changed
28+
29+
- **CLI framework migration** - Migrated from manual argument parsing to clap for better UX and maintainability
30+
- `ostt record` now outputs to stdout by default (enables shell piping) instead of clipboard
31+
- **Audio player priority on Linux** - Replay command now prefers mpv for better user experience (falls back to vlc, ffplay, paplay, xdg-open)
32+
- **Hyprland window rules syntax** - Updated to new Hyprland window rule syntax with dynamic expressions and `match:` patterns (BREAKING CHANGE)
33+
- **Float script defaults to clipboard** - `ostt-float.sh` now defaults to `-c` (clipboard) if no arguments provided; existing Hyprland configs continue to work
34+
- **BREAKING CHANGE for Hyprland/macOS popup users**: Default output changed to stdout. Update your integration scripts to add `-c` flag for clipboard output. See upgrade guides:
35+
- [Hyprland Upgrade Guide](environments/hyprland/README.md#upgrading-from-005)
36+
- [macOS Upgrade Guide](environments/macOS/README.md#upgrading-from-005)
37+
1038
### Fixed
1139

1240
- Transcribed text no longer includes leading/trailing whitespace added by transcription models
13-
- Code quality improvements: fixed format string linting issues
41+
- Log rotation now properly removes old log files (previously accumulated indefinitely)
1442

1543
## [0.0.5] - 2025-12-27
1644

Cargo.lock

Lines changed: 138 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ console = "0.15.8"
1717
ctrlc = "3.5.1"
1818
tui-input = "0.14.0"
1919

20+
# CLI argument parsing
21+
clap = { version = "4.5", features = ["derive"] }
22+
clap_complete = "4.5"
23+
2024
# Audio capture and processing
2125
cpal = "0.16.0"
2226
hound = "3.5.1"
@@ -30,6 +34,7 @@ serde = { version = "1.0.228", features = ["derive"] }
3034
toml = "0.8.12"
3135
dirs = "6.0.0"
3236
anyhow = "1.0.86"
37+
regex = "1.10"
3338

3439
# Logging
3540
tracing = "0.1.40"

DISTRIBUTION.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ ostt/
2828
### 1. Shell Installer (Linux/macOS) - Recommended
2929

3030
```bash
31-
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/kristoferlund/ostt/releases/download/v0.0.1/ostt-installer.sh | sh
31+
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/kristoferlund/ostt/releases/latest/download/ostt-installer.sh | sh
3232
```
3333

3434
Then configure:
@@ -164,13 +164,21 @@ On first run, ostt automatically:
164164

165165
### Hyprland Integration
166166

167-
If you're using Hyprland, add a keybinding to your Hyprland config after first run:
167+
If you're using Hyprland, add a keybinding and window rules to your Hyprland config after first run:
168168

169-
```bash
170-
bind = $mainMod, R, exec, ~/.local/bin/ostt-float
169+
```hyprland
170+
# Keybinding for ostt (clipboard output)
171+
bindd = SUPER, R, ostt, exec, bash ~/.local/bin/ostt-float -c
172+
173+
# OSTT window rules
174+
windowrule = float on, match:title ostt
175+
windowrule = size (monitor_w*0.14) (monitor_h*0.08), match:title ostt
176+
windowrule = move ((monitor_w*0.5)-(window_w*0.5)) (monitor_h*0.9), match:title ostt
171177
```
172178

173-
This will launch ostt in a floating Alacritty terminal window.
179+
Then reload your Hyprland configuration: `hyprctl reload`
180+
181+
This will launch ostt in a floating Alacritty terminal window, centered horizontally and positioned at the bottom of the screen.
174182

175183
## Distribution Details
176184

0 commit comments

Comments
 (0)