Skip to content

mikavilpas/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My dotfiles

This is the configuration for my personal development environment.

I use this repository to

Keyboard

My keyboard is an ErgoDox EZ. It is a split keyboard with mechanical switches.

Keyboard layout

Image of my keyboard layout

My keyboard layout is based on DAS, a layout optimized for the Finnish language created by Cristian Seres.

The layout and all its customizations are embedded in the keyboard's firmware using QMK.

Installation

Because this is a personal configuration, it is not meant to be installed by others. However, you can use it as a reference for your own configuration.

Here are the basics:

Dotfile management

I manage my dotfiles with GNU Stow. It creates symlinks from the repository to the home directory. See here for an introduction by Shawn McElroy.

This way I can keep the configuration under version control and still have it in the home directory.

# Sync the dotfiles (practice run)
stow --verbose 2 . --simulate

# Really sync the dotfiles
stow --verbose 2 .

Dependency management

Many of the packages I use have some kind of custom dependencies:

  • many tools are installed using mise(see .config/mise/config.toml) and automatically updated using renovate
  • neovim plugins are managed using lazy.nvim
  • my terminal file manager is yazi. Its plugins are managed using lazy.nvim as well. The approach is explained in detail in yazi.nvim's plugin-management.md. The config is available here, but the short version is that it uses lazy.nvim to download and update the dependencies, and then creates symlinks whenever they are installed/updated.
  • plugins for other applications are also managed with the same approach to keep things simple. An example can be seen here.

Testing

Instead of managing an installation script, I have a test that I can run in neovim.

The test checks that I have all the applications installed, and acts as a reminder.

" in neovim
:checkhealth

Continuous integration

I have an end-to-end testing setup in integration-tests. It uses https://github.com/mikavilpas/tui-sandbox to run the tests.

Lately I have been experimenting with implementing common development scripts in rust. These are also e2e tested with Github Actions.

Formatting

Here is how the files in this repository are formatted. Since I am the only maintainer, most use the editor's "format on save" functionality.

Filetype Formatter Notes
Markdown prettier
TOML taplo Run with taplo format

Git

I use lazygit and the tsugit.nvim plugin to use git.

Some features that I like:

  • an AI (in my case, Github Copilot) helps me write commit messages in Neovim when using tsugit.nvim
  • I set up conform.nvim to use prettierd to format my gitcommit messages using markdown syntax. See my conform.nvim configuration for details on how I did it.

About

Personal dotfiles

Resources

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •