+vdirsyncer: $(XDG_CACHE_HOME)
+       ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
+       mkdir -p $(XDG_DATA_HOME)/vdirsyncer/{contacts,calendars}
+.PHONY: vdirsyncer
+
+vim: $(XDG_CONFIG_HOME)
+       ln -sfT $(APATH)/vim $(XDG_CONFIG_HOME)/vim
+       mkdir -p $(XDG_DATA_HOME)/vim
+.PHONY: vim
+
+yay: $(XDG_CONFIG_HOME)
+       ln -sfT $(APATH)/yay $(XDG_CONFIG_HOME)/yay
+       mkdir -p $(XDG_CACHE_HOME)/yay
+
+xinit: $(XDG_CONFIG_HOME) xprofile
+       ln -sfT $(APATH)/$@rc ~/.$@rc
+       ln -sfT $(APATH)/$@   $(XDG_CONFIG_HOME)/$@
+.PHONY: xinit
+
+xprofile: $(XDG_CONFIG_HOME)
+       ln -sfT $(APATH)/$@   ~/.$@
+       ln -sfT $(APATH)/$@.d $(XDG_CONFIG_HOME)/$@.d
+.PHONY: xprofile
+
+wakeonlan: $(XDG_CONFIG_HOME)
+       ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
+.PHONY: wakeonlan
+
+weechat: $(XDG_CONFIG_HOME) $(XDG_CACHE_HOME)
+       ln -sfT $(APATH)/weechat $(XDG_CONFIG_HOME)/weechat
+       mkdir -p $(XDG_CACHE_HOME)/weechat
+.PHONY: weechat
+
+zathura: $(XDG_CONFIG_HOME)
+       ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
+.PHONY: zathura
+
+zsh: $(XDG_CONFIG_HOME)
+       ln -sfT $(APATH)/zshrc ~/.zshrc
+       ln -sfT $(APATH)/zshenv ~/.zshenv
+       ln -sfT $(APATH)/zsh $(XDG_CONFIG_HOME)/zsh
+       ln -sfT $(APATH)/aliases $(XDG_CONFIG_HOME)/aliases
+       mkdir -p $(XDG_CACHE_HOME)/zsh
+       mkdir -p $(XDG_DATA_HOME)/zsh
+       git submodule update --init zsh/lib/zsh-syntax-highlighting
+.PHONY: zsh
+
+$(FILES):