Manual clone of githead.yazi for supporting yatline.yazi
Important
This repository will not add new features other than coming from orginal repository.
The latest commit in there is bf150f3ee982e565940c63dc98603d275120ca96.
All supported features are listed here
- yazi version >= 0.3.0
- Font with symbol support. For example Nerd Fonts.
- yatline.yazi (Optional)
ya pack -a imsi32/yatline-githead
Add this to your ~/.config/yazi/init.lua
:
Important
If you are using yatline.yazi, put this after its initialization.
require("yatline-githead"):setup()
Read more about indicators here.
Optionally, configuration:
require("githead"):setup({
show_branch = true,
branch_prefix = "on",
prefix_color = "white",
branch_color = "blue",
branch_symbol = "",
branch_borders = "()",
commit_color = "bright magenta",
commit_symbol = "@",
show_behind_ahead = true,
behind_color = "bright magenta",
behind_symbol = "⇣",
ahead_color = "bright magenta",
ahead_symbol = "⇡",
show_stashes = true,
stashes_color = "bright magenta",
stashes_symbol = "$",
show_state = true,
show_state_prefix = true,
state_color = "red",
state_symbol = "~",
show_staged = true,
staged_color = "bright yellow",
staged_symbol = "+",
show_unstaged = true,
unstaged_color = "bright yellow",
unstaged_symbol = "!",
show_untracked = true,
untracked_color = "blue",
untracked_symbol = "?",
})
You can also use a theme:
local your_theme = {
prefix_color = "white",
branch_color = "blue",
commit_color = "bright magenta",
stashes_color = "bright magenta",
state_color = "red",
staged_color = "bright yellow",
unstaged_color = "bright yellow",
untracked_color = "blue",
}
require("githead"):setup({
-- ===
theme = your_theme,
-- ===
})
If you are using yatline.yazi, you can use this component:
-- ===
{type = "coloreds", custom = false, name = "githead"},
-- ===
- Current branch (or current commit if branch is not presented)
- Behind/Ahead of the remote
- Stashes
- States
- merge
- cherry
- rebase (+ done counter)
- Staged
- Unstaged
- Untracked
The goal is to use minimum amount of shell commands.
git status --ignore-submodules=dirty --branch --show-stash
This command provides information about branches, stashes, staged files, unstaged files, untracked files, and other statistics.