void- enter the void 🪐 |
git clone git://git.acid.vegas/archlinux.git |
Log | Files | Refs | Archive |
setup (11993B)
1 #!/bin/bash 2 # void setup script - developed by acidvegas (https://git.acid.vegas/void) 3 4 # note: After importing keys: printf "FINGERPRINTHERE:6:" | gpg --import-ownertrust 5 6 set -xev 7 8 # Configuration 9 ARCH=x86_64 # x86_64 or x86_64-musl 10 CPU=intel # amd or intel (blank for none) 11 DISPLAY_SERVER=xorg # xorg or blank for none 12 GFX_DRIVER=intel # amd, intel, or nvidia (blank for none) 13 PI=0 # 0 for desktop, 1 for Raspberry Pi 14 REMOTE=dropbear # dropbear or ssh (blank for none) 15 USERNAME=acidvegas 16 WIFI_DEV=wlan0 17 18 19 GIT_URL="https://raw.githubusercontent.com/acidvegas/void/master" 20 21 setup_root() { 22 setup_packages 23 24 useradd -m -s /bin/bash $USERNAME && gpasswd -a $USERNAME wheel && passwd $USERNAME 25 gpasswd -a $USERNAME _incus && gpasswd -a $USERNAME _incus-admin # Typically incus & incus-admin but void uses the underscore prefix 26 27 for item in 6x11 7x12 7x14; do 28 wget -O /usr/share/kbd/consolefonts/ohsnap${item}r.psfu $GIT_URL/font/ohsnap${item}r.psfu 29 done 30 #printf "\nnohook resolv.conf\n" >> /etc/dhcpcd.conf 31 echo "CGROUP_MODE=\"unified\"" >> /etc/rc.conf 32 echo "proc /proc proc defaults,hidepid=2 0 0" >> /etc/fstab && mount -o remount /proc 33 printf "set boldtext\nset minibar\nset nohelp\nset nowrap\nset quickblank\nset tabsize 4\nunbind ^J main\nset selectedcolor black,red\ninclude \"/usr/share/nano/*.nanorc\"\n" > /etc/nanorc 34 printf "\nexport HISTFILE=/dev/null\nexport LESSHISTFILE=/dev/null\nexport PYTHONHISTFILE=/dev/null\n" >> /etc/profile 35 printf "#\!/bin/sh\nclear && (echo && printf \" E N T E R T H E V O I D\n" && echo) | nms -af red\n" > /etc/profile.d/motd.sh 36 printf "\nFONT=\"ohsnap6x11r\"\n" >> /etc/rc.conf 37 printf "Defaults lecture = always\nDefaults lecture_file = /etc/sudoers.d/sudoers.lecture\nroot ALL=(ALL) ALL\n%%wheel ALL=(ALL) ALL\n" > /etc/sudoers 38 printf "\n\033[1m \033[32m\"Bee\" careful \033[34m__\n \033[32mwith sudo! \033[34m// \ \n \\\\\\_/ \033[33m//\n \033[35m''-.._.-''-.._.. \033[33m-(||)(')\n '''\033[0m\n" > /etc/sudoers.d/sudoers.lecture 39 printf "\nhsts=0\n" >> /etc/wgetrc 40 41 # For Drevo Calibur V2 FN key fix 42 #echo 0 | sudo pkexec tee /sys/module/hid_apple/parameters/fnmode 43 44 if [ $REMOTE = "dropbear" ]; then 45 LOCAL_IP=$(ip addr show $WIFI_DEV | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1) 46 RND_PORT=$(shuf -i 10000-65535 -n 1) 47 xbps-install -y dropbear 48 printf '#!/bin/sh\nexec 2>&1\n[ -r conf ] && . ./conf\nexec dropbear -p $LOCAL_IP:$RND_PORT -w -s -R -F' > /etc/sv/dropbear/run 49 fi 50 51 # Need to optionally enable dhcp and wpa_supplicant incase we are using ethernet 52 for item in dhcpcd incus incus-user socklog-unix nanoklogd wpa_supplicant; do 53 ln -sfv /etc/sv/$item /var/service # Use /etc/runit/runsvdir/default/ instead of /var/service if in a chroot environemnt 54 done 55 } 56 57 58 setup_nonfree() { 59 xbps-install -Suy void-repo-nonfree 60 61 if [ $CPU = "intel" ]; then 62 xbps-install -y intel-ucode linux-firmware-intel 63 elif [ $CPU = "amd" ]; then 64 xbps-install -y linux-firmware-amd 65 fi 66 67 if [ $DISPLAY_SERVER = "xorg" ]; then 68 if [ $GFX_DRIVER = "intel" ]; then 69 xbps-install -y mesa-dri vulkan-loader mesa-vulkan-intel intel-video-accel 70 elif [ $GFX_DRIVER = "amd" ]; then 71 xbps-install -y mesa-dri vulkan-loader mesa-vulkan-radeon radeon-video-accel # Un-tested 72 elif [ $GFX_DRIVER = "nvidia" ]; then 73 xbps-install -y nvidia nvidia-libs 74 fi 75 fi 76 77 xbps-reconfigure -f linux 78 } 79 80 81 setup_packages() { 82 setup_nonfree 83 84 if [ $DISPLAY_SERVER = "xorg" ]; then 85 #xbps-install -y mesa-dri # Raspberry Pi 86 xbps-install -y xorg libX11 libX11-devel libXft libXft-devel libXinerama libXinerama-devel libXrandr libXrandr-devel arandr xrandr brightnessctl 87 xbps-install -y alacritty dmenu dunst firefox pinentry-dmenu redshift scrot unclutter xclip 88 xbps-install -y ohsnap-font font-unifont-bdf freefont-ttf noto-fonts-ttf noto-fonts-ttf-extra noto-fonts-cjk noto-fonts-emoji # These fonts give you the most unicode support coverage (noto) 89 fi 90 91 # Development 92 if [ $ARCH = 'x86_64' ]; then 93 xbps-install -y gcc 94 fi 95 xbps-install -y cargo checkbashisms go make patch pkg-config python3 python3-pip 96 xbps-install -y ansible aws-cli python3-aiodns python3-aiofiles python3-aiohttp python3-boto3 python3-Flask terraform 97 xbps-install -y bluetuith 98 99 # Essentials 100 xbps-install -y curl dropbear git jq openssh progress rsync socklog-void tmux tor tree unzip whois zip 101 xbps-install -y tailscale wireguard wireguard-tools wireproxy 102 103 xbps-install -y python3-zulip zulip-desktop zulip-term 104 105 # Raspberry Pi specific 106 #xbps-install -y rng-tools && ln -sfv /etc/sv/rngd /var/service/ && sv up rngd 107 108 xbps-install -y fzf glow gotify-cli gnupg2-scdaemon lxc incus incus-client incus-tools lazygit oath-toolkit websocat 109 #xbps-install -y earlyoom && ln -sfv /etc/sv/earlyoom /var/service/ 110 111 # Alternatives 112 xbps-install -y bat btop delta duf exa procs xsv 113 114 # Fun 115 xbps-install -y asciiquarium chess-tui cmatrix no-more-secrets tuimoji tty-solitaire 116 117 # Audio 118 #xbps-install -y alsa-utils cmus ffmpeg id3v2 eyeD3 spotify-tui youtube-dl # Revamp audio setup at some point 119 120 # Hardware 121 xbps-install -y bluetuith gpsd 122 123 # Recon 124 xbps-install -y aircrack-ng bettercap bandwhich bpfmon ettercap ghidra kismet masscan mitmproxy strace tcpdump termshark wireshark wuzz 125 126 # Radio 127 #xbps-install -y airspy chirp CubicSDR gnuradio gqrx inspectrum librtlsdr rtl-sdr rx_tools SoapyRTLSDR SDRPlusPlus 128 } 129 130 131 setup_configs() { 132 mkdir -p $HOME/.config/alacritty && wget -O $HOME/.config/alacritty/alacritty.toml $GIT_URL/config/alacritty/alacritty.toml 133 mkdir -p $HOME/.config/cmus && wget -O $HOME/.config/cmus/autosave $GIT_URL/config/cmus/autosave 134 mkdir -p $HOME/.config/dunst && wget -O $HOME/.config/dunst/dunstrc $GIT_URL/config/dunst/dunstrc 135 mkdir -p $HOME/.config/git && wget -O $HOME/.config/git/config $GIT_URL/config/git/config 136 mkdir -p $HOME/.config/tmux && wget -O $HOME/.config/tmux/tmux.conf $GIT_URL/config/tmux/tmux.conf 137 mkdir -p $HOME/.config/X11 && wget -O $HOME/.config/X11/xinitrc $GIT_URL/config/X11/xinitrc 138 139 sed -i "s|/dev/sda2|$(df $HOME | awk 'NR==2 {print $1}')|" $HOME/.config/tmux/tmux.conf 140 141 mkdir -p $HOME/.local/share/bash 142 for item in bash_aliases bash_functions bash_fun bash_recon; do 143 wget -O $HOME/.local/share/bash/$item $GIT_URL/local/share/bash/$item 144 done 145 wget -O $HOME/.bashrc $GIT_URL/.bashrc 146 echo "history -c && clear && reset" > $HOME/.bash_logout 147 148 mkdir -p $HOME/.local/share/gnupg && wget -O $HOME/.local/share/gnupg/gpg.conf $GIT_URL/local/share/gnupg/gpg.conf 149 printf "pinentry-program /usr/bin/pinentry-curses\ndefault-cache-ttl 3600" > $HOME/.local/share/gnupg/gpg-agent.conf 150 chmod 700 $HOME/.local/share/gnupg && chmod 600 $HOME/.local/share/gnupg/* 151 152 mkdir -p $HOME/.local/bin/scripts 153 for SCRIPT in cmus-now gitremote irc-post-commit-hook mutag pmf shotz statusbar todo; do 154 wget -O $HOME/.local/bin/scripts/$SCRIPT $GIT_URL/scripts/$SCRIPT 155 done 156 wget -O $HOME/.local/bin/scripts/dbc https://raw.githubusercontent.com/acidvegas/dbc/main/dbc 157 wget -O $HOME/.local/bin/scripts/pass https://raw.githubusercontent.com/acidvegas/pass/main/pass 158 chmod +x $HOME/.local/bin/scripts/* 159 160 mkdir -p $HOME/.local/share/fonts && wget -O $HOME/.local/share/fonts/BlockZone.ttf $GIT_URL/font/BlockZone.ttf && fc-cache -f -v 161 162 mkdir -p $HOME/.config/pip && printf "[global]\nbreak-system-packages = true" > ~/.config/pip/pip.conf 163 } 164 165 166 setup_fun() { 167 BUILD=$HOME/dev/build 168 mkdir -p $BUILD 169 170 wget -O $HOME/.local/bin/scripts/irc2ansi.py https://raw.githubusercontent.com/internet-relay-chat/archive/master/art/irc2ansi.py 171 wget -O $HOME/.local/bin/scripts/bomber $GIT_URL/scripts/bomber && chmod +x $HOME/.local/bin/scripts/bomber 172 wget -O $HOME/.local/bin/scripts/pipes https://raw.githubusercontent.com/pipeseroni/pipes.sh/master/pipes.sh && chmod +x $HOME/.local/bin/scripts/pipes 173 174 git clone https://github.com/AngelJumbo/lavat.git $BUILD/lavat 175 sudo make -C $BUILD/lavat clean install 176 177 git clone https://github.com/lptstr/fire --recurse $BUILD/fire 178 sudo make -C $BUILD/fire clean install 179 180 git clone https://github.com/ricoriedel/wipe $BUILD/wipe 181 cargo build --release --manifest-path $BUILD/wipe/Cargo.toml # Need to install 182 183 git clone https://github.com/pythops/bouncinamation $BUILD/bouncinamation 184 cargo build --release --manifest-path $BUILD/bouncinamation/Cargo.toml # Need to install 185 186 go install github.com/maaslalani/confetty@latest # Animations 187 go install github.com/maxpaulus43/go-sweep@latest # Minesweeper 188 } 189 190 191 setup_builds() { 192 BUILD=$HOME/dev/build 193 mkdir -p $BUILD 194 195 git clone --depth 1 http://git.suckless.org/dwm $BUILD/dwm 196 wget -O $BUILD/dwm/config.h $GIT_URL/dwm/config.h 197 wget -O $BUILD/dwm/patch_nosquares.diff $GIT_URL/dwm/patch_nosquares.diff 198 wget -O $BUILD/dwm/patch_notitles.diff $GIT_URL/dwm/patch_notitles.diff 199 patch $BUILD/dwm/drw.c $BUILD/dwm/patch_nosquares.diff 200 patch $BUILD/dwm/dwm.c $BUILD/dwm/patch_notitles.diff 201 sudo make -C $BUILD/dwm clean install 202 } 203 204 205 setup_user_packages() { 206 VERSION=$(curl -s https://api.github.com/repos/boxdot/gurk-rs/releases/latest | jq -r .tag_name | cut -c2-) 207 wget -O $HOME/.local/bin/gurk https://github.com/boxdot/gurk-rs/releases/download/v${VERSION}/gurk-x86_64-unknown-linux-gnu.tar.gz 208 209 wget -O $HOME/.local/bin/cursor https://downloader.cursor.sh/linux/appImage/x64 210 chmod u+x $HOME/.local/bin/cursor 211 212 VERSION=$(curl -s https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest | jq -r .tag_name | cut -c2-) 213 wget -O $HOME/.local/bin/obsidian https://github.com/obsidianmd/obsidian-releases/releases/download/v${VERSION}/Obsidian-${VERSION}.AppImage 214 chmod u+x $HOME/.local/bin/obsidian 215 216 TEMP=$(mktemp -d) 217 wget -O $TEMP/zed.tar.gz https://zed.dev/api/releases/stable/latest/zed-linux-x86_64.tar.gz 218 tar -xzf $TEMP/zed.tar.gz -C $HOME/.local 219 ln -s $HOME/.local/zed.app/zed $HOME/.local/bin/zed 220 rm -rf $TEMP 221 222 mkdir -p $HOME/.config/pip 223 printf "[global]\nbreak-system-packages = true" > $HOME/.config/pip/pip.conf 224 pip install --user asyncwhois ecs elasticsearch meshtastic scalene 225 226 cargo install binsider csvlens git-dumper netscanner 227 228 go install -v github.com/nxtrace/NTrace-core@latest 229 go install -v github.com/projectdiscovery/asnmap/cmd/asnmap@latest 230 go install -v github.com/projectdiscovery/chaos-client/cmd/chaos@latest 231 go install -v github.com/projectdiscovery/cvemap/cmd/cvemap@latest 232 go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest 233 go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest 234 go install -v github.com/projectdiscovery/katana/cmd/katana@latest 235 go install -v github.com/projectdiscovery/mapcidr/cmd/mapcidr@latest 236 go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest 237 go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest 238 go install -v github.com/projectdiscovery/tlsx/cmd/tlsx@latest 239 240 git clone https://github.com/blechschmidt/massdns.git $HOME/dev/git/mirror/massdns 241 make -C $HOME/dev/git/mirror/massdns && sudo make -C $HOME/dev/git/mirror/massdns install 242 } 243 244 245 246 [ "$#" -ne 1 ] && echo "usage: $0 [root|config|build|fun]" && exit 1 247 248 case "$1" in 249 root) setup_root ;; 250 config) setup_configs ;; 251 build) setup_builds ;; 252 fun) setup_fun ;; 253 *) echo "usage: $0 [root|config|build|fun]\n"; exit 1 ;; 254 esac 255 256 257 258 xbps-install -Syu && vkpurge rm all && xbps-install -y openssh 259 >/etc/ssh/sshd_config 260 printf "Port XXX\nAddressFamily inet\nListenAddress 0.0.0.0\nPasswordAuthentication no\nPrintMotd yes\nPrintLastLog no\nBanner none" > /etc/ssh/sshd_config 261 ln -s /etc/sv/sshd /var/service 262 nano /etc/ssh/sshd_config 263 sv restart sshd 264 printf "\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKoWLkmkbkwgivwqbzXBsIa8EbTGAEibGkX6CC/tiKZe admin@supernets.org" >> /home/acidvegas/.ssh/authorized_keys 265 chown acidvegas:acidvegas /home/acidvegas/.ssh/authorized_keys 266 chmod 400 /home/acidvegas/.ssh/authorized_keys