diff --git a/README.md b/README.md index 969c02d..6fdae52 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,105 @@ See [docs](./doc) for more information. ### Statusline -You can add `libmodal` modes to your status line by using [`feline.nvim`](https://github.com/famiu/feline.nvim) or [`galaxyline.nvim`](https://github.com/glepnir/galaxyline.nvim) or . You can find my configuration for `feline.nvim` [here](https://gitlab.com/Iron_E/dotfiles/-/blob/master/.config/nvim/lua/plugin/feline.lua#L148-L164) and `galaxyline.nvim` [here](https://gitlab.com/Iron_E/dotfiles/-/blob/edf3e1c9779bbc81002832bb03ec875dc86cc16b/.config/nvim/lua/plugin/galaxyline.lua#L140-163)— both of which leverage `nvim-libmodal`'s in the statusbar. +You can add `libmodal` modes to your status line. Here are a few examples of how to integrate with existing plugins. + +#### feline.nvim + +See my configuration for `feline.nvim` [here](https://gitlab.com/Iron_E/dotfiles/-/blob/master/.config/nvim/lua/plugin/feline.lua#L148-L164) + +#### galaxyline.nvim + +See my configuration for `galaxyline.nvim` [here](https://gitlab.com/Iron_E/dotfiles/-/blob/edf3e1c9779bbc81002832bb03ec875dc86cc16b/.config/nvim/lua/plugin/galaxyline.lua#L140-163). + +#### lualine.nvim + +
+ An example config +
+		-- Defined in https://github.com/Iron-E/nvim-highlite
+		local BLUE         = '#7766ff'
+		local CYAN         = '#33dbc3'
+		local GREEN        = '#22ff22'
+		local GREEN_LIGHT  = '#99ff99'
+		local ICE          = '#95c5ff'
+		local ORANGE       = '#ff8900'
+		local ORANGE_LIGHT = '#f0af00'
+		local PINK         = '#ffa6ff'
+		local PINK_LIGHT   = '#ffb7b7'
+		local PURPLE       = '#cf55f0'
+		local PURPLE_LIGHT = '#af60af'
+		local RED          = '#ee4a59'
+		local RED_DARK     = '#a80000'
+		local RED_LIGHT    = '#ff4090'
+		local TAN          = '#f4c069'
+		local TEAL         = '#60afff'
+		local TURQOISE     = '#2bff99'
+		local YELLOW       = '#f0df33'
+
+		local MODES =
+		{ -- {{{
+			['c']  = {'COMMAND-LINE',     RED},
+			['ce'] = {'NORMAL EX',        RED_DARK},
+			['cv'] = {'EX',               RED_LIGHT},
+			['i']  = {'INSERT',           GREEN},
+			['ic'] = {'INS-COMPLETE',     GREEN_LIGHT},
+			['n']  = {'NORMAL',           PURPLE_LIGHT},
+			['no'] = {'OPERATOR-PENDING', PURPLE},
+			['r']  = {'HIT-ENTER',        CYAN},
+			['r?'] = {':CONFIRM',         CYAN},
+			['rm'] = {'--MORE',           ICE},
+			['R']  = {'REPLACE',          PINK},
+			['Rv'] = {'VIRTUAL',          PINK_LIGHT},
+			['s']  = {'SELECT',           TURQOISE},
+			['S']  = {'SELECT',           TURQOISE},
+			['␓'] = {'SELECT',            TURQOISE},
+			['t']  = {'TERMINAL',         ORANGE},
+			['v']  = {'VISUAL',           BLUE},
+			['V']  = {'VISUAL LINE',      BLUE},
+			['␖'] = {'VISUAL BLOCK',      BLUE},
+			['!']  = {'SHELL',            YELLOW},
+
+			-- libmodal
+			['BUFFERS'] = TEAL,
+			['TABLES']  = ORANGE_LIGHT,
+			['TABS']    = TAN,
+		} -- }}}
+
+		local MODE_HL_GROUP = 'LualineViMode'
+
+		--[[/* FELINE CONFIG */]]
+
+		vim.api.nvim_create_autocmd('User', {
+			callback = function()
+				require('lualine').refresh {scope = 'window',  place = {'statusline'}}
+			end,
+			pattern = {'LibmodalModeEnterPre', 'LibmodalModeLeavePost'},
+		})
+
+		require('lualine').setup {sections = {lualine_a = {{
+			function() -- auto change color according the vim mode
+				local mode_color, mode_name
+
+				if vim.g.libmodalActiveModeName then
+					mode_name = vim.g.libmodalActiveModeName
+					mode_color = MODES[mode_name]
+				else
+					local current_mode = MODES[vim.api.nvim_get_mode().mode]
+
+					mode_name = current_mode[1]
+					mode_color = current_mode[2]
+				end
+
+				vim.api.nvim_set_hl(0, MODE_HL_GROUP, {fg = mode_color, bold = true})
+
+				return mode_name..' '
+			end,
+			icon = {'▊', align = 'left'},
+			color = MODE_HL_GROUP,
+			padding = 0,
+		}}}}
+	
+
## FAQ