APATH := $(realpath .) XDG_CONFIG_HOME ?= ~/.config XDG_DATA_HOME ?= ~/.local/share FILES := bin DOTFILES := goobookrc msmtp* profile tmux.conf weechat Xresources CONFIGFILES := compton.conf mpv offlineimap ranger retroarch xbindkeys xkb .PHONY: install $(FILES) $(DOTFILES) $(CONFIGFILES) install: $(FILES) $(DOTFILES) $(CONFIGFILES) $(XDG_DATA_HOME) $(XDG_CONFIG_HOME): mkdir -p $@ task: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/taskrc $(XDG_CONFIG_HOME)/taskrc git: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/git $(XDG_CONFIG_HOME)/git ln -sfT $(APATH)/tig $(XDG_CONFIG_HOME)/tig .PHONY: git vim: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/vim $(XDG_CONFIG_HOME)/vim mkdir -p $(XDG_DATA_HOME)/vim git clone https://github.com/gmarik/vundle $(XDG_DATA_HOME)/vim/vundle .PHONY: vim mutt: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/mutt $(XDG_CONFIG_HOME)/mutt .PHONY: mutt gdb: mkdir $(XDG_DATA_HOME)/gdb ln -sfT $(APATH)/gdbinit ~/.gdbinit ln -sfT $(APATH)/cgdb ~/.cgdb .PHONY: gdb awesome: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/awesome $(XDG_CONFIG_HOME)/awesome .PHONY: awesome qutebrowser: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/qutebrowser $(XDG_CONFIG_HOME)/qutebrowser mkdir -p ~/downloads .PHONY: qutebrowser mpd: systemd ln -sfT $(APATH)/mpd $(XDG_CONFIG_HOME)/mpd mkdir -p $(XDG_DATA_HOME)/mpd/playlists systemctl --user enable mpd systemctl --user start mpd .PHONY: mpd ncmpcpp: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/ncmpcpp $(XDG_CONFIG_HOME)/ncmpcpp mkdir -p $(XDG_DATA_HOME)/mpd/lyrics .PHONY: ncmpcpp systemd: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ .PHONY: systemd gnupg: systemd ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ systemctl --user enable gpg-agent.socket gpg-agent-extra.socket gpg-agent-browser.socket dirmngr.socket systemctl --user start gpg-agent.socket gpg-agent-extra.socket gpg-agent-browser.socket dirmngr.socket .PHONY: gnupg zsh: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/zshrc ~/.zshrc ln -sfT $(APATH)/zprofile ~/.zprofile ln -sfT $(APATH)/zshenv ~/.zshenv ln -sfT $(APATH)/zsh $(XDG_CONFIG_HOME)/zsh ln -sfT $(APATH)/aliases $(XDG_CONFIG_HOME)/aliases mkdir -p ~/.cache/zsh .PHONY: zsh xprofile: ln -sfT $(APATH)/xprofile ~/.xprofile .PHONY: xprofile dircolors: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/dircolors $(XDG_CONFIG_HOME)/dircolors .PHONY: dircolors urxvt: $(XDG_CONFIG_HOME) ln -sfT $(APATH)/urxvt $(XDG_CONFIG_HOME)/urxvt .PHONY: urxvt $(FILES): @if [[ -e ~/$@ && ! -L ~/$@ ]]; then \ if [[ -d $@ ]]; then \ cp -r ~/$@/* $@; \ else \ cp -r ~/$@ $@; \ fi; \ rm -r ~/$@; \ fi; ln -sfT $(APATH)/$@ ~/$@ $(DOTFILES): @if [[ -e ~/.$@ && ! -L ~/.$@ ]]; then \ if [[ -d .$@ ]]; then \ cp -r ~/.$@/* $@; \ else \ cp -r ~/.$@ $@; \ fi; \ rm -r ~/.$@; \ fi; ln -sfT $(APATH)/$@ ~/.$@ $(CONFIGFILES): $(XDG_CONFIG_HOME) @if [[ -e $(XDG_CONFIG_HOME)/$@ && ! -L $(XDG_CONFIG_HOME)/$@ ]]; then \ if [[ -d .config/$@ ]]; then \ cp -r $(XDG_CONFIG_HOME)/$@/* $@; \ else \ cp -r $(XDG_CONFIG_HOME)/$@ $@; \ fi; \ rm -r $(XDG_CONFIG_HOME)/$@; \ fi; ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@