-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
268 lines (220 loc) · 9.05 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
SHELL := /bin/bash
FEDORA_VER ?= $(shell rpm -E %fedora)
FEDORA_VER ?= 40
all: setup headless desktop
source ~/.bashrc ;
headless: utils shell power libs langs devenv
source ~/.bashrc ;
sudo dnf install -y NetworkManager NetworkManager-bluetooth NetworkManager-wifi ;
sudo dnf group install -y "Common NetworkManager Submodules" "Core" "Dial-up Networking Support" "Hardware Support" "Standard" ;
power:
sudo dnf install -y tlp tlp-rdw ;
-sudo dnf remove -y power-profiles-daemon ;
-sudo dnf autoremove -y ;
-sudo systemctl enable tlp.service ;
-sudo systemctl mask systemd-rfkill.service systemd-rfkill.socket ;
-sudo tlp start;
setup: clean
cp -fu ./lua/lib/color.lua ./wezterm/ ;
sudo dnf clean -y all ;
sudo dnf upgrade -y ;
clean:
rm -f ./wezterm/color.lua ;
rm -rf ./docs/out/ ;
sudo dnf autoremove -y ;
docs: setup
mkdir -p ./docs/out;
~/.mermaidjs/node_modules/.bin/mmdc --theme neutral --input ./docs/src/map.mmd --output ./docs/out/map.svg ;
cd ./palettes && lua5.1 gen-svg.lua ;
utils: bash
sudo dnf install -y git wget curl make tar p7zip gzip mercurial xz;
libs: buildtools
sudo dnf install -y openssl openssl-devel openssl-libs ;
buildtools: c go
sudo dnf install -y rustup composer ;
-rustup-init -y ;
-rustup toolchain install stable ;
shell: bash fish
mkdir -p ~/.shell;
cp -fu ./shell/.profile ~/ ;
cp -fu ./shell/alias/.sh_profile_ ~/.shell ;
source ~/.profile ;
bash:
sudo dnf install -y bash ;
mkdir -p ~/.shell/ ;
cp -fu ./shell/.bashrc ~/ ;
cp -fu ./shell/alias/.bash_profile_bash ~/.shell ;
source ~/.bashrc ;
fish:
sudo dnf install -y fish ;
mkdir -p ~/.config/fish/conf.d ;
cp -rfu ./shell/fish/* ~/.config/fish/ ;
langs: c lua fnl go java js ocaml odin pascal python scala
c:
sudo dnf install -y gcc gdb make;
sudo dnf install -y gcc-c++ gcc-fortran clang nasm;
sudo dnf install -y valgrind;
fnl: lua
sudo dnf install -y fennel compat-lua compat-lua-devel readline readline-devel compat-readline6 compat-readline6-devel lua-readline ;
mkdir -p ~/.fennel/ ;
touch ~/.fennel/.fennel-history ;
rm -f ~/.inputrc ;
cp -fu ./fennel/.inputrc ~/ ;
rm -f ~/.fennelrc ;
cp -fu ./fennel/.fennelrc ~/ ;
lua:
sudo dnf install -y compat-lua compat-lua-devel rlwrap luajit lua lua-devel ;
sudo dnt install -y luarocks love liblove ;
go: shell
sudo dnf install -y golang;
mkdir -p ~/.go;
cp -fu ./shell/alias/.bash_profile_go ~/.shell/ ;
cp -fu ./shell/alias/.sh_profile_go ~/.shell/ ;
cp -fu ./shell/alias/config_go.fish ~/.config/fish/conf.d/ ;
java:
sudo rpm --import https://yum.corretto.aws/corretto.key ;
sudo curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo ;
sudo dnf install -y java-21-amazon-corretto-devel java-17-amazon-corretto-devel;
sudo dnf install -y maven ;
js:
sudo dnf install -y nodejs nodejs-npm ;
ocaml: shell
cp -fu ./shell/alias/.bash_profile_ocaml ~/.shell/ ;
cp -fu ./shell/alias/config_ocaml.fish ~/.config/fish/conf.d/ ;
sudo dnf install -y opam ocaml ocaml-dune ;
-opam init -y --reinit -ni ;
-eval $(opam env) ;
-opam switch create 4.12.0 --yes --confirm-level=unsafe-yes;
-eval $(opam env) ;
odin: c shell
cp -fu ./shell/alias/.bash_profile_odin ~/.shell/ ;
cp -fu ./shell/alias/.sh_profile_odin ~/.shell/ ;
cp -fu ./shell/alias/config_odin.fish ~/.config/fish/conf.d/ ;
rm -rf ~/.odin ;
mkdir -p ~/.odin/ ;
git clone --depth 1 https://github.com/odin-lang/Odin ~/.odin ;
sudo dnf copr enable -y @fedora-llvm-team/llvm18 ;
sudo dnf install -y llvm llvm-devel clang ;
sudo dnf upgrade -y llvm llvm-devel clang ;
cd ~/.odin/ && make ;
cd ~/.odin/ && make release ;
pascal:
sudo dnf install -y fpc fpc-doc ;
# sudo dnf install -y lazarus-lcl ;
python: c
sudo dnf install -y python3 python3-pip python3-userpath ;
-python3 -m userpath append ~/.local/bin ;
sudo dnf install -y pipx ;
sudo dnf install -y python3-numpy python3-numpy-doc python3-pandas ;
# sudo dnf install -y python3-scikit-image python3-scikit-learn python3-scikit-misc ;
# sudo dnf install -y python3-notebook python3-pillow ;
scala: java shell
rm -rf ~/.scala/*
mkdir -p ~/.scala/cs/
cp -fu ./shell/alias/.sh_profile_scala ~/.shell/
cd ~/.scala/cs/ && curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d >~/.scala/cs/cs && chmod +x ~/.scala/cs/cs && ~/.scala/cs/cs setup --yes
/home/sebhajek/.local/share/coursier/bin/cs install giter8
/home/sebhajek/.local/share/coursier/bin/cs update g8
devenv: nvim lazygit ranger tools
sudo dnf install -y htop fzf tealdeer cloc entr hyperfine jq ;
tools: mermaidjs latex graphviz
nvim: lua c
sudo dnf install -y neovim ;
mkdir -p ~/.config/nvim ;
mkdir -p ~/.vim/colors ;
rm -rf ~/.config/nvim/* ;
cp -ru ./nvim/* ~/.config/nvim/ ;
lazygit: go
sudo dnf copr enable -y atim/lazygit ;
sudo dnf install -y lazygit ;
mkdir -p ~/.config/lazygit ;
mkdir -p ~/.config/jesseduffield/lazygit ;
rm -rf ~/.config/lazygit/* ;
rm -rf ~/.config/jesseduffield/lazygit/* ;
cp -ru ./lazygit/* ~/.config/lazygit/ ;
cp -ru ./lazygit/* ~/.config/jesseduffield/lazygit/ ;
ranger: python
sudo dnf install -y ranger ;
mermaidjs: js shell
cp -fu ./shell/alias/.bash_profile_mermaid ~/.shell/ ;
cp -fu ./shell/alias/config_mermaid.fish ~/.config/fish/conf.d/ ;
cp -fu ./shell/alias/.sh_profile_mermaid ~/.shell/ ;
mkdir -p ~/.mermaidjs/ ;
rm -rf ~/.mermaidjs/* ;
cd ~/.mermaidjs/ && npm install @mermaid-js/mermaid-cli && npm update ;
latex:
mkdir -p ~/.tectonic ;
rm -rf ~/.tectonic/* ;
cd ~/.tectonic && curl --proto '=https' --tlsv1.2 -fsSL https://drop-sh.fullyjustified.net | sh ;
cp -fu ./shell/alias/.bash_profile_tex ~/.shell/ ;
cp -fu ./shell/alias/.sh_profile_tex ~/.shell/ ;
cp -fu ./shell/alias/config_tex.fish ~/.config/fish/conf.d/ ;
sudo dnf install -y pandoc-cli librsvg2 R-rsvg ;
graphviz: latex
sudo dnf install -y graphviz;
desktop: fonts codecs wezterm sway rofi greetd
sudo dnf install -y network-manager-applet ;
sudo dnf groupinstall -y "Input Methods" "Multimedia" "Printing Support" ;
fonts: python shell
mkdir -p ~/.fonts/
bash ./scripts/install/fonts.sh ;
sudo dnf install -y xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-fonts-ISO8859-1-100dpi xorg-x11-fonts-ISO8859-1-75dpi xorg-x11-fonts-ISO8859-14-100dpi xorg-x11-fonts-ISO8859-14-75dpi xorg-x11-fonts-ISO8859-15-100dpi xorg-x11-fonts-ISO8859-15-75dpi xorg-x11-fonts-ISO8859-2-100dpi xorg-x11-fonts-ISO8859-2-75dpi xorg-x11-fonts-ISO8859-9-100dpi xorg-x11-fonts-ISO8859-9-75dpi xorg-x11-fonts-Type1 xorg-x11-fonts-cyrillic xorg-x11-fonts-misc ;
sudo dnf groupinstall -y "Fonts" ;
fc-cache -fv && sudo fc-cache -f /usr/share/fonts/ ;
wezterm: setup fonts shell fish
sudo dnf copr enable -y wezfurlong/wezterm-nightly ;
sudo dnf install -y wezterm ;
mkdir -p ~/.config/wezterm ;
rm -rf ~/.config/wezterm/* ;
cp -ru ./wezterm/* ~/.config/wezterm/ ;
wm_colors: python
mkdir -p ./i3status ;
mkdir -p ./rofi ;
mkdir -p ./wm ;
python3 ./scripts/wm_colors.py ;
sway: wezterm wm_colors rofi i3blocks wallpapers
sudo dnf swap -y sway-config sway-config-upstream --allowerasing;
sudo dnf install -y pipewire-pulseaudio pipewire ;
-systemctl --user pipewire-pulse.service pipewire-pulse.socket ;
sudo dnf install -y sway swayidle swaylock swaybg i3status ;
sudo dnf install -y dunst grim slurp wl-clipboard kanshi ;
-sudo dnf remove -y foot waybar ;
sudo dnf autoremove -y ;
rm -rf ~/.config/sway/* ;
mkdir -p ~/.config/sway/config.d ;
-mkdir -p ~/.config/swaylock ;
cp -ur ./sway/* ~/.config/sway/ ;
cp -ur ./wm/* ~/.config/sway/config.d ;
-cp -ur ./wmlock/* ~/.config/swaylock ;
-sudo dnf remove -y waybar thunar foot;
greetd: sway
sudo dnf install -y greetd greetd-selinux tuigreet;
sudo cp -rfu ./greetd/* /etc/greetd/ ;
-sudo systemctl disable sddm.service ;
sudo systemctl enable greetd.service ;
-sudo useradd -r -s /sbin/nologin greeter ;
-sudo chmod -R go+r /etc/greetd/ ;
-sudo dnf remove -y sddm ;
wallpapers:
mkdir -p ~/.dotfiles/wallpapers/ ;
tar -xvzf ./wallpapers.tar.gz -C ~/.dotfiles/wallpapers/ ;
rofi: wm_colors
sudo dnf install -y rofi-wayland ;
mkdir -p ~/.config/rofi/ ;
cp -ru ./rofi/* ~/.config/rofi/ ;
i3blocks: wm_colors python
sudo dnf install -y i3blocks acpi ;
mkdir -p ~/.config/i3blocks/scripts ;
chmod +x ./i3blocks/scripts/* ;
cp -rfu ./i3blocks/* ~/.config/i3blocks/ ;
codecs:
-sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(FEDORA_VER).noarch.rpm ;
-sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(FEDORA_VER).noarch.rpm ;
-sudo dnf install -y rpmfusion-free-release-tainted rpmfusion-nonfree-release-tainted ;
-sudo dnf install -y gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel ;
-sudo dnf install -y gstreamer1-plugins-{bad-*,good-*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel ;
-sudo dnf install -y lame* --exclude=lame-devel ;
-sudo dnf install ffmpeg ffmpeg-devel --allowerasing ;
-sudo dnf group upgrade -y --with-optional --allowerasing Multimedia ;
firefox: codecs
sudo dnf install -y firefox ;