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
fzf will be used in zsh shells when installed (i.e. using a package manager).
Depending on which config packages are installed, these dependencies are also required:
git
kitty
nvim
- In the repo, execute
git submodule update --init
. - Edit
~/.zshenv
to readexport ZDOTDIR="$HOME/repos/dotfiles/zsh"
(adapt directory). - Execute
make
in 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.
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 git/local.inc
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/.gitconfig
Additional 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.