No description
Find a file
2025-11-25 21:39:00 +01:00
colors wip 2025-11-25 21:39:00 +01:00
lua wip 2025-11-25 21:39:00 +01:00
LICENSE init 2025-11-24 16:53:08 +01:00
README.md wip 2025-11-25 21:39:00 +01:00

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 colors
  • modus-kanagawa - Inspired by Kanagawa's serene colors
  • modus-nightgem - Dark theme with vibrant accents
  • modus-vague - Subtle and sophisticated color palette
  • modus-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 background
  • cursorline_intense (boolean): Use more intense cursorline highlighting
  • dim_inactive_window (boolean): Dim inactive windows for better focus

Syntax Highlighting

  • faint_syntax (boolean): Use fainter colors for syntax elements
  • green_strings (boolean): Use green for strings instead of theme default
  • italic_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")
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:

  1. Call setup() before load():

    require("modus-extras").setup({ transparent = true })
    require("modus-extras").load("modus-moonfly")
    
  2. Reload the theme after changing settings:

    require("modus-extras").setup({ transparent = true })
    require("modus-extras").load("modus-moonfly")  -- This applies the settings
    
  3. Check your configuration: Use require("modus-extras").get_config() to inspect current settings

  4. Debug configuration: Use require("modus-extras").debug_config() to print current settings

  5. 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.