From c8d697603032a3462fb2a4bd09ad630505bae55e Mon Sep 17 00:00:00 2001 From: vrubelroman Date: Wed, 29 Apr 2026 15:20:53 +0300 Subject: [PATCH] refactor: remove Edit key binding, rename ExtractArchive -> Unpack - Remove unused Edit key binding (no keys assigned, duplicated Enter) - Rename ExtractArchive to Unpack across KeyMap struct, DefaultKeyMap(), ShortHelp(), FullHelp(), and Model.Update() handler - Rename handleExtractArchive() -> handleUnpack() - Update help text, status messages, and dialog titles to 'unpack' --- internal/ui/keymap.go | 12 +++++------- internal/ui/model.go | 16 +++++++--------- vcom.toml | 2 +- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/internal/ui/keymap.go b/internal/ui/keymap.go index 039bbdc..3570560 100644 --- a/internal/ui/keymap.go +++ b/internal/ui/keymap.go @@ -7,7 +7,6 @@ type KeyMap struct { Visual key.Binding Caret key.Binding View key.Binding - Edit key.Binding Rename key.Binding Info key.Binding Archive key.Binding @@ -32,7 +31,7 @@ type KeyMap struct { Move key.Binding Mkdir key.Binding Delete key.Binding - ExtractArchive key.Binding + Unpack key.Binding Confirm key.Binding Background key.Binding ProgressCancel key.Binding @@ -49,7 +48,6 @@ func DefaultKeyMap() KeyMap { View: key.NewBinding(key.WithKeys("f3", "v"), key.WithHelp("F3/v", "view")), Visual: key.NewBinding(key.WithKeys("v"), key.WithHelp("v", "visual")), Caret: key.NewBinding(key.WithKeys("i"), key.WithHelp("i", "caret")), - Edit: key.NewBinding(key.WithKeys("e"), key.WithHelp("e", "edit")), Archive: key.NewBinding(key.WithKeys("f4", "a"), key.WithHelp("F4/a", "archive")), Info: key.NewBinding(key.WithKeys("f9", "o"), key.WithHelp("F9/o", "info")), SelectText: key.NewBinding(key.WithKeys("ctrl+t"), key.WithHelp("C-t", "text select")), @@ -73,7 +71,7 @@ func DefaultKeyMap() KeyMap { Move: key.NewBinding(key.WithKeys("f6", "m"), key.WithHelp("F6/m", "move")), Mkdir: key.NewBinding(key.WithKeys("f7", "n"), key.WithHelp("F7/n", "mkdir")), Delete: key.NewBinding(key.WithKeys("f8", "delete", "x"), key.WithHelp("F8/x", "delete")), - ExtractArchive: key.NewBinding(key.WithKeys("f11", "e"), key.WithHelp("F11/e", "extract archive")), + Unpack: key.NewBinding(key.WithKeys("f11", "e"), key.WithHelp("F11/e", "unpack")), Confirm: key.NewBinding(key.WithKeys("enter", "y"), key.WithHelp("Enter/y", "confirm")), Background: key.NewBinding(key.WithKeys("b"), key.WithHelp("b", "background")), ProgressCancel: key.NewBinding(key.WithKeys("c"), key.WithHelp("c", "cancel transfer")), @@ -85,13 +83,13 @@ func DefaultKeyMap() KeyMap { } func (k KeyMap) ShortHelp() []key.Binding { - return []key.Binding{k.Help, k.Rename, k.View, k.Archive, k.Copy, k.Move, k.Mkdir, k.Delete, k.Info, k.Quit, k.ExtractArchive, k.SSH} + return []key.Binding{k.Help, k.Rename, k.View, k.Archive, k.Copy, k.Move, k.Mkdir, k.Delete, k.Info, k.Quit, k.Unpack, k.SSH} } func (k KeyMap) FullHelp() [][]key.Binding { return [][]key.Binding{ {k.Help, k.Up, k.Down, k.SelectUp, k.SelectDown, k.Open, k.Back}, - {k.Rename, k.View, k.Caret, k.Edit, k.Archive, k.Copy, k.Move, k.Delete}, - {k.ExtractArchive, k.SelectText, k.DirSize, k.Refresh, k.ToggleHidden, k.CycleSort, k.CycleTheme, k.Quit}, + {k.Rename, k.View, k.Caret, k.Archive, k.Copy, k.Move, k.Delete}, + {k.Unpack, k.SelectText, k.DirSize, k.Refresh, k.ToggleHidden, k.CycleSort, k.CycleTheme, k.Quit}, } } diff --git a/internal/ui/model.go b/internal/ui/model.go index ccdb5fd..34a3f49 100644 --- a/internal/ui/model.go +++ b/internal/ui/model.go @@ -1174,8 +1174,6 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.toggleVisualMode() } return m, nil - case key.Matches(msg, m.keys.Edit): - return m.handleEdit() case key.Matches(msg, m.keys.Archive): return m.handleArchive() case key.Matches(msg, m.keys.Info): @@ -1257,8 +1255,8 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m, nil case key.Matches(msg, m.keys.Delete): return m.handleDelete() - case key.Matches(msg, m.keys.ExtractArchive): - return m.handleExtractArchive() + case key.Matches(msg, m.keys.Unpack): + return m.handleUnpack() case key.Matches(msg, m.keys.SSH): log.Printf("[KEY] SSH toggle — active=%s path=%s", m.active, activePane.Path) return m.handleSSHToggle() @@ -2350,11 +2348,11 @@ func (m *Model) handleDelete() (tea.Model, tea.Cmd) { return m, trashPlanCmd(sources) } -func (m *Model) handleExtractArchive() (tea.Model, tea.Cmd) { +func (m *Model) handleUnpack() (tea.Model, tea.Cmd) { selected, ok := m.activePane().Selected() if !ok || !isArchiveEntry(selected) { - log.Printf("[SKIP] ExtractArchive: no archive selected") - m.status = "Select an archive file to extract" + log.Printf("[SKIP] Unpack: no archive selected") + m.status = "Select an archive file to unpack" return m, nil } @@ -2362,10 +2360,10 @@ func (m *Model) handleExtractArchive() (tea.Model, tea.Cmd) { targetPane := m.passivePane() targetDir := targetPane.Path - log.Printf("[ACTION] ExtractArchive: source=%s target=%s", selected.Path, targetDir) + log.Printf("[ACTION] Unpack: source=%s target=%s", selected.Path, targetDir) // Show confirm dialog before extracting - title := fmt.Sprintf("Extract %s?", selected.DisplayName()) + title := fmt.Sprintf("Unpack %s?", selected.DisplayName()) body := fmt.Sprintf("Archive: %s\nTarget: %s", selected.Path, targetDir) note := "Enter / y to confirm, Esc / n to cancel" pending := pendingOperation{ diff --git a/vcom.toml b/vcom.toml index 55ad510..80bc448 100644 --- a/vcom.toml +++ b/vcom.toml @@ -4,7 +4,7 @@ right_path = '' [ui] app_title = 'vcom' -theme = 'catppuccin-mocha' +theme = 'one-dark' icon_mode = 'auto' show_title_bar = true show_footer = true