{ programs.nixvim = { plugins.gitsigns = { enable = true; settings = { trouble = true; current_line_blame = true; signs = { add = { text = "│"; }; change = { text = "│"; }; delete = { text = "_"; }; topdelete = { text = "‾"; }; changedelete = { text = "~"; }; untracked = { text = "│"; }; }; }; }; keymaps = [ { mode = ["n" "v"]; key = "gh"; action = "gitsigns"; options = { silent = true; desc = "+hunks"; }; } { mode = "n"; key = "ghb"; action = ":Gitsigns blame_line"; options = { silent = true; desc = "Blame line"; }; } { mode = "n"; key = "ghd"; action = ":Gitsigns diffthis"; options = { silent = true; desc = "Diff This"; }; } { mode = "n"; key = "ghR"; action = ":Gitsigns reset_buffer"; options = { silent = true; desc = "Reset Buffer"; }; } { mode = "n"; key = "ghS"; action = ":Gitsigns stage_buffer"; options = { silent = true; desc = "Stage Buffer"; }; } ]; }; }