-
๐ฟ Window Managers / Compositors:
- ๐ Hyprland
- ๐ i3 as fallback
-
- ๐ค Emulator: Alacritty with JetBrains Mono font (use Nerd Fonts)
- ๐ Shell: Zsh with OhMyZsh and
robbyrussell
theme
-
- ๐ neovim ๐
- ๐ฆ obsidian
-
- ๐ฅ๏ธ Arc-Dark GTK theme
- bloom-classic Icons and RosePine cursor
- ๐ Telegram theme: ArcDarkGrey
- ๐ค Terminal colors: mix of the OneDark, Arc-Dark and PopOS
- ๐ Neovim:
- onedark with background color from Arc-Dark
- gruvbox - only in TTY
-
- ๐ Taskwarrior-tui dark themed and configured as floating modal
- Overview
- Interesting features
- Neovim plugins full list
- Restore Neovim config and install dependencies on Arch
- Install dotfiles
-
PDE with code completion from many sources (including ripgrep, LSP, path and copilot), a bunch of LSP servers, autosave sessions and files, clipboard history, code formatting, color picker, fuzzy finder, git integration, incremental selection, quick project switching, code snippets, syncing of everything across devices.
-
Super + F
quick search files inside $HOME using ripgrep with a custom ignore file. -
Neo-tree has custom mappings:
Y
Copy absolute path,t
Open directory in Thunar,<c-r>
Replace in folder via Spectre,<c-f>
Search with Telescope live grep. -
dotfiles bare repository will be detected by vim-fugitive, because my config updates environment variables on DirChanged event.
-
Super + er
open Telescope to select *.sh script inside project and run it. Useful for build, run, deploy, any automation. Output will be shown in the quickfix window and hidden after timeout. -
Super + t
opens Neovim's builtin Terminal.Super + sa
opens external Alacritty in the current working directory. -
Super + b
close editor's buffer orq
- close any other window (help, fugitive, spectre) -
Different colorscheme and options for TTY.
-
Automated setup with all dependencies from scratch in 10 minutes.
-
Neovim opens images in the external viewer instead of binary view.
-
Extra keybindings for copy-pasting: file path, current line, entire file contents.
-
And a bunch of other useful plugins. See Neovim plugins full list.
-
Notifications when the battery level is low or fully charged.
-
Alt + f
opens a file manager in the directory found in the clipboard. For example, if you copied a file from some program, you can open its directory by pressing this shortcut. -
Partially different config for each machine depending on hostname.
-
CapsLock's behavior is changed to Backspace.
-
Super + P
pull dotfiles from this repo and shows a notification with an icon. -
Super + `
open ssh servers menu to connect. -
No Display Managers (LightDM or GDM).
-
Automatic tiling via autotiling script. Split direction depends on the currently focused window dimensions. I'm using vim-style HJKL to navigate inside WM.
-
UI scale options depend on the current display setup and autorandr profile name.
-
Super + \
open fuzzy finder to search for local text files in the home directory to edit in Neovim. -
Some of wm's binds were improved by Lua script. Lua has more flexibility than i3config syntax. I like to switch automatically to the appropriate workspace after opening programs using a keyboard shortcut.
-
Alt + e
execute suggested command from zsh-autosuggestions. -
Ctrl + x
after typing# comment question
provides OpenAI generated suggestion. -
Command + c
Command + v
copy & paste.Ctrl + c
andCtrl + p
in neovim. -
Nice aliases: i to install package, md2pdf to convert markdown file to pdf, v to open Neovim, yy to perform system upgrade.
-
Custom pacman hook updates the list of explicitly installed packages (pkglist-intel.txt) when install or remove something.
neovim-project-manager-.mp4
๐ฆ neovim-project plugin
- 0oAstro/dim.lua Dim unused words in neovim
- AckslD/nvim-neoclip.lua Clipboard manager neovim plugin with telescope integration
- HallerPatrick/py_lsp.nvim Lsp Plugin for working with Python virtual environments
- L3MON4D3/LuaSnip Snippet Engine for Neovim written in Lua.
- Mofiqul/dracula.nvim Dracula colorscheme for neovim written in Lua
- MunifTanjim/nui.nvim UI Component Library for Neovim.
- NeogitOrg/neogit An interactive and powerful Git interface for Neovim, inspired by Magit
- NvChad/nvim-colorizer.lua Maintained fork of the fastest Neovim colorizer
- Pocco81/AutoSave.nvim ๐งถ Automatically save your changes in NeoVim
- RRethy/vim-illuminate illuminate.vim - (Neo)Vim plugin for automatically highlighting other uses of the word under the cursor using either LSP, Tree-sitter, or regex matching.
- Shatur/neovim-session-manager A simple wrapper around :mksession.
- adalessa/laravel.nvim Plugin for Nvim to work with laravel projects.
- akinsho/toggleterm.nvim A neovim lua plugin to help easily manage multiple terminal windows
- bloznelis/before.nvim Jump to the last edit in Neovim
- ckipp01/stylua-nvim Let's just use a formatter and never discuss formatting again.
- coffebar/crowtranslate.nvim Translate the visually selected text in Neovim.
- coffebar/neovim-project Neovim project plugin simplifies project management by maintaining project history and providing quick access to projects via Telescope.
- coffebar/transfer.nvim Syncing files with remote server using rsync and OpenSSH
- cohama/lexima.vim Auto close parentheses and repeat by dot dot dot...
- elihunter173/dirbuf.nvim A file manager for Neovim which lets you edit your filesystem like you edit text
- folke/trouble.nvim ๐ฆ A pretty diagnostics, references, telescope results, quickfix and location list to help you solve all the trouble your code is causing.
- folke/which-key.nvim ๐ฅ Create key bindings that stick. WhichKey helps you remember your Neovim keymaps, by showing available keybindings in a popup as you type.
- github/copilot.vim Neovim plugin for GitHub Copilot
- glepnir/lspsaga.nvim improve neovim lsp experience
- google/vim-searchindex vim-searchindex: display number of search matches & index of a current match
- gruvbox-community/gruvbox Retro groove color scheme for Vim - community maintained edition
- hrsh7th/cmp-buffer nvim-cmp source for buffer words
- hrsh7th/cmp-calc nvim-cmp source for math calculation
- hrsh7th/cmp-cmdline nvim-cmp source for vim's cmdline
- hrsh7th/cmp-emoji nvim-cmp source for emoji
- hrsh7th/cmp-nvim-lsp nvim-cmp source for neovim builtin LSP client
- hrsh7th/cmp-nvim-lsp-signature-help cmp-nvim-lsp-signature-help
- hrsh7th/cmp-nvim-lua nvim-cmp source for nvim lua
- hrsh7th/cmp-path nvim-cmp source for path
- hrsh7th/nvim-cmp A completion plugin for neovim coded in Lua.
- iamcco/markdown-preview.nvim markdown preview plugin for (neo)vim
- ibutra/checkbox.nvim Simple checkbox handling for neovim
- j-hui/fidget.nvim ๐ซ Extensible UI for Neovim notifications and LSP progress messages.
- johmsalas/text-case.nvim An all in one plugin for converting text case in Neovim
- justinmk/vim-sneak The missing motion for Vim ๐
- klen/nvim-test A Neovim wrapper for running tests
- kylechui/nvim-surround Add/change/delete surrounding delimiter pairs with ease. Written with in Lua.
- lewis6991/gitsigns.nvim Git integration for buffers
- lukas-reineke/cmp-rg ripgrep source for nvim-cmp
- lukas-reineke/indent-blankline.nvim Indent guides for Neovim
- m-demare/hlargs.nvim Highlight arguments' definitions and usages, using Treesitter
- mawkler/modicator.nvim Cursor line number mode indicator plugin for Neovim
- mboughaba/i3config.vim Vim syntax highlighting for i3 config ๐
- mhartington/formatter.nvim mhartington/formatter.nvim
- moll/vim-bbye Delete buffers and close files in Vim without closing your windows or messing up your layout. Like Bclose.vim, but rewritten and well maintained.
- navarasu/onedark.nvim One dark and light colorscheme for neovim >= 0.5.0 written in lua based on Atom's One Dark and Light theme. Additionally, it comes with 5 color variant styles
- neovim/nvim-lspconfig Quickstart configs for Nvim LSP
- nguyenvukhang/nvim-toggler invert text in vim, purely with lua.
- numToStr/Comment.nvim ๐ง // Smart and powerful comment plugin for neovim. Supports treesitter, dot repeat, left-right/up-down motions, hooks, and more
- nvim-lua/plenary.nvim plenary: full; complete; entire; absolute; unqualified. All the lua functions I don't want to write twice.
- nvim-lualine/lualine.nvim A blazing fast and easy to configure neovim statusline plugin written in pure lua.
- nvim-neo-tree/neo-tree.nvim Neovim plugin to manage the file system and other tree like structures.
- nvim-pack/nvim-spectre Find the enemy and replace them with dark power.
- nvim-telescope/telescope-live-grep-args.nvim Live grep with args
- nvim-telescope/telescope.nvim Find, Filter, Preview, Pick. All lua, all the time.
- nvim-tree/nvim-web-devicons lua
fork
of vim-web-devicons for neovim - nvim-treesitter/nvim-treesitter Nvim Treesitter configurations and abstraction layer
- nvimtools/none-ls.nvim null-ls.nvim reloaded / Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.
- petertriho/cmp-git Git source for nvim-cmp
- phelipetls/vim-hugo Vim plugin for web development with static site generator Hugo
- rafamadriz/friendly-snippets Set of preconfigured snippets for different languages.
- rafcamlet/nvim-luapad Interactive real time neovim scratchpad for embedded lua engine - type and watch!
- rbong/vim-flog A blazingly fast, stunningly beautiful, exceptionally powerful git branch viewer for Vim/Neovim.
- rcarriga/nvim-notify A fancy, configurable, notification manager for NeoVim
- romainl/vim-cool A very simple plugin that makes hlsearch more useful.
- romgrk/barbar.nvim The neovim tabline plugin.
- romgrk/nvim-treesitter-context Show code context
- saadparwaiz1/cmp_luasnip luasnip completion source for nvim-cmp
- sindrets/diffview.nvim Single tabpage interface for easily cycling through diffs for all modified files for any git rev.
- skywind3000/asyncrun.vim ๐ Run Async Shell Commands in Vim 8.0 / NeoVim and Output to the Quickfix Window !!
- skywind3000/asynctasks.vim ๐ Modern Task System for Project Building, Testing and Deploying !!
- tpope/vim-dotenv dotenv.vim: Basic support for .env and Procfile
- tpope/vim-fugitive fugitive.vim: A Git wrapper so awesome, it should be illegal
- tzachar/highlight-undo.nvim Highlight changed text after Undo / Redo operations
- windwp/nvim-ts-autotag Use treesitter to auto close and auto rename html tag
Full Neovim setup can be tested inside docker container.
git clone https://github.com/coffebar/docker-test-fetch-nvim-conf.git
cd docker-test-fetch-nvim-conf && sh ./build.sh
See docker-test-fetch-nvim-conf repo for more details.
fetch-nvim-conf.sh
script helps me to get my full Neovim config installed on any Arch Linux machine with all dependencies.
It's not just clone repo. This script requires Arch Linux with pacman, sudo and git installed. It will install required packages, pnpm package manager and node modules for LSP & formatting.
It will overwrite the entire ~/.config/nvim
folder!
# export PATH="$PATH:$HOME/.local/share/pnpm:$HOME/.node_modules/bin"
sh -c "$(wget -O- https://raw.githubusercontent.com/coffebar/dotfiles/main/fetch-nvim-conf.sh)"
Please don't do this if you're not me
This instruction will work as is for coffebar only!
-
Before proceeding you need to restore SSH and GPG keys.
-
SSH config must point to the GitHub's private key.
sh -c "$(wget -O- https://raw.githubusercontent.com/coffebar/dotfiles/main/dotfiles-restore.sh)"