scripts

Scripts for general automations
git clone git://git.laack.co/scripts.git
Log | Files | Refs

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