Skip to content

mikavilpas/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,721 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 mise. It creates symlinks from the repository to the home directory.

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

# Sync the dotfiles (practice run)
mise dotfiles apply --dry-run

# Really sync the dotfiles
mise dotfiles apply

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 in my-file-manager.lua, 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 in dotfiles.lua.

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.

Filetype Formatter
Markdown oxfmt
TOML oxfmt

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. You can see a video of the feature in this tsugit.nvim PR for details.

About

Personal dotfiles

Resources

Stars

Watchers

Forks

Contributors