retronews

a featureful fork of the luke8086/retronews hn+lobste.rs tui
Log | Files | Refs | README | LICENSE

commit 3e97c3cc58835dd78ec3d1b263bad37312d1a1f0
parent 82bf499bfbf510046abc6ce711e5f5cbae5a8dbc
Author: luke8086 <55237178+luke8086@users.noreply.github.com>
Date:   Sat, 23 Jul 2022 21:26:55 +0000

Improve keybindings, show the most important ones in top menu

Diffstat:
Mretronews.py | 36+++++++++++++++++++++++-------------
1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/retronews.py b/retronews.py @@ -164,21 +164,27 @@ def cmd_quit(app: AppState): def cmd_up(app: AppState) -> None: - pos = app.selected_message.index_position - 1 if app.selected_message else 0 - app_select_message(app, list_get(app.messages, pos, app.selected_message)) + if app.pager_visible: + app.pager_offset = max(0, app.pager_offset - 1) + else: + cmd_index_up(app) def cmd_down(app: AppState) -> None: - pos = app.selected_message.index_position + 1 if app.selected_message else 0 - app_select_message(app, list_get(app.messages, pos, app.selected_message)) + if app.pager_visible: + app.pager_offset += 1 + else: + cmd_index_down(app) -def cmd_pager_up(app: AppState) -> None: - app.pager_offset = max(0, app.pager_offset - 1) +def cmd_index_up(app: AppState) -> None: + pos = app.selected_message.index_position - 1 if app.selected_message else 0 + app_select_message(app, list_get(app.messages, pos, app.selected_message)) -def cmd_pager_down(app: AppState) -> None: - app.pager_offset += 1 +def cmd_index_down(app: AppState) -> None: + pos = app.selected_message.index_position + 1 if app.selected_message else 0 + app_select_message(app, list_get(app.messages, pos, app.selected_message)) def cmd_page_up(app: AppState) -> None: @@ -234,10 +240,12 @@ KEY_BINDINGS = { ord("x"): cmd_close, ord("s"): cmd_star, ord("r"): cmd_toggle_raw_mode, - curses.KEY_UP: cmd_up, - curses.KEY_DOWN: cmd_down, - ord("k"): cmd_pager_up, - ord("j"): cmd_pager_down, + ord("k"): cmd_up, + ord("j"): cmd_down, + ord("p"): cmd_index_up, + ord("n"): cmd_index_down, + curses.KEY_UP: cmd_index_up, + curses.KEY_DOWN: cmd_index_down, curses.KEY_PPAGE: cmd_page_up, curses.KEY_NPAGE: cmd_page_down, } @@ -462,7 +470,9 @@ def app_render_menus(app: AppState, index_height: int) -> None: pager_menu_row = lines - 2 * MENU_HEIGHT flash_menu_row = lines - MENU_HEIGHT - app.screen.insstr(top_menu_row, 0, "top menu".ljust(cols), app.colors.menu | curses.A_BOLD) + top_menu = "q:Quit n:Next p:Prev j:Down k:Up <space>:Open x:Close s:Star r:Raw" + + app.screen.insstr(top_menu_row, 0, top_menu[:cols].ljust(cols), app.colors.menu | curses.A_BOLD) app.screen.insstr(index_menu_row, 0, "index menu".ljust(cols), app.colors.menu | curses.A_BOLD) if app.pager_visible: