]> git.rmz.io Git - dotfiles.git/blob - Makefile
git: replace fpp with wio conditional settings
[dotfiles.git] / Makefile
1 APATH := $(realpath .)
2
3 XDG_CONFIG_HOME ?= ~/.config
4 XDG_CACHE_HOME ?= ~/.cache
5 XDG_DATA_HOME ?= ~/.local/share
6
7 FILES := bin
8 DOTFILES := goobookrc profile Xresources
9 CONFIGFILES := mpv offlineimap ranger retroarch xbindkeys xkb
10
11 .PHONY: core_files
12 core_files: dircolors git ssh systemd vim zsh
13
14 .PHONY: install $(FILES) $(DOTFILES) $(CONFIGFILES)
15 install: $(FILES) $(DOTFILES) $(CONFIGFILES)
16
17 $(XDG_DATA_HOME) $(XDG_CONFIG_HOME):
18 mkdir -p $@
19
20 awesome: $(XDG_CONFIG_HOME) xinit
21 ln -sfT $(APATH)/awesome $(XDG_CONFIG_HOME)/awesome
22 ln -sfT $(APATH)/xinitrc ~/.xinitrc
23 ln -sfT $(APATH)/zlogin ~/.zlogin
24 .PHONY: awesome
25
26 dircolors: $(XDG_CONFIG_HOME)
27 ln -sfT $(APATH)/dircolors $(XDG_CONFIG_HOME)/dircolors
28 .PHONY: dircolors
29
30 gdb:
31 mkdir $(XDG_DATA_HOME)/gdb
32 ln -sfT $(APATH)/gdb $(XDG_CONFIG_HOME)/gdb
33 ln -sfT $(APATH)/gdbinit ~/.gdbinit
34 .PHONY: gdb
35
36 git: $(XDG_CONFIG_HOME)
37 ln -sfT $(APATH)/git $(XDG_CONFIG_HOME)/git
38 ln -sfT $(APATH)/tig $(XDG_CONFIG_HOME)/tig
39 .PHONY: git
40
41 gnupg: systemd
42 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
43 chmod 700 $(XDG_CONFIG_HOME)/$@
44 systemctl --user enable gpg-agent.socket gpg-agent-extra.socket gpg-agent-browser.socket dirmngr.socket
45 systemctl --user start gpg-agent.socket gpg-agent-extra.socket gpg-agent-browser.socket dirmngr.socket
46 sudo ln -sfT $(APATH)/bin/pinentry /usr/local/bin/pinentry
47 .PHONY: gnupg
48
49 khal: $(XDG_CONFIG_HOME)
50 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
51 .PHONY: khal
52
53 khard: $(XDG_CONFIG_HOME)
54 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
55 .PHONY: khard
56
57 kitty:
58 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
59 .PHONY: kitty
60
61 mpd: systemd
62 ln -sfT $(APATH)/mpd $(XDG_CONFIG_HOME)/mpd
63 mkdir -p $(XDG_DATA_HOME)/mpd/playlists
64 systemctl --user enable mpd
65 systemctl --user start mpd
66 .PHONY: mpd
67
68 mbsync:
69 ln -sfT $(APATH)/mbsync $(XDG_CONFIG_HOME)/mbsync
70 .PHONY: mbsync
71
72 msmtp:
73 ln -sfT $(APATH)/msmtprc ~/.msmtprc
74 ln -sfT $(APATH)/msmtp ~/.msmtp
75 .PHONY: msmtp
76
77 mutt: $(XDG_CONFIG_HOME)
78 ln -sfT $(APATH)/mutt $(XDG_CONFIG_HOME)/mutt
79 .PHONY: mutt
80
81 mail: mbsync msmtp mutt
82 .PHONY: mail
83
84 ncmpcpp: $(XDG_CONFIG_HOME)
85 ln -sfT $(APATH)/ncmpcpp $(XDG_CONFIG_HOME)/ncmpcpp
86 mkdir -p $(XDG_DATA_HOME)/mpd/lyrics
87 .PHONY: ncmpcpp
88
89 pacman: $(XDG_CONFIG_HOME)
90 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
91 .PHONY: pacman
92
93 picom: $(XDG_CONFIG_HOME)
94 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
95 .PHONY: picom
96
97 qute_scripts := $(wildcard qutebrowser/userscripts/*)
98 $(qute_scripts):
99 mkdir -p $(XDG_DATA_HOME)/qutebrowser/userscripts
100 ln -sfT $(APATH)/$@ $(XDG_DATA_HOME)/$@
101 .PHONY: $(qute_scripts)
102
103 qutebrowser: $(XDG_CONFIG_HOME) $(qute_scripts)
104 ln -sfT $(APATH)/qutebrowser $(XDG_CONFIG_HOME)/qutebrowser
105 mkdir -p ~/downloads
106 .PHONY: qutebrowser
107
108 rofi: $(XDG_CONFIG_HOME)
109 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
110 .PHONY: rofi
111
112 ssh:
113 ln -sfT $(APATH)/ssh/config ~/.ssh/config
114 .PHONY: ssh
115
116 systemd: $(XDG_CONFIG_HOME)
117 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
118 .PHONY: systemd
119
120 task: $(XDG_CONFIG_HOME)
121 ln -sfT $(APATH)/taskrc $(XDG_CONFIG_HOME)/taskrc
122 .PHONY: task
123
124 tmux: $(XDG_CONFIG_HOME)
125 ln -sfT $(APATH)/tmux $(XDG_CONFIG_HOME)/tmux
126 .PHONY: tmux
127
128 urxvt: $(XDG_CONFIG_HOME)
129 ln -sfT $(APATH)/urxvt $(XDG_CONFIG_HOME)/urxvt
130 .PHONY: urxvt
131
132 vdirsyncer: $(XDG_CACHE_HOME)
133 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
134 mkdir -p $(XDG_DATA_HOME)/vdirsyncer/{contacts,calendars}
135 .PHONY: vdirsyncer
136
137 vim: $(XDG_CONFIG_HOME)
138 ln -sfT $(APATH)/vim $(XDG_CONFIG_HOME)/vim
139 mkdir -p $(XDG_DATA_HOME)/vim
140 -git clone https://github.com/gmarik/vundle $(XDG_DATA_HOME)/vim/vundle
141 .PHONY: vim
142
143 yay: $(XDG_CONFIG_HOME)
144 ln -sfT $(APATH)/yay $(XDG_CONFIG_HOME)/yay
145 mkdir -p $(XDG_CACHE_HOME)/yay
146
147 xinit: $(XDG_CONFIG_HOME)
148 ln -sfT $(APATH)/$@rc ~/.$@rc
149 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
150 .PHONY: xinit
151
152 wakeonlan: $(XDG_CONFIG_HOME)
153 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@
154 .PHONY: wakeonlan
155
156 weechat: $(XDG_CONFIG_HOME) $(XDG_CACHE_HOME)
157 ln -sfT $(APATH)/weechat $(XDG_CONFIG_HOME)/weechat
158 mkdir -p $(XDG_CACHE_HOME)/weechat
159 .PHONY: weechat
160
161
162 zsh: $(XDG_CONFIG_HOME)
163 ln -sfT $(APATH)/zshrc ~/.zshrc
164 ln -sfT $(APATH)/zshenv ~/.zshenv
165 ln -sfT $(APATH)/zsh $(XDG_CONFIG_HOME)/zsh
166 ln -sfT $(APATH)/aliases $(XDG_CONFIG_HOME)/aliases
167 mkdir -p $(XDG_CACHE_HOME)/zsh
168 mkdir -p $(XDG_DATA_HOME)/zsh
169 git submodule update --init zsh/lib/zsh-syntax-highlighting
170 .PHONY: zsh
171
172 $(FILES):
173 @if [[ -e ~/$@ && ! -L ~/$@ ]]; then \
174 if [[ -d $@ ]]; then \
175 cp -r ~/$@/* $@; \
176 else \
177 cp -r ~/$@ $@; \
178 fi; \
179 rm -r ~/$@; \
180 fi;
181 ln -sfT $(APATH)/$@ ~/$@
182
183 $(DOTFILES):
184 @if [[ -e ~/.$@ && ! -L ~/.$@ ]]; then \
185 if [[ -d .$@ ]]; then \
186 cp -r ~/.$@/* $@; \
187 else \
188 cp -r ~/.$@ $@; \
189 fi; \
190 rm -r ~/.$@; \
191 fi;
192 ln -sfT $(APATH)/$@ ~/.$@
193
194 $(CONFIGFILES): $(XDG_CONFIG_HOME)
195 @if [[ -e $(XDG_CONFIG_HOME)/$@ && ! -L $(XDG_CONFIG_HOME)/$@ ]]; then \
196 if [[ -d .config/$@ ]]; then \
197 cp -r $(XDG_CONFIG_HOME)/$@/* $@; \
198 else \
199 cp -r $(XDG_CONFIG_HOME)/$@ $@; \
200 fi; \
201 rm -r $(XDG_CONFIG_HOME)/$@; \
202 fi;
203 ln -sfT $(APATH)/$@ $(XDG_CONFIG_HOME)/$@