arch-install.sh (5844B)
1 #!/bin/bash 2 # This script was made for personal use. 3 # This can be updated for public use by updating 4 # my git clones from using ssh to my public 5 # repo urls (https) and removing the ssh key distribution 6 7 ssh-keygen -t ed25519 -C "andrew@laack.co" 8 ssh-copy-id -i ~/.ssh/id_ed25519.pub andrew@brgr 9 10 mkdir gitRepos 11 git clone ssh://brgr/home/shared/git/public-repos/scripts.git 12 mv scripts bin 13 sudo pacman -S xorg 14 15 # not a fan of tailscale, but too lazy to get personal 16 # vps for vpn set up right now... 17 18 sudo pacman -S tailscale 19 sudo pacman -S xorg-xinit 20 sudo pacman -S cron 21 sudo systemctl enable cronie.service 22 sudo systemctl start cronie.service 23 sudo pacman -S ocaml # for installing unison 24 sudo pacman -S arandr 25 sudo pacman -S ranger 26 27 #### RSS ### 28 29 sudo pacman -S newsboat 30 sudo pacman -S lynx 31 #sudo pacman -S w3m 32 # I am using: 33 # newsboat -> lynx -> nvim 34 # This allows me to open rss articles 35 # in neovim (see .config/newsboat/config). 36 37 sudo pacman -S torbrowser-launcher 38 sudo systemctl enable tor 39 sudo systemctl start tor 40 sudo systemctl start zip 41 sudo systemctl start unzip 42 43 git clone ssh://brgr/home/shared/git/public-repos/dotfiles.git 44 mv dotfiles .config 45 rm .xinitrc 46 ln .config/xinitrc .xinitrc 47 ln .config/inputrc .inputrc 48 49 sudo pacman -S ttf-fira-code 50 sudo pacman -S pavucontrol 51 sudo pacman -S pulseaudio 52 sudo pacman -S rsync 53 54 ### DANGER BELOW ### 55 56 # fuck google and all other cloud providers. 57 # don't fucking use rclone unless 58 # you encrypt your shit before sending 59 # it to the glowies. 60 61 # sudo pacman -S rclone 62 63 # this is however needed for my 64 # "network-test.sh" script :) 65 66 ### DANGER ABOVE ### 67 68 sudo pacman -S sshfs 69 sudo pacman -S flameshot 70 sudo pacman -S yt-dlp 71 sudo pacman -S libnotify 72 sudo pacman -S dunst 73 74 # DRAGON 75 76 cd 77 cd gitRepos 78 git clone ssh://brgr/home/shared/git/public-repos/dragon.git 79 cd dragon 80 make 81 sudo cp dragon /usr/local/bin 82 cd 83 84 85 ## UNISON 86 # NOTE: This must be installed on server + client 87 88 cd 89 cd gitRepos 90 git clone ssh://brgr/home/shared/git/public-repos/unison.git 91 cd unison 92 PREFIX=/usr/local/bin 93 make 94 sudo make install 95 sudo cp /usr/local/bin/unison /bin/unison 96 cd 97 source ~/.bashrc 98 mkdir syncing 99 unison syncing ssh://brgr//home/shared/fileSharing/syncing -auto -batch 100 101 # SFM 102 103 # cd 104 # cd gitRepos 105 # git clone ssh://brgr/home/shared/git/public-repos/sfm.git 106 # cd sfm 107 # sudo make install 108 # cd 109 110 111 ## DWM 112 113 cd gitRepos 114 git clone ssh://brgr/home/shared/git/public-repos/dwm.git 115 cd dwm 116 sudo make install 117 cd .. 118 119 ## I3WM 120 # sudo pacman -S i3 121 122 123 git clone ssh://brgr/home/shared/git/public-repos/st.git 124 cd st 125 sudo make install 126 cd .. 127 128 git clone ssh://brgr/home/shared/git/public-repos/dmenu.git 129 cd dmenu 130 sudo make install 131 sudo pacman -S dmenu 132 sudo pacman -S pass pass-otp 133 cd 134 135 cd gitRepos 136 git clone ssh://brgr/home/shared/git/private-repos/passwords.git 137 138 cd 139 git clone ssh://brgr/home/shared/git/private-repos/keys.git 140 141 # Newer versions have a regression 142 # that causes latency w/ dvtm... 143 # sudo pacman -S neovim 144 145 cd 146 wget https://github.com/neovim/neovim/releases/download/v0.11.0/nvim-linux-x86_64.appimage 147 chmod +x nvim-linux-x86_64.appimage 148 sudo mv nvim-linux-x86_64.appimage /usr/local/bin/nvim 149 150 sudo pacman -S qutebrowser 151 sudo pacman -S open-ssh 152 sudo pacman -S zoxide 153 sudo pacman -S mpv 154 sudo pacman -S fzf 155 sudo pacman -S ripgrep 156 sudo pacman -S xclip 157 sudo pacman -S zathura 158 sudo pacman -S tmux 159 sudo pacman -S zathura-pdf-mupdf 160 sudo pacman -S uv 161 sudo pacman -S wget 162 sudo pacman -S lsof 163 sudo pacman -S btop 164 sudo pacman -S pandoc 165 sudo pacman -S texlive 166 sudo pacman -S entr 167 168 # Yay 169 170 cd 171 sudo pacman -S --needed base-devel git 172 git clone https://aur.archlinux.org/yay.git 173 cd yay 174 makepkg -si 175 cd 176 rm -rf yay 177 178 # this is likely only needed on arm 179 # yay -S pandoc-bin 180 181 yay -S librewolf-bin 182 183 cd ~/gitRepos 184 git clone ssh://brgr/home/shared/git/public-repos/dvtm.git 185 git clone ssh://brgr/home/shared/git/public-repos/abduco.git 186 cd dvtm 187 sudo make install 188 cd abduco 189 cd ../abduco 190 sudo make install 191 cd 192 193 ## RSYNC (directory sync) 194 # This is used to ensure I have a synchronized directory (~/syncing) with my server 195 # and across my machines. 196 197 cd 198 mkdir logs 199 sudo mkdir /backups 200 sudo chown andrew /backups 201 mkdir /backups/brgr 202 ~/bin/backup.sh 203 cd 204 205 git config --global user.email "andrew@laack.co" 206 git config --global user.name "Andrew Laack" 207 208 rm .bashrc 209 ln .config/bashrc .bashrc 210 211 git clone ssh://brgr/home/shared/git/public-repos/nvim.git 212 mv nvim .config 213 214 rm -rf .local/share/nvim/site/pack/packer 215 git clone --depth 1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/start/packer.nvim 216 sudo ln compile.sh /usr/local/bin/compile 217 218 gpg --import keys/passwords/private-key.asc 219 220 echo "default-cache-ttl 288000" >> ~/.gnupg/gpg-agent.conf 221 echo "max-cache-ttl 288000" >> ~/.gnupg/gpg-agent.conf 222 223 # TAILSCALE CONFIG 224 225 sudo systemctl enable tailscaled 226 sudo systemctl start tailscaled 227 sudo tailscale up 228 229 # don't let other stuff fuck with resolution 230 # This could also stop tailscale from updating so 231 # be cautios if stuff on that side changes. 232 233 sudo chattr +i /etc/resolv.conf 234 235 # CRON JOBS FOR SYNCING + BACKUP 236 237 echo "*/5 * * * * andrew /home/andrew/bin/sync.sh" | sudo tee -a /etc/crontab 238 echo "0 8,16 * * * andrew /home/andrew/bin/backup.sh" | sudo tee -a /etc/crontab 239 240 # tabbed 241 242 #cd 243 #cd gitRepos 244 #git clone ssh://brgr/home/shared/git/public-repos/tabbed.git 245 #cd tabbed 246 #sudo make install 247 #cd 248 249 # mtm 250 251 # cd 252 # cd gitRepos 253 # git clone ssh://brgr/home/shared/git/public-repos/mtm.git 254 # cd mtm 255 # make HEADERS='-DNCURSESW_INCLUDE_H="<ncurses.h>"' 256 # sudo cp mtm /usr/local/bin 257 258 259 # SERVER 260 yay -S agate 261 cd 262 mkdir keys/gemini 263 agate --content srv/gemini/ \ 264 --addr [::]:1965 \ 265 --addr 0.0.0.0:1965 \ 266 --hostname blog.laack.co \ 267 --lang en-U 268 cp -r .certificates/* ~/keys/gemini 269 270 sudo pacman -S brightnessctl 271 272 # update man database -- this allows for the 273 # 'mans' alias to work as expected for fzf w/ man pages. 274 sudo mandb