From 1bb0e35299aeb5e6eccaef78e2b070697809a5ca Mon Sep 17 00:00:00 2001
From: Lorenz Hohermuth <lorenz.hohermuth@bsi-software.com>
Date: Wed, 28 Feb 2024 16:56:48 +0100
Subject: [PATCH] customized lualine

---
 lua/lorenz/init.lua      |  1 +
 lua/lorenz/kickstart.lua | 16 ++--------
 lua/lorenz/lualine.lua   | 66 ++++++++++++++++++++++++++++++++++++++++
 lua/lorenz/set.lua       |  4 +++
 4 files changed, 74 insertions(+), 13 deletions(-)
 create mode 100644 lua/lorenz/lualine.lua

diff --git a/lua/lorenz/init.lua b/lua/lorenz/init.lua
index 75556c5..826949b 100644
--- a/lua/lorenz/init.lua
+++ b/lua/lorenz/init.lua
@@ -7,3 +7,4 @@ require("lorenz.autoclose")
 require("lorenz.cmp")
 require("lorenz.catppuccin")
 require("lorenz.harpoon")
+require("lorenz.lualine")
diff --git a/lua/lorenz/kickstart.lua b/lua/lorenz/kickstart.lua
index 2758d6e..8acadb3 100644
--- a/lua/lorenz/kickstart.lua
+++ b/lua/lorenz/kickstart.lua
@@ -197,19 +197,9 @@ require('lazy').setup({
     dependencies = { "nvim-lua/plenary.nvim" }
   },
 
-  {
-    -- Set lualine as statusline
-    'nvim-lualine/lualine.nvim',
-    -- See `:help lualine.txt`
-    opts = {
-      options = {
-        icons_enabled = true,
-        theme = 'onedark',
-        component_separators = '|',
-        section_separators = '',
-      },
-    },
-  },
+  -- Set lualine as statusline
+  'nvim-lualine/lualine.nvim',
+  -- See `:help lualine.txt`
 
   {
     -- Add indentation guides even on blank lines
diff --git a/lua/lorenz/lualine.lua b/lua/lorenz/lualine.lua
new file mode 100644
index 0000000..8afebd4
--- /dev/null
+++ b/lua/lorenz/lualine.lua
@@ -0,0 +1,66 @@
+local modes = {
+  ["n"] = "NORMAL",
+  ["no"] = "NORMAL",
+  ["v"] = "VISUAL",
+  ["V"] = "VISUAL LINE",
+  ["s"] = "SELECT",
+  ["S"] = "SELECT LINE",
+  ["i"] = "INSERT",
+  ["ic"] = "INSERT",
+  ["R"] = "REPLACE",
+  ["Rv"] = "VISUAL REPLACE",
+  ["c"] = "COMMAND",
+  ["cv"] = "VIM EX",
+  ["ce"] = "EX",
+  ["r"] = "PROMPT",
+  ["rm"] = "MOAR",
+  ["r?"] = "CONFIRM",
+  ["!"] = "SHELL",
+  ["t"] = "TERMINAL",
+}
+
+local function mode()
+  local current_mode = vim.api.nvim_get_mode().mode
+  return string.format(" %s", modes[current_mode]):upper()
+end
+
+require('lualine').setup {
+  options = {
+    icons_enabled = true,
+    theme = 'onedark',
+    component_separators = { left = '/', right = '|'},
+    section_separators = { left = '', right = ''},
+    disabled_filetypes = {
+      statusline = {},
+      winbar = {},
+    },
+    ignore_focus = {},
+    always_divide_middle = true,
+    globalstatus = false,
+    refresh = {
+      statusline = 1000,
+      tabline = 1000,
+      winbar = 1000,
+    }
+  },
+  sections = {
+    lualine_a = { mode,  },
+    lualine_b = {'branch', 'diff', 'diagnostics'},
+    lualine_c = {'filename'},
+    lualine_x = {'encoding', 'fileformat', 'filetype'},
+    lualine_y = {'progress'},
+    lualine_z = {'location'}
+  },
+  inactive_sections = {
+    lualine_a = {},
+    lualine_b = {},
+    lualine_c = {'filename'},
+    lualine_x = {'location'},
+    lualine_y = {},
+    lualine_z = {}
+  },
+  tabline = {},
+  winbar = {},
+  inactive_winbar = {},
+  extensions = {}
+}
diff --git a/lua/lorenz/set.lua b/lua/lorenz/set.lua
index ab1c6d3..509ef80 100644
--- a/lua/lorenz/set.lua
+++ b/lua/lorenz/set.lua
@@ -52,3 +52,7 @@ vim.o.completeopt = 'menuone,noselect'
 
 -- NOTE: You should make sure your terminal supports this
 vim.o.termguicolors = true
+
+vim.o.errorbells = false
+vim.o.visualbell = true
+vim.o.timeoutlen = 500