From 50acd2474aea288ce37ef4f5858c9f20845d7b14 Mon Sep 17 00:00:00 2001 From: FIGBERT Date: Thu, 20 Apr 2023 10:17:47 -0700 Subject: [PATCH] Add vim-like top/bottom keybinds to roster view --- config/keybindings.yaml | 2 ++ ui/view-roster.go | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/config/keybindings.yaml b/config/keybindings.yaml index e3dae68..8dd7b53 100644 --- a/config/keybindings.yaml +++ b/config/keybindings.yaml @@ -20,6 +20,8 @@ roster: 'k': prev_room 'Down': next_room 'Up': prev_room + 'g': top + 'G': bottom 'Escape': clear 'q': quit 'Enter': enter diff --git a/ui/view-roster.go b/ui/view-roster.go index 9cb4675..fd08c5e 100644 --- a/ui/view-roster.go +++ b/ui/view-roster.go @@ -281,6 +281,17 @@ func (rstr *RosterView) OnKeyEvent(event mauview.KeyEvent) bool { rstr.ScrollNext() case "prev_room": rstr.ScrollPrev() + case "top": + rstr.selected = rstr.First() + rstr.scrollOffset = 0 + case "bottom": + rstr.selected = rstr.Last() + + if i := len(rstr.rooms) - rstr.RoomsOnScreen(); i < 0 { + rstr.scrollOffset = 0 + } else { + rstr.scrollOffset = i + } case "clear": rstr.selected = nil case "quit":