Files
solorice/config/yazi/plugins/git.yazi/README.md
2026-01-27 20:51:10 +02:00

1.9 KiB

git.yazi

Show the status of Git file changes as linemode in the file list.

https://github.com/user-attachments/assets/34976be9-a871-4ffe-9d5a-c4cdd0bf4576

Installation

ya pkg add yazi-rs/plugins:git

Setup

Add the following to your ~/.config/yazi/init.lua:

require("git"):setup {
	-- Order of status signs showing in the linemode
	order = 1500,
}

And register it as fetchers in your ~/.config/yazi/yazi.toml:

[[plugin.prepend_fetchers]]
id  = "git"
url = "*"
run = "git"

[[plugin.prepend_fetchers]]
id  = "git"
url = "*/"
run = "git"

Advanced

Note

The following configuration must be put before require("git"):setup()

You can customize the Style of the status sign with:

  • th.git.unknown - status cannot/not yet determined
  • th.git.modified - modified file
  • th.git.added - added file
  • th.git.untracked - untracked file
  • th.git.ignored - ignored file
  • th.git.deleted - deleted file
  • th.git.updated - updated file
  • th.git.clean - clean file

For example:

-- ~/.config/yazi/init.lua
th.git = th.git or {}
th.git.modified = ui.Style():fg("blue")
th.git.deleted = ui.Style():fg("red"):bold()

You can also customize the text of the status sign with:

  • th.git.unknown_sign - status cannot/not yet determined
  • th.git.modified_sign - modified file
  • th.git.added_sign - added file
  • th.git.untracked_sign - untracked file
  • th.git.ignored_sign - ignored file
  • th.git.deleted_sign - deleted file
  • th.git.updated_sign - updated file
  • th.git.clean_sign - clean file

For example:

-- ~/.config/yazi/init.lua
th.git = th.git or {}
th.git.unknown_sign = " "
th.git.modified_sign = "M"
th.git.deleted_sign = "D"
th.git.clean_sign = "✔"

License

This plugin is MIT-licensed. For more information check the LICENSE file.