My personalized Neovim configuration built on top of LazyVim.
- Dynamic theme system supporting multiple colorschemes:
- Tokyo Night
- Gruvbox
- Rose Pine
- Automatic theme synchronization with terminal (Ghostty)
- Light/Dark mode toggle support
- Transparent background options
- Enhanced winbar configuration
- Custom icons and symbols
- Optimized editor settings
- Language-specific configurations
- Custom keymaps for improved workflow
- Organized plugin structure:
- UI enhancements
- Editor improvements
- LSP configurations
- Additional extras
.
├── colors/ # Custom colorschemes
├── lua/
│ ├── config/ # Core configurations
│ │ ├── autocmds.lua # Automatic commands
│ │ ├── keymaps.lua # Custom keybindings
│ │ ├── lazy.lua # Lazy.nvim configuration
│ │ └── options.lua # Neovim options and settings
│ ├── jswent/ # Personal customizations
│ │ ├── colorscheme.lua
│ │ ├── transparent.lua
│ │ ├── winbar.lua
│ │ └── ...
│ └── plugins/ # Plugin configurations
│ ├── editor.lua
│ ├── lsp.lua
│ ├── ui.lua
│ └── ...
├── init.lua # Entry point
└── preview.png # Configuration preview image
-
Make sure you have Neovim >= 0.9.0 installed
-
Clone this repository to your configuration directory
git clone https://github.com/jswent/LazyVim.git ~/.config/LazyVim
-
Backup your Neovim directory and create a symlink
ln -s ~/.config/LazyVim ~/.config/nvim
-
Start Neovim and let Lazy.nvim install all plugins
The configuration is organized into several key files in the lua/config/
directory:
options.lua
: Core Neovim options and settingskeymaps.lua
: Custom keybindings for improved workflowautocmds.lua
: Automatic commands for file typeslazy.lua
: Lazy.nvim plugin manager configuration
The configuration supports automatic theme synchronization with my terminal (Ghostty) and allows manual theme switching. You can override the theme in lua/config/options.lua
:
-- set the colorscheme to gruvbox
vim.g.jswent_colorscheme = "gruvbox"
The configuration includes built-in transparency support with automatic detection for popular terminal emulators:
- Ghostty
- WezTerm
- Kitty
You can manually control transparency through:
-
Global setting in
lua/config/options.lua
:-- Override default transparency detection vim.g.jswent_transparent = true -- or false
-
Commands during runtime:
:EnableTransparent
- Enable transparency:DisableTransparent
- Disable transparency:ToggleTransparent
- Toggle transparency state
The transparency settings automatically reload affected plugins and colorschemes to ensure consistent appearance.
All plugins are managed through Lazy.nvim and can be configured in the lua/plugins/
directory:
ui.lua
: UI-related pluginseditor.lua
: Editor enhancement pluginslsp.lua
: Language Server Protocol configurationsextras.lua
: Additional plugin configurations
This configuration is licensed under the same terms as LazyVim. See the LICENSE file for details.