Dotfiles
Coffebar's personal dotfiles repo for Arch Linux daily driver with tiling window managers and Neovim
Install / Use
/learn @coffebar/DotfilesREADME

dotfiles backup
Overview
-
🌿 Window Managers / Compositors:
- 🍚 Hyprland
- 🍙 i3 as fallback
-
- :robot: Emulator: Alacritty with JetBrains Mono font (use Nerd Fonts)
- 🌌 Shell: Zsh with OhMyZsh and
robbyrusselltheme
-
- :green_heart: neovim :green_heart:
- 🦍 obsidian
-
- :desktop_computer: Arc-Dark GTK theme
- :basecamp: bloom-classic Icons and RosePine cursor
- :new_moon_with_face: Telegram theme: ArcDarkGrey
- :robot: Terminal colors: mix of the OneDark, Arc-Dark and PopOS
- :green_heart: Neovim:
- onedark with background color from Arc-Dark
- gruvbox - only in TTY
-
- :bookmark_tabs: Taskwarrior-tui dark themed and configured as floating modal
Table of Contents
- Overview
- Interesting features
- Neovim plugins full list
- Restore Neovim config and install dependencies on Arch
- Install dotfiles
Interesting features
Neovim
-
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.
-
Neo-tree has custom mappings:
YCopy absolute path,tOpen 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.
-
<leader>erruns AsyncTask project-run command for build automation. Output will be shown in the quickfix window. -
<leader>topens Neovim's builtin Terminal.<leader>taopens external Alacritty in the current working directory. -
<leader>bclose 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.
Common for Window managers
-
Notifications when the battery level is low or fully charged.
-
Alt + fopens 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 + Ppull dotfiles from this repo and shows a notification with an icon. -
Super + `open ssh servers menu to connect. -
No Display Managers (LightDM or GDM).
i3
-
Automatic tiling via autotiling script. Split direction depends on the currently focused window dimensions. I'm using vim-style HJKL to navigate inside WM.
-
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.
Terminal
-
Alt + eexecute suggested command from zsh-autosuggestions. -
Command + cCommand + vcopy & paste.Ctrl + candCtrl + pin neovim. -
Nice aliases: i to install package, v to open Neovim, yy to perform system upgrade.
md2pdf- convert markdown to pdf. -
Custom pacman hook updates the list of explicitly installed packages (pkglist-*.txt files) when install or remove something.
Neovim project management
https://github.com/coffebar/neovim-project/assets/3100053/e88ae41a-5606-46c4-a287-4c476ed97ccc
📦 neovim-project plugin
Neovim plugins full list
<!-- plugins list start -->- 0oAstro/dim.lua Dim unused words in neovim
- 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.
- NvChad/nvim-colorizer.lua 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.
- 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, snacks.nvim or fzf-lua
- coffebar/transfer.nvim Syncing files with remote server using rsync and OpenSSH
- cohama/lexima.vim Auto close parentheses and repeat by dot dot dot...
- 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.
- kylechui/nvim-surround Add/change/delete surrounding delimiter pairs with ease. Written with in Lua.
- [lewis6991/git
