-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
332 lines (285 loc) · 14.5 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
### Dotfiles to restore Debian GNU/Linux
# author Minoru Yamada. 2021.10.11
# update 2022.09.22
## =====================================================================
## Manual setting before executing make
## =====================================================================
## 1. Boot from USB to install Debian latest
# Create installation USB from netinst iso image. Use Rufs.exe on Windows
# Download firmware from https://bre.is/f2LBmD3t for using WiFi
# Unzip firmware.zip, then paste to firmware directory of install USB
## 2. Register username to sudoers
# Log in as root
# | gpasswd -a ${USER} sudo
# | exit
# Log in with ${USER}
# | logout
# | sudo visudo ## edit sudoers file to [%sudo ALL=(ALL:ALL) NOPASSWD:ALL]
# | logout
## 3. Set home sub directorys to English notation
# Log in with ${USER}
# | sudo apt install -y xdg-user-dirs-gtk ## Not needed on debian12
# | LANG=C xdg-user-dirs-gtk-update --force
# | sudo apt update
# | sudo apt install -y zsh git make nautilus
## 4. Install dropbox & setting
# Before installing, configure the Synapyic repository & Check existence of package
# | sudo apt install -y nautilus-dropbox
# | Launch dropbox from Menu then install and initial settings
## 5. Clone dotfiles from GitHub
# | mkdir -p ~/src/github.com/minorugh
# | cd ~/src/github.com/minorugh
# | git clone git@github.com:minorugh/dotfiles.git
# | cd dotfiles
# | make all
# | chsh -s /usr/bin/zsh
## =======================================================================
## Run make from here
## =======================================================================
PACKAGES := hugo nkf wget curl file unar unzip gcc golang npm keychain
PACKAGES += zsh-syntax-highlighting silversearcher-ag expect arc-theme
PACKAGES += pandoc rsync cmigemo e2ps evince net-tools ntp wmctrl hub
PACKAGES += ruby gnome-terminal xclip vim tmux freerdp2-x11
PACKAGES += autokey-gtk autokey-common lhasa fzf tree aspell aspell-en
PACKAGES += screen mosh compizconfig-settings-manager compiz-plugins
PACKAGES += libsecret-tools xscreensaver xscreensaver-gl-extra nodejs
PACKAGES += menulibre pwgen xfce4-screenshooter bluetooth blueman gdebi
PACKAGES += gimp darktable inkscape shotwell cups cups-bsd
BASE_PKGS := automake autoconf texinfo openssl patch build-essential
BASE_PKGS += libx11-dev libxpm-dev libjpeg-dev libpng-dev libgif-dev libtiff-dev
BASE_PKGS += libgtk2.0-dev libncurses-dev libgtk-3-dev libgnutls28-dev
BASE_PKGS += libtool xorg-dev libncurses5-dev python3-pip libdbus-1-dev
BASE_PKGS += libm17n-dev librsvg2-dev libotf-dev libxml2-dev libmagickwand-dev
BASE_PKGS += libc6-dev libtiff5-dev flatpak zlib1g-dev libnet-sftp-foreign-perl
BASE_PKGS += libice-dev libsm-dev libxext-dev libxmuu-dev libssl-dev zlib1g-dev
BASE_PKGS += libxrandr-dev libxt-dev libxtst-dev libxv-dev libglib2.0-0
BASE_PKGS += libxcb-shape0 libxcb-shm0 libxcb-xfixes0 libxcb-randr0 libxcb-image0
BASE_PKGS += libfontconfig1 libgl1-mesa-glx libxi6 libsm6 libxrender1 libpulse0
BASE_PKGS += libgccjit0
APT := sudo apt install -y
.DEFAULT_GOAL := help
.PHONY: all allinstall nextinstall
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
| sort \
| awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
all: allinstall nextinstall
allinstall: gnupg ssh install base init grub keyring tlp emacs-mozc mozc icons fontawesome gist
nextinstall: google-chrome filezilla sxiv lepton zoom pdrv
.ONESHELL:
SHELL = /bin/bash
gnupg: ## Deploy gnupg (Run after rclone)
$(APT) $@ git-crypt
mkdir -p ${HOME}/.gnupg
ln -vsf {${PWD},${HOME}}/.gnupg/gpg-agent.conf
ssh: ## Init ssh
mkdir -p ${HOME}/.ssh
for item in config known_hosts id_rsa github_id_rsa xsrv; do
ln -vsfn ${HOME}/Dropbox/backup/ssh/$$item ${HOME}/.ssh/$$item
done
chmod 600 ${HOME}/.ssh/id_rsa ${HOME}/.ssh/github_id_rsa
init: ## Initial deploy dotfiles
test -L ${HOME}/.emacs.d || rm -rf ${HOME}/.emacs.d
ln -vsfn ${PWD}/.emacs.d ${HOME}/.emacs.d
for item in zprofile zshrc vimrc profile bashrc tmux.conf Xmodmap Xresources autologin.sh; do
ln -vsf {${PWD},${HOME}}/.$$item
done
xmodmap ${HOME}/.Xmodmap
chmod 600 ${HOME}/.autologin.sh
ln -vsf {${PWD},${HOME}}/.config/autostart/autologin.desktop
ln -vsf {${PWD},${HOME}}/.config/autostart/slack.desktop
ln -vsf {${PWD},${HOME}}/.local/share/applications/org-protocol.desktop
ln -vsf {${PWD},${HOME}}/.local/share/applications/keepass.desktop
ln -vsf {${PWD},${HOME}}/.local/share/applications/lepton.desktop
ln -vsfn {${PWD},${HOME}}/.fonts
ln -vsfn {${PWD},${HOME}}/.vim
for item in gitconfig gist; do
ln -vsf ${HOME}/Dropbox/backup/.$$item ${HOME}/.$$item
done
ifeq ($(shell uname -n),P1)
grub:
sudo ln -vsf ${PWD}/etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf
sudo ln -vsf ${PWD}/etc/systemd/logind.conf /etc/systemd/logind.conf
sudo ln -vsf ${PWD}/etc/default/grub /etc/default/grub
sudo update-grub2
endif
install: ## Install debian packages
$(APT) $(PACKAGES)
base: ## Install debian base packages
$(APT) $(BASE_PKGS)
emacs-mozc: ## Install emacs-mozc fcitx-mozc
$(APT) $@ fcitx-mozc
# Set fcitx: Input im-config in terminal and ret → ret → check to fcitx
ifeq ($(shell uname -n),e590)
mozc: ## for mainmachine (Thinkpad E590)
test -L ${HOME}/.mozc || rm -rf ${HOME}/.mozc
ln -vsfn ${HOME}/Dropbox/backup/mozc/.mozc ${HOME}/.mozc
else
mozc: ## for submachine (Thinkpad X250)
cp -rf ~/Dropbox/backup/mozc/.mozc ~/
endif
tlp: ## Setting for power saving and preventing battery deterioration
$(APT) $@ tlp-rdw powertop
sudo ln -vsf ${PWD}/etc/default/tlp /etc/default/tlp
sudo tlp start
keyring: ## Init gnome keyrings
$(APT) seahorse
mkdir -p ${HOME}/.local/share
test -L ${HOME}/.local/share/keyrings || rm -rf ${HOME}/.local/share/keyrings
ln -vsfn ${HOME}/Dropbox/backup/keyrings ${HOME}/.local/share/keyrings
icons: ## Copy icons to picture folder
ln -vsf ${HOME}/Dropbox/Documents/icons/* ${HOME}/Pictures
fontawesome: ## Init Font Awesome
test -L ${HOME}/.local/share/fonts || rm -rf ${HOME}/.local/share/fonts
ln -vsfn {${PWD},${HOME}}/.local/share/fonts
gist: ## Install gist | $ gist --login from terminal at first
sudo gem install gist
pdrv: ## Install Printer driver for Brother HL-L2375DW
cd ${HOME}/Downloads && \
wget https://download.brother.com/welcome/dlf103535/hll2375dwpdrv-4.0.0-1.i386.deb
sudo dpkg -i --force-all hll2375dwpdrv-4.0.0-1.i386.deb
rm -f ./hll2375dwpdrv-4.0.0-1.i386.deb
## install for applications
google-chrome: ## Install Google-chrome-stable
cd ${HOME}/Downloads && \
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
$(APT) ./google-chrome-stable_current_amd64.deb
rm -f ./google-chrome-stable_current_amd64.deb
filezilla: ## Install filezilla and set "Filezilla -s" to start selected my:servers
$(APT) $@
test -L ${HOME}/.config/filezilla || rm -rf ${HOME}/.config/filezilla
ln -vsfn ${HOME}/Dropbox/backup/filezilla ${HOME}/.config
sylpheed: ## Init sylpheed
$(APT) $@ bogofilter kakasi
test -L ${HOME}/.sylpheed-2.0 || rm -rf ${HOME}/.sylpheed-2.0
ln -vsfn ${HOME}/Dropbox/sylpheed/.sylpheed-2.0 ${HOME}/.sylpheed-2.0
## Gmail security requires you to use the app password
thunderbird: ## Install Thunderbird and add external_editor_revived.json
$(APT) $@
sudo ln -vsfn ${PWD}/bin/external-editor-revived /usr/local/bin
sudo chmod +x /usr/local/bin/external-editor-revived
mkdir -p ${HOME}/.mozilla/native-messaging-hosts
external-editor-revived | tee ${HOME}/.mozilla/native-messaging-hosts/external_editor_revived.json
# apply the add-on external-editor-revived at first
# see https://github.com/Frederick888/external-editor-revived/wiki
keepassxc: ## Install keeypassXC and auto start with master passwd.
$(APT) $@ libsecret-tools
sudo ln -vsfn ${PWD}/bin/keepass.sh /usr/local/bin
sudo chmod +x /usr/local/bin/keepass.sh
ln -vsfn {${PWD},${HOME}}/.local/share/applications/keepass-auto.desktop
# select-tool setup at first
# | sudo secret-tool store --label "KeePassXC master password" type kbd
# asked for a password so enter
# popup panel for passward input so input '<user passwd>' && use shell
# use | $ secret-tool lookup type kdb | keepassxc --pw-stdin /path/to/keepassxc.kdb
devilspie: ## Init devilspie for minimize_startup applications
mkdir -p ${HOME}/.devilspie
$(APT) $@
sudo ln -vsfn ${PWD}/devils/emacs.ds ${HOME}/.devilspie
sudo ln -vsfn ${PWD}/devils/sylpheed.ds ${HOME}/.devilspie
sudo ln -vsfn ${PWD}/devils/devils_startup.sh /usr/local/bin
sudo chmod +x /usr/local/bin/devils_startup.sh
# then session & launch>> Add minimized startup for command:devils_startup.sh
gitk: ## Init gitk for git-gui
$(APT) $@
sudo ln -vsfn {${PWD},${HOME}}/.config/git/gitk
sxiv: ## Init sxiv
$(APT) $@
mkdir -p ${HOME}/.config/sxiv/exec
ln -vsfn {${PWD},${HOME}}/.config/sxiv/exec/image-info
chmod +x ${HOME}/.config/sxiv/exec/image-info
lepton: ## Init lepton
mkdir -p ${HOME}/Appimage
cd ${HOME}/Appimage && \
wget https://github.com/hackjutsu/Lepton/releases/download/v1.10.0/Lepton-1.10.0.AppImage
chmod a+x Lepton-1.10.0.AppImage
ln -vsfn {${PWD},${HOME}}/.local/share/applications/lepton.desktop
zoom: ## Install zoom
cd ${HOME}/Downloads && \
wget https://zoom.us/client/latest/zoom_amd64.deb
sudo gdebi zoom_amd64.deb
rm -f ./zoom_amd64.deb
google-earth: ## Install google-earth
cd ${HOME}/Downloads && \
wget https://dl.google.com/dl/earth/client/current/google-earth-pro-stable_current_amd64.deb
$(APT) ./google-earth-pro-stable_current_amd64.deb
rm -f ./google-earth-pro-stable_current_amd64.deb
slack: ## Install slack desktop
cd ${HOME}/Downloads && \
wget https://slack.com/downloads/instructions/linux?ddl=1&build=deb
sudo gdebi slack-desktop-4.39.95-amd64.deb # Filename must be confirmed each time
rm -f slack-desktop-4.39.95-amd64.deb
spotify: ## Install sptify client
curl -sS https://download.spotify.com/debian/pubkey_6224F9941A8AA6D1.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg
echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list
sudo apt update
sudo apt install spotify-client
flatpak: ## Install Pinta from flatpak
$(APT) $@
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.github.PintaProject.Pinta
## uninstall for package 'flatpak uninstall --delete-data flathub com.spotify.Client'
########################################################
## From here, Step by step while interacting with SHELL
########################################################
texlive: ## Install texlive full
cd ${HOME}/Downloads && \
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar xvf install-tl-unx.tar.gz && \
rm -f install-tl-unx.tar.gz && \
cd install-tl* && \
sudo ./install-tl -no-gui -repository http://mirror.ctan.org/systems/texlive/tlnet/
## Asked for Actions, so enter `I` to start the installation
sudo /usr/local/texlive/2024/bin/x86_64-linux/tlmgr path add
sudo tlmgr update --self --all
latex: ## Symbolic link for dvpd.sh && mysty
sudo ln -vsfn ${PWD}/tex/dvpd.sh /usr/local/bin
sudo chmod +x /usr/local/bin/dvpd.sh
sudo ln -vsfn ${PWD}/tex/platex/my-sty /usr/local/texlive/2024/texmf-dist/tex/platex
sudo mktexlsr
perlbrew: ## Install perlbrew
curl -L http://install.perlbrew.pl | bash
perlbrew install 5.30.3
perlbrew switch 5.30.3
perlbrew install-cpanm && \
cpanm Net::FTPSSL && \
cpanm Net::SFTP::Foreign
emacs-devel: ## Install development version of emacs
sudo apt-get build-dep emacs-gtk
git clone -b emacs-29 git@github.com:emacs-mirror/emacs.git ${HOME}/src/emacs
cd ${HOME}/src/emacs && ./autogen.sh && ./configure --with-native-compilation && make && sudo make install && make clean
rm -rf ${HOME}/.emacs.d/elpa
github: ## Clone github repository
mkdir -p ${HOME}/src/github.com/minorugh
cd ${HOME}/src/github.com/minorugh && \
git clone git@github.com:minorugh/GH.git && \
git clone git@github.com:minorugh/upsftp.git && \
git clone git@github.com:minorugh/iceberg-theme.git \
git clone git@github.com:minorugh/emacs.d.git && \
git clone git@github.com:minorugh/emacs-easy-hugo.git \
git clone git@github.com:minorugh/minorugh.github.io.git
# GH.git saves `.git' folder only and removes other data. These restored from Dropbox.
## =====================================================================
## Custmize settings after Debian install
## =====================================================================
# 1. Replace key Caps with Ctrl>> `sudo nano /etc/default/keyboard' && edit to XKBOPTIONS="ctrl:nocaps" then reboot
# 2. Window Manager(in setting manager)>> style-> Arc-Dark, edit keyboard-> switch windows (Super+Alt), switch applications (Ctrl+Super), hide window (Alt+f9 to End key)
# 3. Exterior setting>> select style:Arc-Dark, font size:14
# 4. Print setting >> edit command: `sudo system-config-printer'
# 5. Keyboad setting>> emacs:s-e, chrome:s-x, gnome-terminal:C-z, xfce4-screenshooter -r:Alt+Shift, xfce4-screenshooter -w:Alt+Ctrl
# 6. Screen-saver>> select Atlantis with Only One mode
# 7. Session & launch>> Add minimized startup for command:devils_startup.sh
# 8. Session & launch>> Uncheck "Save Session Self-Recyclically on Logout" on general Tags.
# 9. Action button on panel>> Uncheck "Save session for next login" on Logout selection panel.
## ====================================================================
## Debian インストール後に設定をカスタマイズする
## ====================================================================
# 1. Capsキーを Ctrl に置き換えます>> `sudo nano /etc/default/keyboard' && XKBOPTIONS="ctrl:nocaps" に編集して再起動します
# 2. ウィンドウマネージャー(設定マネージャー内)>> スタイル-> Arc-Dark、キーボード編集-> ウィンドウの切り替え (Super+Alt)、アプリケーションの切り替え (Ctrl+Super)、ウィンドウの非表示 (Alt+f9 から End キー)
# 3. 外部設定 >> スタイル:Arc-Dark、フォントサイズ:14 を選択
# 4. 印刷設定 >> コマンド編集: `sudo system-config-printer'
# 5. キーボード設定>> emacs:s-e, chrome:s-x, gnome-terminal:C-z, xfce4-screenshooter -r:Alt+Shift, xfce4-screenshooter -w:Alt+Ctrl
# 6. スクリーンセーバー >> Atlantis with Only One モードを選択します
# 7. セッションと起動>> コマンドの最小化スタートアップを追加:devils_startup.sh
# 8. セッションと起動>> 一般タグの「ログアウト時にセッションを自己循環的に保存」のチェックを外します。
# 9. パネルのアクションボタン>> ログアウト選択パネルの「次回のログインのためにセッションを保存する」のチェックを外します。