{ empty = { plugins.tinygit.enable = true; }; defaults = { plugins.tinygit = { enable = true; settings = { stage = { contextSize = 1; stagedIndicator = "󰐖"; keymaps = { stagingToggle = ""; gotoHunk = ""; resetHunk = ""; }; moveToNextHunkOnStagingToggle = false; telescopeOpts = { layout_strategy = "horizontal"; layout_config = { horizontal = { preview_width = 0.65; height = { __unkeyed = 0.7; min = 20; }; }; }; }; }; commit = { keepAbortedMsgSecs = 300; border = "rounded"; spellcheck = false; wrap = "hard"; keymaps = { normal = { abort = "q"; confirm = ""; }; insert = { confirm = ""; }; }; subject = { autoFormat.__raw = '' function(subject) ---@type nil|fun(subject: string): string subject = subject:gsub("%.$", "") -- remove trailing dot https://commitlint.js.org/reference/rules.html#body-full-stop return subject end ''; enforceType = false; types = [ "fix" "feat" "chore" "docs" "refactor" "build" "test" "perf" "style" "revert" "ci" "break" ]; }; body = { enforce = false; }; }; push = { preventPushingFixupCommits = true; confirmationSound = true; openReferencedIssues = false; }; github = { icons = { openIssue = "🟢"; closedIssue = "🟣"; notPlannedIssue = "⚪"; openPR = "🟩"; mergedPR = "🟪"; draftPR = "⬜"; closedPR = "🟥"; }; }; history = { diffPopup = { width = 0.8; height = 0.8; border = "rounded"; }; autoUnshallowIfNeeded = false; }; appearance = { mainIcon = "󰊢"; backdrop = { enabled = true; blend = 40; }; }; statusline = { blame = { ignoreAuthors = [ ]; hideAuthorNames = [ ]; maxMsgLen = 40; icon = "ﰖ"; }; branchState = { icons = { ahead = "󰶣"; behind = "󰶡"; diverge = "󰃻"; }; }; }; }; }; }; example = { plugins.tinygit = { enable = true; settings = { stage.moveToNextHunkOnStagingToggle = true; commit = { keepAbortedMsgSecs.__raw = "60 * 10"; spellcheck = true; subject = { autoFormat.__raw = '' function(subject) -- remove trailing dot https://commitlint.js.org/reference/rules.html#body-full-stop subject = subject:gsub("%.$", "") -- sentence case of title after the type subject = subject :gsub("^(%w+: )(.)", function(c1, c2) return c1 .. c2:lower() end) -- no scope :gsub("^(%w+%b(): )(.)", function(c1, c2) return c1 .. c2:lower() end) -- with scope return subject end ''; enforceType = true; types = [ "fix" "feat" "chore" "docs" "refactor" "build" "test" "perf" "style" "revert" "ci" "break" "improv" ]; }; }; push.openReferencedIssues = true; history = { autoUnshallowIfNeeded = true; diffPopup = { width = 0.9; height = 0.9; }; }; statusline = { blame = { hideAuthorNames = [ "John Doe" "johndoe" ]; ignoreAuthors = [ "🤖 automated" ]; maxMsgLen = 55; }; }; }; }; }; }