From b1c43d1226dd00a96bbb529774e193ced086b21a Mon Sep 17 00:00:00 2001 From: Ivan Habunek Date: Thu, 31 Jul 2025 09:47:16 +0200 Subject: [PATCH] Resolve duplicate shortcut e This changes pin/unpin action to be bound to P (uppercase) thus introducing distinct upper/lowercase shortcuts. --- toot/tui/overlays.py | 42 +++++++++++++++++++++++------------------- toot/tui/timeline.py | 18 +++++++++--------- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/toot/tui/overlays.py b/toot/tui/overlays.py index b38fb3a..e6a90d6 100644 --- a/toot/tui/overlays.py +++ b/toot/tui/overlays.py @@ -204,16 +204,16 @@ class Help(urwid.Padding): yield urwid.Divider() yield urwid.Text(("bold", "General usage")) yield urwid.Divider() - yield urwid.Text(h(" [Arrow keys] or [H/J/K/L] to move around and scroll content")) + yield urwid.Text(h(" [Arrow keys] or [h/j/k/l] to move around and scroll content")) yield urwid.Text(h(" [PageUp] and [PageDown] to scroll content")) yield urwid.Text(h(" [Enter] or [Space] to activate buttons and menu options")) - yield urwid.Text(h(" [Esc] or [Q] to go back, close overlays, such as menus and this help text")) + yield urwid.Text(h(" [Esc] or [q] to go back, close overlays, such as menus and this help text")) yield urwid.Divider() yield urwid.Text(("bold", "General keys")) yield urwid.Divider() - yield urwid.Text(h(" [Q] - quit toot")) - yield urwid.Text(h(" [G] - go to - switch timelines")) - yield urwid.Text(h(" [E] - save/unsave (pin) current timeline")) + yield urwid.Text(h(" [q] - quit toot")) + yield urwid.Text(h(" [g] - go to - switch timelines")) + yield urwid.Text(h(" [P] - pin/unpin current timeline")) yield urwid.Text(h(" [,] - refresh current timeline")) yield urwid.Text(h(" [?] - show this help")) yield urwid.Divider() @@ -221,20 +221,24 @@ class Help(urwid.Padding): yield urwid.Divider() yield urwid.Text("These commands are applied to the currently focused status.") yield urwid.Divider() - yield urwid.Text(h(" [B] - Boost/unboost status")) - yield urwid.Text(h(" [C] - Compose new status")) - yield urwid.Text(h(" [F] - Favourite/unfavourite status")) - yield urwid.Text(h(" [K] - Bookmark/unbookmark status")) - yield urwid.Text(h(" [N] - Translate status if possible (toggle)")) - yield urwid.Text(h(" [R] - Reply to current status")) - yield urwid.Text(h(" [S] - Show text marked as sensitive")) - yield urwid.Text(h(" [M] - Show status media")) - yield urwid.Text(h(" [T] - Show status thread (replies)")) - yield urwid.Text(h(" [I] - Show the status links")) - yield urwid.Text(h(" [U] - Show the status data in JSON as received from the server")) - yield urwid.Text(h(" [V] - Open status in default browser")) - yield urwid.Text(h(" [Y] - Copy status to clipboard")) - yield urwid.Text(h(" [Z] - Open status in scrollable popup window")) + yield urwid.Text(h(" [a] - Show account")) + yield urwid.Text(h(" [b] - Boost/unboost status")) + yield urwid.Text(h(" [c] - Compose a new status")) + yield urwid.Text(h(" [d] - Delete status")) + yield urwid.Text(h(" [e] - Edit status")) + yield urwid.Text(h(" [f] - Favourite/unfavourite status")) + yield urwid.Text(h(" [i] - Show the status links")) + yield urwid.Text(h(" [m] - Show media in image viewer")) + yield urwid.Text(h(" [n] - Translate status if possible (toggle)")) + yield urwid.Text(h(" [o] - Bookmark/unbookmark status")) + yield urwid.Text(h(" [p] - Vote on a poll")) + yield urwid.Text(h(" [r] - Reply to status")) + yield urwid.Text(h(" [s] - Show text marked as sensitive")) + yield urwid.Text(h(" [t] - Show status thread (replies)")) + yield urwid.Text(h(" [u] - Show the status data in JSON as received from the server")) + yield urwid.Text(h(" [v] - Open status in default browser")) + yield urwid.Text(h(" [y] - Copy status to clipboard")) + yield urwid.Text(h(" [z] - Open status in scrollable popup window")) yield urwid.Divider() yield urwid.Text(("bold", "Links")) yield urwid.Divider() diff --git a/toot/tui/timeline.py b/toot/tui/timeline.py index 916aec0..060fdd8 100644 --- a/toot/tui/timeline.py +++ b/toot/tui/timeline.py @@ -208,10 +208,6 @@ class Timeline(urwid.Columns): self.tui.show_delete_confirmation(status) return - if key in ("e", "E"): - self._emit("save", status) - return - if key in ("e", "E"): if status.is_mine: self.tui.async_edit(status) @@ -221,6 +217,10 @@ class Timeline(urwid.Columns): self.tui.async_toggle_favourite(self, status) return + if key in ("i", "I"): + self.tui.show_links(status) + return + if key in ("m", "M"): self.tui.show_media(status) return @@ -230,20 +230,20 @@ class Timeline(urwid.Columns): self.tui.async_translate(self, status) return - if key in ("i", "I"): - self.tui.show_links(status) - return - if key in ("o", "O"): self.tui.async_toggle_bookmark(self, status) return - if key in ("p", "P"): + if key == "p": poll = status.original.data.get("poll") if poll and not poll["expired"]: self.tui.show_poll(status) return + if key == "P": + self._emit("save", status) + return + if key in ("q", "Q"): self._emit("close") return