| colors | ||
| lua | ||
| LICENSE | ||
| README.md | ||
Modus Extras
A collection of beautiful Neovim colorschemes with enhanced git integration and customizable styling options.
Features
- Multiple Themes: Choose from various curated colorschemes
- Git Integration: Enhanced git signs with background colors for better visibility
- Customizable: Control transparency, comment styles, and more
- Modern API: Clean setup function with sensible defaults
Available Themes
modus-old- Classic dark theme with retro colorsmodus-kanagawa- Inspired by Kanagawa's serene colorsmodus-nightgem- Dark theme with vibrant accentsmodus-vague- Subtle and sophisticated color palettemodus-moonfly- Inspired by the Moonfly colorscheme
Installation
Using lazy.nvim:
{
"your-username/modus-extras.nvim",
config = function()
require("modus-extras").setup({
-- Your configuration here
})
end,
}
Configuration
Setup Function
require("modus-extras").setup({
-- Style options
transparent = false, -- Enable transparent background
cursorline_intense = false, -- Use more intense cursorline color
dim_inactive_window = true, -- Dim inactive windows
-- Syntax highlighting options
faint_syntax = false, -- Use fainter colors for syntax
yellow_comments = false, -- Use yellow for comments instead of default
green_strings = false, -- Use green for strings instead of default
italic_strings = false, -- Use italic style for strings
-- Comment styling (NEW!)
comment_style = {
italic = true, -- Make comments italic
bold = false, -- Make comments bold
underline = false -- Underline comments
},
})
Loading Themes
-- Load a specific theme
require("modus-extras").load("modus-moonfly")
-- Or use the traditional colorscheme command (after setup)
vim.cmd("colorscheme modus-moonfly")
Important: Call setup() before load() for the configuration to take effect. If you change settings after loading a theme, call setup() again to apply the changes.
Configuration Options
Style Options
transparent(boolean): Enable transparent backgroundcursorline_intense(boolean): Use more intense cursorline highlightingdim_inactive_window(boolean): Dim inactive windows for better focus
Syntax Highlighting
faint_syntax(boolean): Use fainter colors for syntax elementsgreen_strings(boolean): Use green for strings instead of theme defaultitalic_strings(boolean): Apply italic styling to strings
Comment Styling (NEW!)
Control comment appearance with granular options:
comment_style = {
italic = true, -- Italic comments
bold = false, -- Bold comments
underline = false -- Underlined comments
}
You can combine styles: italic = true, bold = true for bold italic comments. These settings are applied in addition to the base theme styling.
API Reference
setup(config)
Configure the plugin with user options.
Parameters:
config(table): Configuration options (see Configuration section)
Example:
require("modus-extras").setup({
transparent = true,
comment_style = { italic = true, bold = true }
})
load(theme_name)
Load a specific theme.
Parameters:
theme_name(string): Name of the theme to load
Returns: The plugin instance for chaining
Example:
require("modus-extras").load("modus-moonfly")
get_config()
Get the current configuration.
Returns: Current configuration table
get_themes()
Get list of available themes.
Returns: Array of theme names
reset()
Reset configuration to defaults.
Returns: The plugin instance for chaining
Examples
Basic Setup
require("modus-extras").setup()
require("modus-extras").load("modus-old")
Advanced Configuration
require("modus-extras").setup({
transparent = true,
cursorline_intense = true,
comment_style = {
italic = true,
bold = false,
underline = false
},
green_strings = true
})
require("modus-extras").load("modus-moonfly")
Traditional Colorscheme Command
require("modus-extras").setup({
-- Your config
})
-- This will work after setup
vim.cmd("colorscheme modus-kanagawa")
Theme Features
All themes include:
- Enhanced Git Integration: Git signs with background colors for better visibility
- Line Number Backgrounds: Consistent styling for line numbers and signs
- Terminal Colors: Proper terminal color mapping
- Plugin Support: Optimized for popular Neovim plugins
- Tree-sitter Support: Comprehensive syntax highlighting
Migration from Old API
Old Way (still supported)
vim.g.modus_termtrans_enable = 1
vim.cmd("colorscheme modus-old")
New Way (recommended)
require("modus-extras").setup({
transparent = true
})
require("modus-extras").load("modus-old")
Contributing
Contributions are welcome! Please feel free to:
- Add new themes
- Improve existing themes
- Add new configuration options
- Fix bugs or improve documentation
Troubleshooting
Settings Not Applying
If your configuration changes don't seem to take effect:
-
Call
setup()beforeload():require("modus-extras").setup({ transparent = true }) require("modus-extras").load("modus-moonfly") -
Reload the theme after changing settings:
require("modus-extras").setup({ transparent = true }) require("modus-extras").load("modus-moonfly") -- This applies the settings -
Check your configuration: Use
require("modus-extras").get_config()to inspect current settings -
Debug configuration: Use
require("modus-extras").debug_config()to print current settings -
Restart Neovim if changes still don't appear
Comment Styles Not Working
Comment styles are applied in addition to the theme's base styling. Make sure you're using:
require("modus-extras").setup({
comment_style = {
italic = true, -- Enable italic
bold = false, -- Disable bold
underline = false -- Disable underline
}
})
License
MIT License - see LICENSE file for details.