X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/6eaf95464888c19a933634dd745c259b4b459b68..refs/heads/lazyvim:/Makefile diff --git a/Makefile b/Makefile index 3184bb6..a245778 100644 --- a/Makefile +++ b/Makefile @@ -1,82 +1,202 @@ APATH := $(realpath .) +XDG_CONFIG_HOME ?= ~/.config +XDG_CACHE_HOME ?= ~/.cache +XDG_DATA_HOME ?= ~/.local/share + FILES := bin -DOTFILES := goobookrc msmtp* profile tmux.conf weechat Xresources -CONFIGFILES := aliases compton.conf git mpv offlineimap ranger retroarch xbindkeys xkb +DOTFILES := goobookrc profile Xresources +CONFIGFILES := mpv offlineimap ranger retroarch xbindkeys xkb + +.PHONY: core_files +core_files: dircolors git nvim ranger ssh systemd tmux zsh + +.PHONY: desktop +desktop: core_files awesome kitty picom qutebrowser rofi xkb .PHONY: install $(FILES) $(DOTFILES) $(CONFIGFILES) install: $(FILES) $(DOTFILES) $(CONFIGFILES) -~/.config: - mkdir -p ~/.config +$(XDG_DATA_HOME) $(XDG_CONFIG_HOME): + mkdir -p $@ -vim: - ln -sfT $(APATH)/vim ~/.config/vim - mkdir -p ~/.local/share/vim - git clone https://github.com/gmarik/vundle ~/.local/share/vim/vundle -.PHONY: vim +awesome: $(XDG_CONFIG_HOME) xinit + ln -sfT $(APATH)/awesome $(XDG_CONFIG_HOME)/awesome + ln -sfT $(APATH)/zlogin ~/.zlogin + git submodule update --init \ + awesome/widgets/pomodoro \ + awesome/widgets/net_widgets +.PHONY: awesome -mutt: - ln -sfT $(APATH)/mutt ~/.config/mutt -.PHONY: mutt +dircolors: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/dircolors $(XDG_CONFIG_HOME)/dircolors +.PHONY: dircolors -gdb: - ln -sfT $(APATH)/gdbinit ~/.gdbinit - ln -sfT $(APATH)/cgdb ~/.cgdb +gdb: $(XDG_CACHE_HOME) $(XDG_DATA_HOME) + mkdir $(XDG_DATA_HOME)/gdb + ln -sfT $(APATH)/gdb $(XDG_CONFIG_HOME)/gdb .PHONY: gdb -awesome: ~/.config - ln -sfT $(APATH)/awesome ~/.config/awesome -.PHONY: awesome +git: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/git $(XDG_CONFIG_HOME)/git + ln -sfT $(APATH)/tig $(XDG_CONFIG_HOME)/tig +.PHONY: git -qutebrowser: ~/.config - ln -sfT $(APATH)/qutebrowser ~/.config/qutebrowser - mkdir -p ~/downloads -.PHONY: qutebrowser +gnupg: systemd + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ + chmod 700 $(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 + sudo ln -sfT $(APATH)/bin/pinentry /usr/local/bin/pinentry +.PHONY: gnupg + +khal: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: khal + +khard: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: khard + +kitty: + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: kitty mpd: systemd - ln -sfT $(APATH)/mpd ~/.config/mpd - mkdir -p ~/.local/share/mpd/playlists + 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: - ln -sfT $(APATH)/ncmpcpp ~/.config/ncmpcpp - mkdir -p ~/.local/share/mpd/lyrics +mbsync: + ln -sfT $(APATH)/mbsync $(XDG_CONFIG_HOME)/mbsync +.PHONY: mbsync + +msmtp: + ln -sfT $(APATH)/msmtprc ~/.msmtprc + ln -sfT $(APATH)/msmtp ~/.msmtp +.PHONY: msmtp + +mutt: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/mutt $(XDG_CONFIG_HOME)/mutt +.PHONY: mutt + +mail: mbsync msmtp mutt +.PHONY: mail + +ncmpcpp: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/ncmpcpp $(XDG_CONFIG_HOME)/ncmpcpp + mkdir -p $(XDG_DATA_HOME)/mpd/lyrics .PHONY: ncmpcpp -systemd: - ln -sfT $(APATH)/$@ ~/.config/$@ +pacman: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: pacman + +picom: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: picom + +qute_scripts := $(wildcard qutebrowser/userscripts/*) +$(qute_scripts): + mkdir -p $(XDG_DATA_HOME)/qutebrowser/userscripts + ln -sfT $(APATH)/$@ $(XDG_DATA_HOME)/$@ +.PHONY: $(qute_scripts) + +qutebrowser: $(XDG_CONFIG_HOME) $(qute_scripts) + ln -sfT $(APATH)/qutebrowser $(XDG_CONFIG_HOME)/qutebrowser + mkdir -p ~/downloads +.PHONY: qutebrowser + +rofi: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: rofi + +ssh: + ln -sfT $(APATH)/ssh/config ~/.ssh/config +.PHONY: ssh + +# copy system files, do not link, it doesn't work if home is encrypted +/etc/systemd/system/%: systemd/system/% + sudo cp $(APATH)/$< $@ + +systemd_system_units := $(patsubst %,/etc/%,$(wildcard systemd/system/*)) +systemd: $(XDG_CONFIG_HOME) $(systemd_system_units) + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ .PHONY: systemd -gnupg: systemd - ln -sfT $(APATH)/$@ ~/.config/$@ - 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 +task: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: task -zsh: - ln -sfT $(APATH)/zshrc ~/.zshrc - ln -sfT $(APATH)/zprofile ~/.zprofile - ln -sfT $(APATH)/zshenv ~/.zshenv - ln -sfT $(APATH)/zsh ~/.config/zsh - mkdir -p ~/.cache/zsh -.PHONY: zsh +tmux: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/tmux $(XDG_CONFIG_HOME)/tmux + git submodule update --init \ + tmux/plugins/nord-tmux \ + tmux/plugins/tpm +.PHONY: tmux -xprofile: - ln -sfT $(APATH)/xprofile ~/.xprofile +urxvt: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/urxvt $(XDG_CONFIG_HOME)/urxvt +.PHONY: urxvt + +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 + +nvim: $(XDG_CONFIG_HOME) vim + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: nvim + +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 -dircolors: - ln -sfT $(APATH)/dircolors ~/.config/dircolors -.PHONY: dircolors +wakeonlan: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: wakeonlan -urxvt: - ln -sfT $(APATH)/urxvt ~/.config/urxvt -.PHONY: urxvt +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 + +zellij: $(XDG_CONFIG_HOME) + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@ +.PHONY: zellij + +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): +$(FILES): @if [[ -e ~/$@ && ! -L ~/$@ ]]; then \ if [[ -d $@ ]]; then \ cp -r ~/$@/* $@; \ @@ -84,10 +204,10 @@ $(FILES): cp -r ~/$@ $@; \ fi; \ rm -r ~/$@; \ - fi; + fi; ln -sfT $(APATH)/$@ ~/$@ -$(DOTFILES): +$(DOTFILES): @if [[ -e ~/.$@ && ! -L ~/.$@ ]]; then \ if [[ -d .$@ ]]; then \ cp -r ~/.$@/* $@; \ @@ -95,16 +215,16 @@ $(DOTFILES): cp -r ~/.$@ $@; \ fi; \ rm -r ~/.$@; \ - fi; + fi; ln -sfT $(APATH)/$@ ~/.$@ -$(CONFIGFILES): ~/.config - @if [[ -e ~/.config/$@ && ! -L ~/.config/$@ ]]; then \ +$(CONFIGFILES): $(XDG_CONFIG_HOME) + @if [[ -e $(XDG_CONFIG_HOME)/$@ && ! -L $(XDG_CONFIG_HOME)/$@ ]]; then \ if [[ -d .config/$@ ]]; then \ - cp -r ~/.config/$@/* $@; \ + cp -r $(XDG_CONFIG_HOME)/$@/* $@; \ else \ - cp -r ~/.config/$@ $@; \ + cp -r $(XDG_CONFIG_HOME)/$@ $@; \ fi; \ - rm -r ~/.config/$@; \ - fi; - ln -sfT $(APATH)/$@ ~/.config/$@ + rm -r $(XDG_CONFIG_HOME)/$@; \ + fi; + ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@