This repository contains configuration files and Lua code for my programming environment on Linux. The centrepieces of this environment are kitty and Neovim.
If you are looking for my Neovim config, you can find it in nvim/.config/nvim.
The following is required for installing and using these dotfiles:
- Linux
- git
- zsh
- make
- Stow
When installed (i.e. using a package manager), fzf will be used in zsh shells for completion selection.
Depending on which config packages are installed, these dependencies are also required:
gitkittynvim
- In the repo, execute
git submodule update --init. - Edit
~/.zshenvto readexport ZDOTDIR="$HOME/repos/dotfiles/zsh"(adapt directory). - Execute
makein the repo to install all config packages.
Run make list to list the available packages.
If you wish to only install specific packages, pass them as additional arguments to make, i.e.: make ssh git.
Run nvim +PaqUpdate to update all plugins.
Nightly versions of Neovim can be downloaded as ~/bin/nv using update-nvim-nightly.
This requires gh to be installed.
Given direnv is installed, specific environment variables can be exported in .envrc files which are loaded automatically upon entering the (sub)directory.
Project local configuration can be set in .nvim.lua or .nvimrc.
Here, any desired Language Servers (LSP) can be configured and/or enabled. For example:
vim.lsp.config('gopls', {
settings = {
gopls = {
staticcheck = true,
gofumpt = true,
hints = {
compositeLiteralFields = true,
parameterNames = true,
},
},
},
})
vim.lsp.enable('gopls')Other dotfiles specific settings that can be set:
vim.g.php_tests_prefix: directory where PHP tests are found (default:tests/).
A ~/.local.gitconfig file can be used to set custom git configuration values.
Here you can use conditional includes to set configuration per directory:
# vi: ft=gitconfig
[user]
email = me@example.com
[includeIf "gitdir:~/foo/bar/"]
path = ~/foo/bar/.gitconfigAdditional project-level parameters can be defined within .ctags.d/*.ctags files.
This allows to exclude i.e. compiled or vendor source files using more --exclude= options.
Copyright 2021, Dietrich Moerman.
Released under the terms of the MIT License.