From b9f147c3b361c5d6519708e6dfbfaf3c6061a25a Mon Sep 17 00:00:00 2001 From: Kharec Date: Fri, 2 Jan 2026 17:20:13 +0100 Subject: [PATCH] feat: add up/down arrow key bindings for playback speed control --- auditui/app.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/auditui/app.py b/auditui/app.py index 51318e8..2069e6f 100644 --- a/auditui/app.py +++ b/auditui/app.py @@ -43,6 +43,8 @@ class Auditui(App): ("right", "seek_forward", "+30s"), ("ctrl+left", "previous_chapter", "Previous chapter"), ("ctrl+right", "next_chapter", "Next chapter"), + ("up", "increase_speed", "Increase speed"), + ("down", "decrease_speed", "Decrease speed"), ("d", "toggle_download", "Download/Delete"), ("q", "quit", "Quit"), ] @@ -124,6 +126,14 @@ class Auditui(App): event.prevent_default() self.action_seek_forward() return + elif event.key == "up": + event.prevent_default() + self.action_increase_speed() + return + elif event.key == "down": + event.prevent_default() + self.action_decrease_speed() + return if isinstance(self.focused, DataTable): if event.key == "enter": @@ -290,6 +300,16 @@ class Auditui(App): if not self.playback.seek_to_previous_chapter(): self._no_playback_message() + def action_increase_speed(self) -> None: + """Increase playback speed.""" + if not self.playback.increase_speed(): + self._no_playback_message() + + def action_decrease_speed(self) -> None: + """Decrease playback speed.""" + if not self.playback.decrease_speed(): + self._no_playback_message() + def _no_playback_message(self) -> None: """Show message when no playback is active.""" self.update_status("No playback active. Press Enter to play a book.")