Dotfiles (outdated, see source for now)

I’ve written a little tool to manage my dotfiles, in a way that it symlinks everything to where it should be. As I use patched versions of st and dwm some parts of my dotfiles doesn’t make sense if you don’t use my versions of st and dwm, but they are not prerequisites.


I store my dotfiles in containers for each category of dotfiles, and each container can be seen as their own representation of $HOME. There is for example one container called vim containing everything that has to do with vim and so on.



installer and uninstaller for the dotfiles.


scripts and programs that will be included in $PATH.


scripts that will be sourced as functions instead of using aliases, as I find it simpler to maintain each ’alias’ as it’s own file.


symlinked into $HOME.


KornShell is quite central to my dotfiles and contains functions that require bin and bin/.bin/alias to be installed. .kshrc is called when KornShell starts and then sources every .sh in .kshrc.d.

other containers

  • cdm
  • git
  • input
  • mbsync
  • mpv
  • msmtp
  • mutt
  • newsboat
  • ssh
  • surf
  • sxhkd
  • sxiv
  • themes
  • tmux
  • vifm
  • vim
  • vimb
  • x


I haven’t actively integrated any dependency checks in any dotfile so if you use my dotfiles keep in mind that it might break stuff, and you might need to install extra software to make it work. If you find any such issues feel free to report them to me, and I might fix them.

Oh, and I use ksh (loksh). That is kind of a prerequisite...


Installation is pretty simple. Just clone and install:

git clone 
cd dotfiles 
# optionally: mv dotfiles .dotfiles && cd .dotfiles 

Except for installing all you can tell link to install just the container for vim ./link install vim and so on. To remove a container simply ./link remove vim, or show status using ./link status vim.

get source here.