diff options
| author | Fuwn <[email protected]> | 2026-01-30 07:32:54 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-01-30 07:32:54 +0000 |
| commit | 5f3eba126201e4d679539aa2517bf6a132f29cd0 (patch) | |
| tree | 961afe2ae1d6ca0f23bdbb30930e37bc88884146 /internal/ui/keys.go | |
| download | faustus-5f3eba126201e4d679539aa2517bf6a132f29cd0.tar.xz faustus-5f3eba126201e4d679539aa2517bf6a132f29cd0.zip | |
feat: Initial commit
Diffstat (limited to 'internal/ui/keys.go')
| -rw-r--r-- | internal/ui/keys.go | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/internal/ui/keys.go b/internal/ui/keys.go new file mode 100644 index 0000000..81692ca --- /dev/null +++ b/internal/ui/keys.go @@ -0,0 +1,126 @@ +package ui + +import "github.com/charmbracelet/bubbles/key" + +type KeyMap struct { + Up key.Binding + Down key.Binding + Left key.Binding + Right key.Binding + Enter key.Binding + Delete key.Binding + Restore key.Binding + Rename key.Binding + Search key.Binding + DeepSearch key.Binding + NextMatch key.Binding + PrevMatch key.Binding + Tab key.Binding + Clear key.Binding + Quit key.Binding + Help key.Binding + Escape key.Binding + Confirm key.Binding + HalfUp key.Binding + HalfDown key.Binding + Top key.Binding + Bottom key.Binding + Preview key.Binding +} + +func DefaultKeyMap() KeyMap { + return KeyMap{ + Up: key.NewBinding( + key.WithKeys("k", "up"), + key.WithHelp("k", "move up"), + ), + Down: key.NewBinding( + key.WithKeys("j", "down"), + key.WithHelp("j", "move down"), + ), + Left: key.NewBinding( + key.WithKeys("h", "left"), + key.WithHelp("h", "previous tab"), + ), + Right: key.NewBinding( + key.WithKeys("l", "right"), + key.WithHelp("l", "next tab"), + ), + HalfUp: key.NewBinding( + key.WithKeys("ctrl+u"), + key.WithHelp("ctrl+u", "page up"), + ), + HalfDown: key.NewBinding( + key.WithKeys("ctrl+d"), + key.WithHelp("ctrl+d", "page down"), + ), + Top: key.NewBinding( + key.WithKeys("g", "home"), + key.WithHelp("gg", "jump to top"), + ), + Bottom: key.NewBinding( + key.WithKeys("G", "end"), + key.WithHelp("G", "jump to bottom"), + ), + Enter: key.NewBinding( + key.WithKeys("enter"), + key.WithHelp("return", "select"), + ), + Delete: key.NewBinding( + key.WithKeys("d", "x"), + key.WithHelp("d", "move to bin"), + ), + Restore: key.NewBinding( + key.WithKeys("u"), + key.WithHelp("u", "restore"), + ), + Rename: key.NewBinding( + key.WithKeys("c"), + key.WithHelp("c", "rename"), + ), + Search: key.NewBinding( + key.WithKeys("/"), + key.WithHelp("/", "filter"), + ), + DeepSearch: key.NewBinding( + key.WithKeys("s"), + key.WithHelp("s", "search"), + ), + NextMatch: key.NewBinding( + key.WithKeys("n"), + key.WithHelp("n", "next match"), + ), + PrevMatch: key.NewBinding( + key.WithKeys("N"), + key.WithHelp("N", "previous match"), + ), + Tab: key.NewBinding( + key.WithKeys("tab"), + key.WithHelp("tab", "switch focus"), + ), + Clear: key.NewBinding( + key.WithKeys("D"), + key.WithHelp("D", "empty bin"), + ), + Quit: key.NewBinding( + key.WithKeys("q", "ctrl+c"), + key.WithHelp("q", "quit"), + ), + Help: key.NewBinding( + key.WithKeys("?"), + key.WithHelp("?", "help"), + ), + Escape: key.NewBinding( + key.WithKeys("esc"), + key.WithHelp("esc", "cancel"), + ), + Confirm: key.NewBinding( + key.WithKeys("y", "Y"), + key.WithHelp("y", "confirm"), + ), + Preview: key.NewBinding( + key.WithKeys("p"), + key.WithHelp("p", "toggle preview"), + ), + } +} |