Gitwig - Panel & UI Window Directory
This document lists and describes all the user interface panels, tabs, views, overlay pickers, inputs, and modal dialogs implemented in Gitwig, along with their available keyboard shortcuts.
1. Home Screen (Repository List View)
The primary dashboard shown when Gitwig starts up.
- Repository List Panel: Displays cards for all configured/scanned repositories. Supports Standard, Compact, and Tile grid layouts.
- Shortcuts:
↑/k/up: Move selection up↓/j/down: Move selection downPgUp/pageup: Jump one page upPgDn/pagedown: Jump one page downHome/home: Go to top of listEnd/end: Go to bottom of listEnter/→/right: Open repository detailsSpace: Toggle selection for batch actionsp: Toggle pin status of selected item*: Toggle Starred / Favorite status of selected itemy: Yank absolute path to clipboard/: Open fuzzy Jump-to-Repo pickerf: Enter repository list search query input modectrl-f: Open global code search across all repositoriesR: Refresh status of selected item manuallyF: Bulk fetch all repositories concurrentlyo: Cycle sorting criteria (Name, Path, Last Commit, Status)O: Toggle reverse sortingv: Cycle repository list layout (Normal/Compact/Tile)a: Add a repository path manuallyA: Bulk add subdirectories of a directoryi: Import / clone a remote repositorye: Edit selected repository entryD: Delete selected repository entryl: Edit custom labels of selected itemt: Open terminal shell in repository pathg: Launch preferred external Git GUI clientd: Open debug logs panelV: Open about dialogh: Show signs & symbols legend popupu: Check for updates manuallys: Open settings view?: Toggle help overlayctrl-q: Quit Gitwig
- Shortcuts:
- Grouping Sidebar (Left): Visible when
Show Groupingis enabled. Groups repositories into Recent, Starred, and custom Labels.- Shortcuts:
←/→: Toggle focus between sidebar groups and repository listSpace/Enter: Collapse / expand label groups (when focused on header)
- Shortcuts:
- Bottom Command/Status Bar: Reflects current keyboard context, active mode, background fetches, and CPU/memory statistics.
2. Repository Detail / Workspace View
Triggered by opening a repository.
Sidebar Panel (Left)
- Tab Selector Panel: Navigates between primary and advanced views.
- Shortcuts:
Esc/q/Q: Close details / Return to Home Screen?: Toggle detail view shortcut help overlayw: Cycle focus forward through panelsW: Cycle focus backward through panelsTab: Cycle tab forwardShift+Tab/backtab: Cycle tab backwardR: Resync active tab details manually1-7: Jump directly to Tabs 1-7 (or Tabs 8-11 in advanced group)Z: Toggle Advanced Tab group (Worktrees, Submodules, Reflog, Forge)O: Show repository Overview overlay
- Shortcuts:
Main Workspace Tabs
Tab 0: Workspace (Commits History & Workspace Staging)
- Commits List Panel (Left): Lists Git commit logs with authors, dates, and messages. Includes an "Uncommitted changes" virtual item at the very top.
- Shortcuts:
↑/k/K: Move selection up↓/j/J: Move selection downPgUp/PgDn: Scroll commit listHome/End: Jump to top / bottom of listEnter/→: Inspect selected commit (enters Commit Inspection Layout)t/T: Create tag at selected commitb/B: Create new branch at selected commity/Y: Yank selected commit hasho/O: Checkout selected commit (detached HEAD)v/V: Revert selected commitp/P: Cherry-pick selected commiti/I: Run interactive rebase from selected commits/S: Open stashing UI panelc: Open Commit message dialogC: Open Commit message dialog with Amend/: Fuzzy search commits listf: Open search column picker popupl/L: Open full-screen Logs viewG: Load more commits
- Shortcuts:
- Commit Info Panel (Top Right): Metadata and descriptions of the selected commit.
- Files List Panel (Bottom Right): List of changed files in the selected commit. Displays inline diff on selection.
Tab 1: Files Tab (Working Directory Browser)
- File Tree Panel (Left): Lists all files in the current workspace directory.
- Shortcuts:
↑/k/K: Move selection up↓/j/J: Move selection downPgUp/PgDn: Scroll file listHome/End: Jump to top / bottom of file tree>/.: Expand folder in tree</,: Collapse folder in treeb/B: Toggle git blame paneln/N: Toggle line numbers in content viewere/o: Open selected file in default terminal editorH: View commit history of the selected file/: Launch fuzzy file search picker
- Shortcuts:
- File Content Viewer (Right): Displays code content of the selected file. Supports git blame when toggled.
- Shortcuts when focused:
↑/k/K: Scroll content up↓/j/J: Scroll content downPgUp/PgDown: Scroll content page up / downHome/End: Scroll to top / bottom of content→: Enter full-screen view mode←: Exit full-screen view mode
- Shortcuts when focused:
Tab 2: Graph Tab
- Commit Graph Panel: A full-width panel displaying a visual branch-merging history graph.
- Shortcuts:
↑/k/K: Move selection up↓/j/J: Move selection downPgUp/PgDn: Scroll graph pageHome/End: Jump to top / bottomEnter/→: Inspect selected commit (enters Commit Inspection Layout)y/Y: Yank selected commit hash
- Shortcuts:
Tab 3: Branches Tab
- Branches Lists (Local left, Remote right): Displays repository branches.
- Shortcuts:
←/→: Switch focus between Local and Remote branches lists↑/k/K: Move selection up↓/j/J: Move selection downPgUp/PgDn/Home/End: Navigate branch listsEnter: Checkout selected branchc/C: Create new branchD: Delete selected branchm/M: Merge selected branch into current branchr: Rebase current branch onto selected branchi/I: Interactive rebase of current branch onto selected branchp: Pull remote changes (for local branches)P: Push selected branch to remote (for local branches)/: Fuzzy search branches
- Shortcuts:
Tab 4: Tags Tab
- Tags List Panel: Lists local and remote tags.
- Shortcuts:
↑/k/K/↓/j/J: Move selectionPgUp/PgDn/Home/End: Navigate tag listEnter: Checkout selected tagD: Delete selected tagp: Push selected tag to remoteP: Push all tags to remotef/F: Fetch remote tags/: Fuzzy search tags
- Shortcuts:
Tab 5: Remotes Tab
- Remotes List Panel: Lists configured remote sources.
- Shortcuts:
↑/k/K/↓/j/J: Move selectionPgUp/PgDn/Home/End: Navigate remote lista/A: Add a new remoteD: Delete selected remotef/F: Fetch selected remote (opens picker if multiple remotes exist)
- Shortcuts:
Tab 6: Stashes Tab
- Stashes Panel (Left): Lists stashed changes.
- Shortcuts:
↑/k/K/↓/j/J: Move selectionPgUp/PgDn/Home/End: Navigate stashes lista/A: Apply selected stashs/S: Create a new stash (opens stash message input)D: Delete selected stash
- Shortcuts:
- Stashed Files Panel (Top Right): Lists files in selected stash.
- Stash Diff Panel (Bottom Right): Diff preview of selected stashed files.
Tab 7: Worktrees Tab (Advanced Tab Group)
- Worktrees List Panel: Lists worktrees.
- Shortcuts:
↑/k/K/↓/j/J: Move selectionPgUp/PgDn/Home/End: Navigate worktrees listEnter: Open selected worktree in new Gitwig context (adds to list and focuses it)a: Add new worktreeD: Remove selected worktreel: Toggle lock status of selected worktree (asks for reason if locking)p: Prune stale worktree metadata
- Shortcuts:
Tab 8: Submodules Tab (Advanced Tab Group)
- Submodules List Panel: Lists submodules.
- Shortcuts:
↑/k/K/↓/j/J: Move selectiona: Add new submoduleD: Delete selected submodule
- Shortcuts:
Tab 9: Reflog Tab (Advanced Tab Group)
- Reflog List Panel: Lists local reference logs.
- Shortcuts:
↑/k/K/↓/j/J: Move selectionPgUp/PgDn/Home/End: Navigate reflog listEnter/Space: Checkout commit OID of selected reflog entry
- Shortcuts:
Tab 10: Forge Issues Tab (Advanced Tab Group)
- Forge Issues Panel: Displays PRs, issues, and CI/CD status.
- Shortcuts:
↑/k/K/↓/j/J: Move selectionPgUp/PgDn/Home/End: Navigate issues listEnter: Checkout branch corresponding to selected issueo: Open selected issue in web browser
- Shortcuts:
Tab 11: Forge PRs Tab (Advanced Tab Group)
- Forge Pull Requests Panel: Displays PR list and details.
- Shortcuts:
↑/k/K/↓/j/J: Move selectionPgUp/PgDn/Home/End: Navigate PRs listEnter: Checkout branch corresponding to selected PRo: Open selected PR in web browsern: Add a line comment to the current Pull Request
- Shortcuts:
3. Commit Inspection Layout (Mode::Inspect)
Workspace layout for inspecting commits and diffs in details.
- General Shortcuts:
Esc/q/Q: Exit inspection, return to Workspace TabTab/w: Cycle focus forward between Staged, Unstaged, Conflicts, and Diff viewer panelsShift+Tab/W: Cycle focus backward between panels?: Toggle inspect view shortcut help
- Staging Lists Shortcuts (Staged/Unstaged/Conflicts):
↑/k/K/↓/j/J: Navigate file listsEnter: Stage selected file (if in Unstaged list) or Unstage selected file (if in Staged list)a: Stage all changes (if in Unstaged) or Unstage all changes (if in Staged)x: Discard changes in selected unstaged file (opens confirmation dialog)X: Discard all unstaged changes in repository (opens confirmation dialog)c: Start commit message dialogC: Start commit message dialog with Amends/S: Open stashing UI panel
- Diff Viewer Panel Shortcuts:
↑/k/K/↓/j/J: Navigate lines / hunks (or scroll content)PgUp/PgDn/Home/End: Scroll diff viewer→: Expand diff viewer to full screen (setsinspect_full_diff = true)←: Exit full-screen diff viewerl/L: Toggle line-by-line stage/discard mode (switches between Hunk mode and Line mode)Enter/s: Stage selected line or hunk (when focused on Unstaged file diff)Enter/u: Unstage selected line or hunk (when focused on Staged file diff)x/Delete: Discard selected line or hunk (when focused on Unstaged file diff)
4. Conflict Resolution Panel (Inside Workspace Merge Conflict State)
Triggers when staging changes encounters merge conflicts.
- Shortcuts (in Staging lists or Diff viewer):
o: Accept OURS version of conflictt: Accept THEIRS version of conflictr: Mark conflict as resolvedA: Abort merge (opens confirmation dialog)C: Continue merge (opens confirmation dialog)
5. Standalone Views (Full Screen / Dedicated Panels)
Logs View (Mode::Logs)
Full-screen git commits history.
- Shortcuts:
Esc/q/Q: Return to Workspace Tab↑/k/K/↓/j/J: Navigate commitsPgUp/PgDn/Home/End: Scroll commits listEnter: Inspect selected commit (enters Commit Inspection Layout)/: Start commit fuzzy search pickerf: Open search column picker popupG: Load more commits
Per-File History View (Mode::FileHistory)
Commits history of selected file.
- Shortcuts:
Esc/q/Q: Return to detail viewTab/w/W/←/→: Toggle keyboard focus between Revisions list and Diff panel↑/k/K/↓/j/J: Scroll list (when Revisions is focused) or scroll diff (when Diff is focused)PgUp/PgDn/Home/End: Scroll list / diff
Debug Logs Panel (Mode::DebugLogs)
App logs viewer.
- Shortcuts:
Esc/q/D/l/L: Return to Home Screen↑/k/↓/j: Scroll logs line-by-linePgUp/PgDown: Scroll logs page-by-pageHome/End: Scroll to top / bottom of debug logs
Settings View (Mode::Settings)
Full-screen configuration editor split into Categories and Fields.
- Shortcuts:
Esc: Return to category sidebar (if in fields panel) or return to Home Screen (if in sidebar)q/Q: Return to Home Screen1-5: Jump directly to Category 1-5 (General, Sorting, Scan, Theme, Keybindings)←/h/H: Focus category sidebar→/l/L/w/W: Focus fields panel on the right↑/k/K/↓/j/J: Navigate categories (if focused on sidebar) or fields (if focused on fields)PgUp/PgDown: Jump selection to top / bottom of active category or fieldsEnter: Edit selected setting field (or toggle switch)- Shortcuts when editing a field:
Enter: Save and commit changesEsc: Cancel edits and revert field valueBackspace/ character keys : Input value↑/k/↓/j/PgUp/PgDown/Home/End: Navigate items (only when selecting a theme)
Signs & Symbols Legend Popup (Mode::Legend)
Quick reference guide to badges, operations, and status indicators.
- Shortcuts:
Esc/ctrl-q/h: Close legend popup↑/k/↓/j/PgUp/PgDown/Home/End: Scroll legend content
About Popup (Mode::About)
Information about Gitwig, version details, and creator profile.
- Shortcuts:
Esc/ctrl-q/V: Close about popup
App Usage Stats Popup (Mode::StatsDashboard)
Dashboard detailing aggregated usage statistics such as session duration, total lines authored, repositories imported, branches/commits created, network activities, and a visual 52-week Activity Heatmap.
- Shortcuts:
Esc/ctrl-q/U: Close stats dashboard
Search Columns Selector Popup (Mode::SearchColumnPicker)
Picker to select columns to search by (SHA, Message, Author, Date) before entering fuzzy logs search.
- Shortcuts:
↑/k/↓/j: Navigate search columns (SHA, Message, Author, Date)Space: Toggle selected search column checkboxEnter: Confirm and open logs search input modalEsc/q/Q: Cancel and close columns selector
Repository Settings Popup (Mode::RepoSettings)
Custom per-repository config editor (Theme, Page Size, Max Commits, Editor path, custom Note, Git LFS Tracking/Pull). Accessed via s on the repository Overview screen.
- Shortcuts:
Esc: Cancel text edit (if editing) or return to Detail view (if in popup)q/Q: Return to Detail view↑/k/↓/j: Navigate settings rows←/h/→/l: Change values for option fields (Theme, Resync on Tab Change)Enter/Space: Edit/Toggle setting (toggles themes, enters text input for fields, runs LFS Pull, or refreshes LFS details)
Not Git Repository Popup (Mode::NotGitRepo)
Warning dialog shown when selecting a directory that is not a valid Git repository.
- Shortcuts:
Esc/Enter/q: Acknowledge warning and return to Home Screen
Help Overlay (Mode::Help / Mode::DetailHelp)
Floating keyboard shortcut reference popup shown on top of the Home Screen or Detail View.
- Shortcuts:
Esc/q/?: Dismiss help overlay
Global Search View (Mode::GlobalSearch)
Full-screen dashboard to search for keywords/code across all tracked repositories simultaneously.
- Shortcuts:
Esc: Clear search and return to Home ScreenTab: Toggle keyboard focus between search input and matches list↑/↓: Scroll/navigate matched itemsPgUp/PgDn/Home/End: Navigate matches listEnter: Trigger search (if input is focused) or open selected file match in Detail view (if list is focused)Backspace/ character keys : Input query (when input is focused)
6. Interactive Search & Picker Overlays
Floating modal components with search-as-you-type inputs. Matches are ranked and updated in real time.
- Available overlays:
- RepoJump: Fuzzy repository navigator (
/on Home Screen) - RepoScanPicker: Select repository path from scanned directories (
aon Home Screen) - BulkAddScanPicker: Select directory to scan and import repositories (
Aon Home Screen) - BranchSearchInput: Fuzzy branch checkout picker (
/on Branches Tab) - FileSearchInput: Fuzzy file finder (
/on Files Tab) - CommitFuzzySearch: Fuzzy commit hash/message finder (
/on Commits Tab or Logs View) - TagSearchInput: Fuzzy tag checkout picker (
/on Tags Tab)
- RepoJump: Fuzzy repository navigator (
- Shortcuts inside overlays:
Esc: Cancel and close overlayEnter: Confirm selection↑/↓: Navigate matched items listBackspace: Delete search query character- Character keys : Input fuzzy search query query
7. Input Modals & Setup Dialogs
Modal text entry boxes for setting up configurations or typing messages.
- Available dialogs:
- Commit Message Dialog: Type commit message and description. Use
Ctrl+Hto select from history. - Branch / Tag / Stash Creation dialogs: Enter new names.
- Import / Remote Setup dialogs: Enter URLs, names, and paths.
- Worktree / Submodule Setup dialogs: Enter paths, branches, or lock reasons.
- Label entry dialogs: Prompt custom labels for repository grouping.
- Commit Message Dialog: Type commit message and description. Use
- Shortcuts:
Esc: Cancel / close dialogEnter: Submit entry (orCtrl+Enterfor multi-line inputs like the Commit Dialog)Backspace: Erase character- Character keys : Input characters
8. Warning & Confirmation Modals
Double-checks before executing hazardous or state-altering actions.
The Safety Intercept Feature
To prevent accidental data loss due to muscle-memory Enter keypresses, Gitwig intercepts keystrokes on the router level. For any modal classified as a Destructive Action, pressing Enter defaults to Cancel (ConfirmNo). To confirm a destructive action, the user must explicitly press y or Y. For non-destructive actions, Enter acts normally to confirm.
Destructive Actions (Enter acts as Cancel)
- Discard Changes (
Mode::DiscardChangesConfirm): Discarding unstaged/staged files, hunks, or lines. - Delete Branch (
Mode::BranchDeleteConfirm): Deleting a local or remote tracking branch. - Delete Tag (
Mode::TagDeleteConfirm): Deleting a Git tag locally or remotely. - Delete Stash (
Mode::StashDeleteConfirm): Dropping/deleting a stash entry from the stashes list. - Delete Remote (
Mode::RemoteDeleteConfirm): Removing a configured remote repository connection. - Delete Submodule (
Mode::SubmoduleDeleteConfirm): Deleting a submodule reference. - Abort Merge (
Mode::MergeAbortConfirm): Aborting an active merge session (reverting resolved conflicts).
Non-Destructive Actions (Enter acts as Confirm)
Branch Checkout (
Mode::BranchCheckoutConfirm): Switching to another branch.Commit Checkout (
Mode::CommitCheckoutConfirm): Checking out a commit OID from the Workspace commits list.Tag Checkout (
Mode::TagCheckoutConfirm): Detaching HEAD to check out a tag.Branch Push (
Mode::BranchPushConfirm): Pushing commits to remote.Tag Push (
Mode::TagPushConfirm/Mode::TagPushAllConfirm): Pushing single or all tags to remote.Branch Merge (
Mode::BranchMergeConfirm): Merging a branch into the active branch.Rebase (
Mode::BranchRebaseConfirm/Mode::BranchInteractiveRebaseConfirm): Rebasing the current branch.Stash Apply (
Mode::StashApplyConfirm): Applying a stash onto the working directory.Cherry-Pick (
Mode::CherryPickConfirm): Cherry-picking a commit.Revert (
Mode::RevertConfirm): Creating a revert commit for a specific commit.Continue Merge (
Mode::MergeContinueConfirm): Continuing a merge after conflicts are resolved.Self-Update (
Mode::UpdateConfirm): Confirming a self-update.
Shortcuts
y/Y: Confirm action (required for destructive actions; works for all)Esc/n/N: Cancel action / close popupEnter: Confirm action (only works for non-destructive actions; cancels for destructive actions)