Welcome to ivuorinen's .dotfiles repository. It's a hodgepodge of scripts and configurations, tests and mistakes I'm not aware of yet. As I find more interesting tools, configs and other stuff, this repository will live accordingly.
Please for the love of everything good do not use these 1:1 as your own dotfiles, fork or download the repository as a zip and go from there with your own configs.
It would be nice if you'd add an issue linking to your fork or repo so I can see what interesting stuff you've done with it. Sharing is caring.
- Clone this repository to
$HOME/.dotfiles ./install- ???
- Profit
cd $HOME/.dotfiles && git pull && ./install
| Path | Description |
|---|---|
.github |
GitHub Repository configuration files, meta. |
hosts/{hostname}/ |
Configs that should apply to that host only. |
local/bin |
Helper scripts that I've collected or wrote. |
scripts |
Setup scripts. |
Configurations under hosts/<hostname> are applied only when running on the
matching machine. Each host folder contains its own install.conf.yaml that
is processed by Dotbot during installation.
| Repo | Destination | Description |
|---|---|---|
base/ |
.* |
$HOME level files. |
config/ |
.config/ |
Configurations for applications. |
local/ |
.local/ |
XDG Base folder: bin, share and state |
ssh/ |
.ssh/ |
SSH Configurations. |
.local/bin/dfm is a shell script that has some tools that help with dotfiles management.
Running dfm gives you a list of available commands.
dfm docs generates Markdown documentation under the docs/ directory. The
subcommands are:
dfm docs alias # regenerate alias table
dfm docs folders # document interesting folders
dfm docs keybindings # update keybinding docs for tmux, nvim and others
dfm docs all # run every docs taskThe docs/ folder contains generated cheat sheets, keybindings and other
reference files. New documentation can be added without modifying this README.
The folder structure follows XDG Base Directory Specification where possible.
| Env | Default | Short description |
|---|---|---|
$XDG_BIN_HOME |
$HOME/.local/bin |
Local binaries |
$XDG_CONFIG_HOME |
$HOME/.config |
User-specific configs |
$XDG_DATA_HOME |
$HOME/.local/share |
User-specific data files |
$XDG_STATE_HOME |
$HOME/.local/state |
App state that should persist between restarts |
Please see docs/folders.md for more information.
This repository uses Git submodules for external dependencies. After cloning, run:
git submodule update --init --recursiveTo pull submodule updates later use:
git submodule update --remote --mergeThe helper script add-submodules.sh documents how each submodule is added and
configured. Submodules are automatically updated by the
update-submodules.yml workflow.
Shell scripts under local/bin are validated with Bats.
Run yarn test to execute every test file. Bats is installed as a development
dependency, so run yarn install first if needed.


