The project still lacks proper documentation and has a few more steps to go, but it’s in a state where I feel comfortable showcasing it. Of course, no configuration is ever truly "finished"—we all love to tweak and refine things to better suit our workflow.
This setup is structured around two main sections:
- Config: Contains general Neovim settings, key mappings, autocommands, and lazy.nvim integration.
- Plugins: A collection of highly customizable plugins, primarily focused on enhancing aesthetics and usability.
Since I love a well-polished visual experience, many of the plugins here are chosen for their customization potential. I'll be documenting both the plugins and the actual config files—one step at a time.
The setup is easily extendable and integrates NeoPywal to dynamically apply colors from the wal
command output. So far, this method has been used mainly for theming, but I'm open to suggestions for improvements or additional plugins/configs worth trying.
To clarify any confusion about the current_wallpaper.txt
file, I have a script that runs at boot to randomly set the wallpaper.
#!/usr/bin/env bash
# Set the wallpapers directory
WALLPAPER_DIR="$HOME/.config/nvim/.wallpapers"
# Check if directories and files exist
if [ ! -d "$WALLPAPER_DIR" ]; then
echo "Wallpaper directory not found: $WALLPAPER_DIR"
exit 1
fi
# Choose a random image
WALLPAPER=$(find "$WALLPAPER_DIR" -type f | shuf -n 1)
# Check if a wallpaper was found
if [ -z "$WALLPAPER" ]; then
echo "No wallpapers found in directory: $WALLPAPER_DIR"
exit 1
fi
# Apply the wallpaper using wal
wal -i "$WALLPAPER" --backend haishoku -q --saturate 0.9
# Export the chosen wallpaper path to a file
echo "$WALLPAPER" > "$HOME/.config/nvim/lua/current_wallpaper.txt"
besides that here are some previews:
When it comes to syntax highlighting, the color distribution in Neopywal works relatively well. However, there are instances where the colors are too dark, making the text hard to read. To address this, I plan to create a dedicated color scheme that adapts to the wallpaper's colors. Hopefully, I can implement this soon.
- echasnovski/mini.splitjoin
- windwp/nvim-ts-autotag
- folke/snacks.nvim
- Wansmer/treesj
- nvim-treesitter/nvim-treesitter-context
- altermo/ultimate-autopair.nvim
- nat-418/boole.nvim
- SmiteshP/nvim-navbuddy
- zeioth/garbage-day.nvim
- roobert/action-hints.nvim
- neovim/nvim-lspconfig
- ray-x/lsp_signature.nvim
- rmagatti/goto-preview
- stevanmilic/nvim-lspimport
- nvimdev/lspsaga.nvim
- smjonas/inc-rename.nvim
- chrisgrieser/nvim-lsp-endhints
- rachartier/tiny-inline-diagnostic.nvim
- nvimtools/none-ls.nvim
- kylechui/nvim-surround
- roobert/surround-ui.nvim
- nvim-treesitter/nvim-treesitter
- nvim-treesitter/nvim-treesitter-textobjects
- bashls
- clangd
- docker_compose_language_service
- efm
- grammarly
- html
- jsonls
- lua_ls
- marksman
- pyright
- rust_analyzer
- sqlls
- svelte
- tailwindcss
- yamlls
Note
Plugin section was generated by Dotfyle