Skip to content
/ LuxVim Public

LuxVim is a high-performance Neovim distribution built for developers who want powerful features, responsive editing, and a sleek interface — without the setup overhead.

License

Notifications You must be signed in to change notification settings

LuxVim/LuxVim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InDevelopment License

LuxVim Logo

LuxVim is a high-performance Neovim distribution built for developers who want powerful features, responsive editing, and a sleek interface — without the setup overhead.

Features

  • Self-Contained: LuxVim maintains its own data directory and doesn't interfere with your existing Neovim configuration
  • Beautiful Themes: Comprehensive collection of 30+ colorschemes including custom LuxVim themes
  • Modern Plugins: Curated selection of essential plugins for enhanced productivity
  • Custom Tools: Integrated terminal, dashboard, and utility plugins built specifically for LuxVim
  • Easy Installation: One-command installation with automatic plugin management

Requirements

  • Neovim 0.8+ (recommended 0.9+)
  • Git for plugin management
  • Unix-like system (Linux, macOS, WSL)

Quick Installation

# Clone LuxVim
git clone https://github.com/LuxVim/LuxVim.git

# Run the installer
cd LuxVim && ./install.sh

# Start LuxVim
lux

Installation Details

The installer will:

  1. Create a lux command in ~/.local/bin/
  2. Set up data directories within the LuxVim folder
  3. Bootstrap lazy.nvim plugin manager
  4. Install all plugins automatically

If ~/.local/bin is not in your PATH, add this to your shell profile:

export PATH="$HOME/.local/bin:$PATH"

Usage

Launch LuxVim using the lux command:

# Open LuxVim
lux

# Open a specific file
lux myfile.txt

# Open in a directory
lux /path/to/project

Core Plugins & Features

Plugin Management

  • lazy.nvim by folke - Modern plugin manager with lazy loading, lockfile support, and beautiful UI

File Management & Navigation

File Explorer

  • nvim-tree.lua by nvim-tree
    • Tree-style file explorer with git integration
    • Custom icons and folder management
    • Configured with 30-character width and left-side placement
    • Git status indicators and file operations

File Icons

  • nvim-web-devicons by nvim-tree
    • Provides file type icons throughout the interface
    • Supports hundreds of file types with appropriate icons

Fuzzy Finding

Smooth Navigation

  • nvim-luxmotion by LuxVim
    • Smooth cursor and scroll animations with customizable easing
    • Configurable duration (10ms cursor, 380ms scroll) with ease-out easing
    • Enhanced visual feedback for cursor movement and scrolling

Colorschemes & Themes

LuxVim includes an extensive collection of 30+ carefully curated colorschemes:

Custom LuxVim Themes

Modern Neovim Themes

Classic Vim Themes

LuxVim Custom Plugins

Dashboard & Startup

  • nvim-luxdash by LuxVim
    • Beautiful startup dashboard with ASCII art LuxVim logo
    • Quick access menu with options: newfile, backtrack, fzf, closelux
    • Displays current date and time
    • Customizable logo colors and gradients

Terminal Integration

  • nvim-luxterm by LuxVim
    • Advanced terminal with session management and floating windows
    • Manager window (80% width, 80% height) with preview pane
    • Global keybindings (<C-/>, <C-_>, <C->`)
    • Auto-hide floating windows when cursor leaves
    • Session navigation with <C-k> and <C-j>
    • Focus management for new sessions

Status & Interface Enhancements

  • nvim-luxline by LuxVim
    • Lightweight, context-aware statusline
    • Different configurations for various window types (NvimTree, terminal, dashboard)
    • Git branch integration, window numbers, file info
    • Custom separators and position indicators

Productivity Tools

  • vim-easycomment by josstei

    • Intelligent commenting system
    • Language-aware comment toggling
    • Works in both normal and visual modes
  • vim-easyops by josstei

    • Command palette for quick operations (activated with <leader>m)
    • Hierarchical menu system (Main → Git/Window/File/Code/Misc)
    • Maven/Spring Boot development shortcuts
    • Vim-specific operations
  • vim-easyenv by josstei

    • Environment management for project-specific configurations
    • Quick environment setup and switching

Navigation & History

  • vim-backtrack by josstei
    • File history tracking and navigation
    • Configurable split behavior (bottom right vertical split)
    • Maximum history count (10 files)
    • Special handling for dashboard splits

Window Management

  • vim-luxpane by LuxVim
    • Intelligent window pane management
    • Protected buffer types: quickfix, help, nofile, terminal
    • Protected file types: NvimTree
    • Smart window operations with context awareness

Key Mappings

Leader Key

  • Space - Leader key (vim.g.mapleader = ' ')

File Operations

Key Action Description
<leader>fs :w<CR> Save current file
<leader>fq :q<CR> Quit current file
<leader>FQ :q!<CR> Force quit without saving
<leader>bye :qa!<CR> Quit all files without saving
jk <ESC> Exit insert mode

Navigation & Search

Key Action Description
<leader><leader> :Files Fuzzy find files using fzf
<leader>st :SearchText<CR> Search text in current directory
<leader>e :NvimTreeToggle<CR> Toggle file explorer

Window Management

Key Action Description
<leader>wv :rightbelow vs new<CR> Create vertical split
<leader>wh :rightbelow split new<CR> Create horizontal split
<leader>1-6 :1-6wincmd w<CR> Switch to window 1-6

Terminal (LuxTerm)

Key Context Action Description
Ctrl+/ Normal :LuxtermToggle<CR> Toggle terminal
Ctrl+/ Terminal <C-\><C-n>:LuxtermToggle<CR> Toggle terminal from terminal mode
Ctrl+_ Normal/Terminal Same as Ctrl+/ Alternative terminal toggle
`Ctrl+`` Normal/Terminal Same as Ctrl+/ Backtick terminal toggle
Ctrl+n Terminal <c-\><c-n> Enter normal mode in terminal

Utilities

Key Action Description
<leader>m :EasyOps<CR> Open EasyOps command menu
<leader>cc :EasyComment<CR> Toggle comment (normal/visual)

Configuration Structure

LuxVim/
├── init.lua              # Main configuration entry point
├── install.sh           # Installation script
├── install.ps1          # Windows PowerShell installer
├── lua/
│   ├── config/          # Core configuration
│   │   ├── lazy.lua     # Plugin manager setup
│   │   ├── options.lua  # Vim options and settings
│   │   ├── keymaps.lua  # Key mappings
│   │   └── autocmds.lua # Auto commands
│   ├── plugins/         # Plugin configurations
│   │   ├── colorschemes.lua # All available themes
│   │   ├── luxdash.lua     # Dashboard plugin
│   │   ├── luxterm.lua     # Terminal plugin
│   │   ├── luxline.lua     # Statusline plugin
│   │   ├── luxmotion.lua   # Animation plugin
│   │   ├── luxpane.lua     # Window management
│   │   ├── fzf.lua         # Fuzzy finder
│   │   ├── nvim-tree.lua   # File explorer
│   │   ├── easycomment.lua # Commenting
│   │   ├── easyops.lua     # Command palette
│   │   ├── easyenv.lua     # Environment management
│   │   └── backtrack.lua   # File history
│   ├── utils.lua        # Utility functions (search, fzf integration)
│   └── dev.lua          # Development utilities
├── data/               # Plugin and cache data (auto-created)
│   ├── lazy/           # Lazy.nvim plugins
│   ├── mason/          # Mason LSP data
│   └── nvim/           # Neovim data
└── debug/              # Local plugin development directory

Advanced Configuration

Editor Settings (lua/config/options.lua)

  • Line Numbers: Relative numbering with absolute current line
  • Search: Case-insensitive search with smart case
  • Indentation: 4-space tabs with smart auto-indent
  • Performance: Swap files disabled, fast timeout (500ms)
  • Clipboard: System clipboard integration when available
  • Colors: True color support (24-bit RGB)

Auto Commands (lua/config/autocmds.lua)

  • FZF Integration: Hides statusline and UI elements during fuzzy finding
  • Quickfix Enhancement: Auto-close quickfix window after selection

Utility Functions (lua/utils.lua)

  • Cross-platform text search: Uses grep on Unix, findstr on Windows
  • FZF wrapper functions: Seamless integration with fuzzy finding
  • Quickfix integration: Search results displayed in quickfix window

Customization

Changing Themes

Edit lua/plugins/colorschemes.lua to modify the default theme:

-- Change the default theme
{
    "LuxVim/lux.nvim",
    priority = 1000,
    config = function()
        require('lux').setup({
            variant = 'vesper'  -- Default variant
        })
        vim.cmd('colorscheme lux')
    end,
},

Adding Custom Key Mappings

Edit lua/config/keymaps.lua:

-- Add your custom mappings
vim.keymap.set('n', '<leader>custom', ':YourCommand<CR>')
vim.keymap.set('n', '<leader>gp', ':Git push<CR>')  -- Git push example

Plugin Configuration

Each plugin configuration is modularized. You can modify settings by editing the respective files in lua/plugins/:

  • colorschemes.lua - All available themes and colorschemes
  • luxdash.lua - Dashboard configuration
  • luxterm.lua - Terminal settings and keybindings
  • luxline.lua - Statusline configuration
  • luxmotion.lua - Animation settings
  • fzf.lua - Fuzzy finder configuration
  • nvim-tree.lua - File explorer settings
  • easycomment.lua - Commenting system
  • easyops.lua - Command palette configuration
  • backtrack.lua - File history settings

LuxVim Ecosystem

LuxVim integrates several custom-built plugins designed to work together:

  1. nvim-luxdash - Startup dashboard with LuxVim branding
  2. nvim-luxterm - Terminal with floating window and session management
  3. nvim-luxmotion - Smooth cursor and scroll animations
  4. vim-luxpane - Intelligent window pane management
  5. nvim-luxline - Minimal statusline with context awareness
  6. vim-easycomment - Language-aware commenting system
  7. vim-easyops - Hierarchical command palette
  8. vim-backtrack - File navigation history
  9. vim-easyenv - Environment management

Troubleshooting

Plugin Issues

If plugins aren't loading properly:

lux --headless "+Lazy! sync" +qa

Reset Configuration

To reset LuxVim completely:

rm -rf ~/.config/LuxVim/data
lux  # Will reinstall all plugins

PATH Issues

If lux command not found:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Theme Issues

If themes aren't loading:

  1. Check that the theme dependency exists in data/lazy/
  2. Verify the colorscheme name matches the plugin documentation
  3. Some themes require Neovim 0.8+ for full functionality

Credits & Acknowledgments

LuxVim builds upon the excellent work of many open-source contributors:

Core Infrastructure

  • Neovim - The extensible Vim-based text editor
  • folke - Creator of lazy.nvim and tokyonight.nvim
  • Junegunn Choi - Creator of fzf

Theme Authors

Plugin Ecosystem

LuxVim Team

  • josstei - Custom plugins and LuxVim Development
  • zejzejzej3 - LuxVim.org Web Development

Contributing

LuxVim is designed to be a complete, opinionated Neovim distribution. If you'd like to contribute:

  1. Fork the repository
  2. Create a feature branch
  3. Test your changes thoroughly
  4. Submit a pull request

License

LuxVim is open source and available under the MIT License.


** Step into a brighter development experience with LuxVim!** ✨

About

LuxVim is a high-performance Neovim distribution built for developers who want powerful features, responsive editing, and a sleek interface — without the setup overhead.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published