XDG_DATA_HOME ?= ~/.local/share
FILES := bin
-DOTFILES := goobookrc msmtp* profile tmux.conf weechat Xresources
-CONFIGFILES := compton.conf mpv offlineimap ranger retroarch xbindkeys xkb
+DOTFILES := goobookrc profile Xresources
+CONFIGFILES := mpv offlineimap ranger retroarch xbindkeys xkb
.PHONY: core_files
-core_files: dircolors git ssh systemd vim zsh
+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)
$(XDG_DATA_HOME) $(XDG_CONFIG_HOME):
mkdir -p $@
-awesome: $(XDG_CONFIG_HOME)
+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
dircolors: $(XDG_CONFIG_HOME)
ln -sfT $(APATH)/dircolors $(XDG_CONFIG_HOME)/dircolors
.PHONY: dircolors
-gdb:
+gdb: $(XDG_CACHE_HOME) $(XDG_DATA_HOME)
mkdir $(XDG_DATA_HOME)/gdb
ln -sfT $(APATH)/gdb $(XDG_CONFIG_HOME)/gdb
- ln -sfT $(APATH)/gdbinit ~/.gdbinit
- ln -sfT $(APATH)/cgdb ~/.cgdb
.PHONY: gdb
git: $(XDG_CONFIG_HOME)
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 $(XDG_CONFIG_HOME)/mpd
mkdir -p $(XDG_DATA_HOME)/mpd/playlists
systemctl --user start mpd
.PHONY: mpd
+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
-qutebrowser: $(XDG_CONFIG_HOME)
+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
+
+rofimoji: $(XDG_CONFIG_HOME)
+ ln -sfT $(APATH)/$@.rc $(XDG_CONFIG_HOME)/$@.rc
+.PHONY: rofimoji
+
ssh:
ln -sfT $(APATH)/ssh/config ~/.ssh/config
.PHONY: ssh
-systemd: $(XDG_CONFIG_HOME)
+# copy system files, do not link, it doesn't work if home is encrypted
+/etc/systemd/system/%: systemd/system/%
+ sudo cp $(APATH)/$< $@
+
+systemd-system: $(patsubst %,/etc/%,$(wildcard systemd/system/*))
+ sudo systemctl daemon-reload
+.PHONY: systemd-system
+
+systemd-user: $(XDG_CONFIG_HOME)
ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
+.PHONY: systemd-user
+
+systemd: systemd-user systemd-system
+ systemctl --user daemon-reload
.PHONY: systemd
task: $(XDG_CONFIG_HOME)
- ln -sfT $(APATH)/taskrc $(XDG_CONFIG_HOME)/taskrc
+ ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
.PHONY: task
+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
+
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
- -git clone https://github.com/gmarik/vundle $(XDG_DATA_HOME)/vim/vundle
.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
-xprofile:
- ln -sfT $(APATH)/xprofile ~/.xprofile
+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
+
+wezterm: $(XDG_CONFIG_HOME)
+ ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
+.PHONY: wezterm
+
+zathura: $(XDG_CONFIG_HOME)
+ ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
+.PHONY: zathura
+
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 $(XDG_CACHE_HOME)/zsh
mkdir -p $(XDG_DATA_HOME)/zsh
+ git submodule update --init zsh/lib/zsh-syntax-highlighting
.PHONY: zsh
$(FILES):