add window ids to mini.statusbar config
authorLukas Hägele <lukas.haegele93@web.de>
Sun, 18 Oct 2026 12:35:43 +0000 (14:35 +0200)
committerLukas Hägele <lukas.haegele93@web.de>
Sun, 18 Oct 2026 12:35:43 +0000 (14:35 +0200)
lua/config/plugins/mini.lua

index 6327670c513f92674ebf0f3f27a2d1499d6ea645..90f3ce1647ed5824bd513af16310c753a4ba4048 100644 (file)
@@ -1,11 +1,53 @@
+local function section_window()
+  return tostring(vim.api.nvim_get_current_win())
+end
+
 return {
-    {
-       'echasnovski/mini.nvim',
-       enabled = true,
-       config = function()
-           local statusline = require 'mini.statusline'
-           statusline.setup { use_icons = true }
-       end
-    }
+  {
+    'nvim-mini/mini.nvim',
+    enabled = true,
+    config = function()
+      local statusline = require 'mini.statusline'
+      statusline.setup {
+        use_icons = true,
+        content = {
+          active = function()
+            local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 })
+            local git           = MiniStatusline.section_git({ trunc_width = 40 })
+            local diff          = MiniStatusline.section_diff({ trunc_width = 75 })
+            local diagnostics   = MiniStatusline.section_diagnostics({ trunc_width = 75 })
+            local lsp           = MiniStatusline.section_lsp({ trunc_width = 75 })
+            local filename      = MiniStatusline.section_filename({ trunc_width = 140 })
+            local fileinfo      = MiniStatusline.section_fileinfo({ trunc_width = 120 })
+            local location      = MiniStatusline.section_location({ trunc_width = 75 })
+            local search        = MiniStatusline.section_searchcount({ trunc_width = 75 })
+            local window        = section_window()
+
+            return MiniStatusline.combine_groups({
+              { hl = mode_hl,                  strings = { mode } },
+              { hl = 'MiniStatuslineDevinfo',  strings = { git, diff, diagnostics, lsp } },
+              '%<', -- Mark general truncate point
+              { hl = 'MiniStatuslineFilename', strings = { filename } },
+              '%=', -- End left alignment
+              { hl = 'MiniStatuslineFilename', strings = { window } },
+              { hl = 'MiniStatuslineFileinfo', strings = { fileinfo } },
+              { hl = mode_hl,                  strings = { search, location } },
+            })
+          end,
+
+          inactive = function()
+            local filename = MiniStatusline.section_filename({ trunc_width = -1 })
+            local window   = section_window()
+
+            return MiniStatusline.combine_groups({
+              { hl = 'MiniStatuslineInactive',  strings = { filename } },
+              '%=', -- End left alignment
+              { hl = 'MiniStatuslineInactive',  strings = { window } },
+            })
+          end
+        }
+      }
+    end
+  }
 }