Skip to main content
Magictt includes several plugins that enhance the visual experience and user interface of Neovim. These plugins provide a modern, beautiful, and functional editor interface.

Dashboard: alpha-nvim

alpha-nvim provides a customizable startup screen displayed when you launch Neovim without opening a file.

Visual Appearance

The dashboard displays:
  • Custom ASCII Header: Large “NEOVIM” logo in ASCII art
  • Quick Actions Menu: Buttons for common startup tasks
  • Clean Layout: Centered design with clear visual hierarchy

Quick Action Buttons

The dashboard includes these shortcuts:
KeyActionDescription
eNew FileCreate a new empty buffer
SPC eeToggle ExplorerOpen nvim-tree file explorer
SPC ffFind FileLaunch Telescope file finder
SPC fsFind WordSearch text across project with Telescope
SPC wrRestore SessionRestore last session for current directory
qQuitExit Neovim

Configuration

Location: lua/magictt/plugins/alpha.lua
return {
  "goolord/alpha-nvim",
  event = "VimEnter",
  config = function()
    local alpha = require("alpha")
    local dashboard = require("alpha.themes.dashboard")

    -- Custom NEOVIM header displayed at top
    dashboard.section.header.val = {
      "  ███╗   ██╗███████╗ ██████╗ ██╗   ██╗██╗███╗   ███╗ ",
      "  ████╗  ██║██╔════╝██╔═══██╗██║   ██║██║████╗ ████║ ",
      -- ... more ASCII art lines
    }

    -- Menu buttons configuration
    dashboard.section.buttons.val = {
      dashboard.button("e", "  > New File", "<cmd>ene<CR>"),
      dashboard.button("SPC ee", "  > Toggle file explorer"),
      -- ... more buttons
    }

    alpha.setup(dashboard.opts)
  end,
}

Statusline: lualine.nvim

lualine.nvim provides a fast, customizable statusline at the bottom of the editor with mode indicators and useful information.

Visual Features

  • Mode Indicator: Color changes based on editor mode
    • Blue: Normal mode
    • Green: Insert mode
    • Violet: Visual mode
    • Yellow: Command mode
    • Red: Replace mode
  • Information Display:
    • Git branch and diff stats
    • File encoding and format
    • File type with icon
    • Cursor position
    • Lazy plugin update count (when updates available)

Custom Theme

Magictt uses a custom lualine theme with carefully chosen colors:
local colors = {
  blue = "#65D1FF",
  green = "#3EFFDC",
  violet = "#FF61EF",
  yellow = "#FFDA7B",
  red = "#FF4A4A",
  fg = "#c3ccdc",
  bg = "#112638",
}

Configuration

Location: lua/magictt/plugins/lualine.lua The statusline includes lazy.nvim integration to show pending plugin updates:
sections = {
  lualine_x = {
    {
      lazy_status.updates,
      cond = lazy_status.has_updates,
      color = { fg = "#ff9e64" },
    },
    { "encoding" },
    { "fileformat" },
    { "filetype" },
  },
}

Buffer/Tab Line: bufferline.nvim

bufferline.nvim creates a visual tab bar at the top of the editor, showing open tabs with file icons.

Features

  • Tab Display Mode: Shows tabs instead of individual buffers
  • File Type Icons: Displays appropriate icons for each file type
  • Clean Separators: No visual separators for a minimal look
  • Mouse Support: Click tabs to switch between them

Visual Appearance

The tab line displays:
  • File name with icon
  • Modified indicator for unsaved files
  • Close button on hover

Configuration

Location: lua/magictt/plugins/bufferline.lua
return {
  "akinsho/bufferline.nvim",
  dependencies = { "nvim-tree/nvim-web-devicons" },
  version = "*",
  opts = {
    options = {
      mode = "tabs",           -- Show tabs, not buffers
      separator_style = "none", -- No separators for clean look
    },
  },
}

Colorscheme: rose-pine

rose-pine is the beautiful colorscheme that provides Magictt’s distinctive aesthetic.

Theme Details

  • Variant: Moon - darker variant with warm tones
  • Transparency: Enabled for terminal transparency support
  • Style: Soho vibes with natural, muted colors

Color Palette

Rose Pine features:
  • Warm, earthy tones
  • High contrast for readability
  • Consistent color scheme across all UI elements
  • Support for treesitter highlighting

Configuration

Location: lua/magictt/plugins/colorscheme.lua
return {
  {
    "rose-pine/neovim",
    name = "rose-pine",
    config = function()
      require("rose-pine").setup({
        variant = "moon",          -- moon, main, or dawn
        styles = {
          transparency = true,      -- Enable transparent background
        },
      })
      vim.cmd("colorscheme rose-pine")
    end,
  },
}

Customization

To change the variant:
  • main: Main Rose Pine theme
  • moon: Darker variant (default)
  • dawn: Light variant

Indentation Guides: indent-blankline.nvim

indent-blankline.nvim adds vertical lines to show indentation levels, making code structure more visible.

Visual Features

  • Indent Character: (thin vertical line)
  • Scope Highlighting: Current scope is highlighted differently
  • Language Support: Works with all file types
  • Treesitter Integration: Understands code structure for better scope detection

Visual Benefits

  • Easier to see code blocks and nesting levels
  • Helps maintain consistent indentation
  • Especially useful for Python, YAML, and deeply nested code

Configuration

Location: lua/magictt/plugins/indent-blankline.lua
return {
  "lukas-reineke/indent-blankline.nvim",
  event = { "BufReadPre", "BufNewFile" },
  main = "ibl",
  opts = {
    indent = { char = "┊" },  -- Thin vertical line character
  },
}

UI Improvements: dressing.nvim

dressing.nvim enhances Neovim’s built-in vim.ui.select() and vim.ui.input() interfaces with better defaults.

Enhanced Interfaces

Select Interface

  • Uses Telescope for selection menus when available
  • Provides fuzzy finding in selection lists
  • Better visual presentation of options

Input Interface

  • Floating window for input prompts
  • Better positioning and styling
  • Consistent with overall UI theme

Used By

Many plugins benefit from dressing.nvim:
  • LSP code actions
  • Rename operations
  • Various plugin selection menus

Configuration

Location: lua/magictt/plugins/dressing.lua
return {
  "stevearc/dressing.nvim",
  event = "VeryLazy",  -- Load when needed
}
Dressing.nvim works automatically with sensible defaults - no additional configuration needed.

File Icons: nvim-web-devicons

nvim-web-devicons provides file type icons used throughout the UI.

Icon Support

Provides icons for:
  • File types (JS, TS, Python, HTML, CSS, etc.)
  • Directories and special folders
  • Git files
  • Config files
  • Many more file types

Used By Plugins

  • lualine (statusline icons)
  • bufferline (tab icons)
  • nvim-tree (file explorer icons)
  • telescope (finder result icons)
  • trouble (diagnostic list icons)

Requirements

Requires a Nerd Font to be installed and configured in your terminal. Magictt recommends:
  • JetBrainsMono Nerd Font
  • FiraCode Nerd Font
  • Hack Nerd Font

Keybindings Summary

UI-related keybindings:
KeybindingActionPlugin
NoneAutomaticalpha-nvim (startup)
NoneAlways visiblelualine
NoneAlways visiblebufferline
NoneAlways activerose-pine
NoneAutomaticindent-blankline
NoneAutomaticdressing

Customization Tips

Change Colorscheme Variant

Edit lua/magictt/plugins/colorscheme.lua:
variant = "main",  -- Change from "moon" to "main" or "dawn"

Disable Transparency

Edit lua/magictt/plugins/colorscheme.lua:
styles = {
  transparency = false,  -- Change to false
},

Change Indent Character

Edit lua/magictt/plugins/indent-blankline.lua:
opts = {
  indent = { char = "│" },  -- Use different character
}
Other options: , , , ¦, |

Modify Dashboard Buttons

Edit lua/magictt/plugins/alpha.lua to add or remove buttons:
dashboard.section.buttons.val = {
  dashboard.button("key", "  Label", "<cmd>command<CR>"),
  -- Add your custom buttons here
}

Plugin Overview

See all installed plugins

Keybindings

Full keybinding reference

Build docs developers (and LLMs) love