Skip to content

💻 Configuration for a programming environment built around kitty and Neovim.

License

Notifications You must be signed in to change notification settings

dietrichm/dotfiles

Repository files navigation

💻 dotfiles

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.

Dependencies

The following is required for installing and using these dotfiles:

  • Linux
  • git
  • zsh
  • make
  • Stow

Optional

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:

Installation

  • In the repo, execute git submodule update --init.
  • Edit ~/.zshenv to read export ZDOTDIR="$HOME/repos/dotfiles/zsh" (adapt directory).
  • Execute make in the repo to install all config packages.

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.

Updating

Run nvim +PaqUpdate to update all plugins.

Custom configuration

zsh

Given direnv is installed, specific environment variables can be exported in .envrc files which are loaded automatically upon entering the (sub)directory.

Neovim

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/).

git

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

universal-ctags

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.

License

Copyright 2021, Dietrich Moerman.

Released under the terms of the MIT License.

About

💻 Configuration for a programming environment built around kitty and Neovim.

Topics

Resources

License

Stars

Watchers

Forks