|
1 | | -# VoidLinuxSetupper |
2 | | -## Automate the process of setting up Void Linux |
| 1 | +VoidLinuxSetupper |
| 2 | +================= |
3 | 3 |
|
4 | | ---- |
| 4 | +Automate the process of setting up Void Linux. |
| 5 | + |
| 6 | +__NOTICE__: THIS SCRIPT IS DESIGNED FOR THE MINIMAL ISO `void-live-x86_64-XXXXXXXX.iso` BUT IT WILL WORK FOR ANY OTHER VERSION. |
| 7 | + |
| 8 | + |
| 9 | +Table of contents |
| 10 | +================= |
| 11 | + |
| 12 | +<!--ts--> |
| 13 | + * [VoidLinuxSetupper](#voidlinuxsetupper) |
| 14 | + * [Table of contents](#table-of-contents) |
| 15 | + * [Usage](#usage) |
| 16 | + * [Step 1](#step-1-install-voidlinux) |
| 17 | + * [Step 2](#step-2-install-required-packages) |
| 18 | + * [Step 3](#step-3-download-the-installation-script) |
| 19 | + * [Step 4](#step-4-ready-the-installation-script-and-run-it) |
| 20 | + * [What is it doing](#what-is-it-doing) |
| 21 | + * [Packages](#packages) |
| 22 | + * [Miscellaneous information](#miscellaneous-information) |
| 23 | + * [Firewall](#firewall) |
| 24 | +<!--te--> |
| 25 | + |
| 26 | + |
| 27 | +Usage |
| 28 | +===== |
| 29 | + |
| 30 | +#### STEP 1: Install VoidLinux |
| 31 | +Download the correct ISO file from `voidlinux.org`, the ISO file this script was intended to work for should look like this `void-live-x86_64-YYYYMMDD.iso`, but if you download one that comes with a DE that should also work. |
| 32 | + |
| 33 | +**NOTICE** The script *does not* work on MUSL versions. Glibc is required. |
5 | 34 |
|
6 | | -__NOTICE__: THIS SCRIPT IS DESIGNED AND WILL MOST LIKELY ONLY WORK FOR THE MINIMAL ISO `void-live-x86_64-XXXXXXXX.iso` |
| 35 | +After you have completed the installation of Void, continue to Step 2. |
7 | 36 |
|
8 | | -__NOTICE__: THIS SCRIPT HAS NOT BEEN TESTED ON THE MUSL VARIANT |
9 | 37 |
|
10 | | -### Usage |
11 | | -Ready the system and install required packages |
12 | | -```bash |
| 38 | +#### STEP 2: Install required packages |
| 39 | +```sh |
13 | 40 | $ sudo xbps-install -Syu |
14 | 41 | $ sudo xbps-install -S wget |
15 | 42 | ``` |
16 | 43 |
|
17 | | -Download the installation script |
18 | | -```bash |
19 | | -$ wget https://github.com/TheGejr/VoidLinuxSetupper/blob/master/void-installer.sh |
| 44 | + |
| 45 | +#### STEP 3: Download the installation script |
| 46 | +The installation script acquired by cloning the repo, but it's much easier to wget the file from github or (for easier typing) my website. |
| 47 | +```sh |
| 48 | +$ wget https://raw.githubusercontent.com/TheGejr/VoidLinuxSetupper/master/void-installer.sh |
20 | 49 | OR |
21 | 50 | $ wget https://gejr.dk/static/void-installer.sh |
22 | 51 | ``` |
23 | 52 |
|
24 | | -Ready the installation script and run it. |
25 | | -```bash |
| 53 | + |
| 54 | +#### STEP 3.2 (OPTIONAL): Edit to your preference |
| 55 | +The packages the script installs is neatly split up into different sections, therefore it is easy to read and edit. |
| 56 | + |
| 57 | +The script does not install a Display Manager, so you will login in a `TTY`, however `LightDM` packages is ready it just need to be uncommented. |
| 58 | + |
| 59 | +The script installs many of the packages I use therefore it can be a good idea to either look at [this section](#packages) to see the packages it installs or read/edit the code of the script. |
| 60 | + |
| 61 | +A place that is good to edit is the graphics section. By default the script installs Intel graphics drivers, however there is commented code that installs AMD or Nvidia; all you have to do is uncomment and comment the unwanted packages. |
| 62 | +There is also a section for Virtualization, by default it installs drivers as if you are running void on a host *not* in a VM. |
| 63 | + |
| 64 | + |
| 65 | +#### STEP 4: Ready the installation script and run it. |
| 66 | +The script is now ready, give the script the proper rights and execute it. |
| 67 | +```sh |
26 | 68 | $ sudo +x void-installer.sh |
27 | 69 | $ ./void-installer.sh |
28 | 70 | ``` |
29 | | -This will take some time. |
| 71 | + |
| 72 | +This will take some time, so go make a cup of coffee and come back in a bit. |
30 | 73 |
|
31 | 74 | --- |
32 | 75 |
|
| 76 | +What is it doing |
| 77 | +================ |
| 78 | +> ### So what is actually happening in this script. |
| 79 | +
|
| 80 | +Let me try to explain. |
| 81 | + |
| 82 | +The first thing that happens is it makes sure you are running the script with sudo rights. It then updates the system, and installs the repos `multilib`, `multilib-nonfree`, `nonfree`. It then installs many packages, some is required and some is just my personal preference to install. |
| 83 | +After all packages have been installed. It proceeds to download a tarball called `void-files.tar.xz` from my website, the content of the tarball can be seen in this repo in the folder `Archive/void-files`. This is downloaded and extracted. Some permission is set, and then the content is moved to the correct folders which is `~/`, `~/.config/`, `/etc/` and `/usr/`. As the last thing in this section, the script cleans up and fixes some permission issues. |
| 84 | +The script now executes two other scripts. These script is what take the most time of the whole process. The scripts installs `Plata themes` and `Papirus icons` and customizes it by replacing the default colors with Void colors. |
| 85 | + |
| 86 | +The script now removes `tty{3,4,5,6}` as services, and adds a whole bunch of other services. It also sets up a firewall with some basic rules (see [firewall rules](#firewall)). The script also sets the default shell to be `fish` because I like fish. |
| 87 | +The last thing that the script does is install my own dotfiles. It downloads them from my own website and copies them to the correct places. |
| 88 | + |
| 89 | +--- |
| 90 | + |
| 91 | +Packages |
| 92 | +======== |
| 93 | +Here is a list of all the packages the script by default will install. This can of course be modified by editing the script as explained in [STEP 3.2](#step-3-download-the-installation-script). |
| 94 | +``` |
| 95 | +void-repo-multilib |
| 96 | +void-repo-multilib-nonfree |
| 97 | +void-repo-nonfree |
| 98 | +xfce4 |
| 99 | +xfce-polkit |
| 100 | +xfce4-battery-plugin |
| 101 | +xfce4-clipman-plugin |
| 102 | +xfce4-genmon-plugin |
| 103 | +xfce4-notes-plugin |
| 104 | +xfce4-pulseaudio-plugin |
| 105 | +xfce4-weather-plugin |
| 106 | +xfce4-whiskermenu-plugin |
| 107 | +xfce4-screenshooter |
| 108 | +xfce4-settings |
| 109 | +xinit |
| 110 | +xorg |
| 111 | +xtools |
| 112 | +xdg-utils |
| 113 | +xdotool |
| 114 | +adwaita-icon-theme |
| 115 | +alsa-plugins |
| 116 | +alsa-plugins-32bit |
| 117 | +alsa-plugins-ffmpeg |
| 118 | +alsa-plugins-pulseaudio |
| 119 | +alsa-utils |
| 120 | +conky |
| 121 | +cpupower |
| 122 | +dbus-elogind |
| 123 | +elogind |
| 124 | +exo |
| 125 | +ffmpeg |
| 126 | +garcon |
| 127 | +gmic-gimp |
| 128 | +gnome-themes-extra |
| 129 | +greybird-themes |
| 130 | +gst-libav |
| 131 | +gst-plugins-bad1 |
| 132 | +gst-plugins-base1 |
| 133 | +gst-plugins-good1 |
| 134 | +gst-plugins-ugly1 |
| 135 | +gtk-update-icon-cache |
| 136 | +gtk3-nocsd |
| 137 | +gvfs |
| 138 | +gvfs-mtp |
| 139 | +lame |
| 140 | +libGL-32bit |
| 141 | +libavcodec |
| 142 | +libavcodec-32bit |
| 143 | +libavformat-32bit |
| 144 | +libavresample-32bit |
| 145 | +libavutil-32bit |
| 146 | +libpulseaudio-32bit |
| 147 | +libtxc_dxtn-32bit |
| 148 | +menulibre |
| 149 | +mugshot |
| 150 | +ntfs-3g |
| 151 | +ntp |
| 152 | +numlockx |
| 153 | +optipng |
| 154 | +parole |
| 155 | +pavucontrol |
| 156 | +physlock |
| 157 | +procps-ng |
| 158 | +pulseaudio |
| 159 | +rkhunter |
| 160 | +scrot |
| 161 | +simple-scan |
| 162 | +snooze |
| 163 | +tty-clock |
| 164 | +udisks2 |
| 165 | +ufw |
| 166 | +unrar |
| 167 | +unzip |
| 168 | +upower |
| 169 | +wmctrl |
| 170 | +x264 |
| 171 | +xarchiver |
| 172 | +xcalib |
| 173 | +xcursor-vanilla-dmz |
| 174 | +xcursor-vanilla-dmz-aa |
| 175 | +xdg-user-dirs-gtk |
| 176 | +xf86-input-wacom |
| 177 | +xz |
| 178 | +zenity |
| 179 | +font-hack-ttf |
| 180 | +fontconfig |
| 181 | +fontconfig-32bit |
| 182 | +freetype |
| 183 | +google-fonts-ttf |
| 184 | +noto-fonts-cjk |
| 185 | +noto-fonts-emoji |
| 186 | +noto-fonts-ttf |
| 187 | +fish-shell |
| 188 | +audacity |
| 189 | +zip |
| 190 | +whois |
| 191 | +torsocks |
| 192 | +spigot |
| 193 | +bash-completion |
| 194 | +cpufrequtils |
| 195 | +gzip |
| 196 | +hardinfo |
| 197 | +epdfview |
| 198 | +filezilla |
| 199 | +firefox |
| 200 | +galculator-gtk3 |
| 201 | +gimp |
| 202 | +git |
| 203 | +pidgin |
| 204 | +htop |
| 205 | +hunspell |
| 206 | +libreoffice-calc |
| 207 | +libreoffice-writer |
| 208 | +libreoffice-gnome |
| 209 | +libreoffice |
| 210 | +nano |
| 211 | +vim |
| 212 | +neovim |
| 213 | +neofetch |
| 214 | +pfetch |
| 215 | +thunar-archive-plugin |
| 216 | +thunar-volman |
| 217 | +thunderbird |
| 218 | +transmission-gtk |
| 219 | +vkd3d |
| 220 | +vkd3d-32bit |
| 221 | +vulkan-loader |
| 222 | +vulkan-loader-32bit |
| 223 | +linux-firmware-intel |
| 224 | +xf86-video-intel |
| 225 | +mesa-intel-dri |
| 226 | +mesa-intel-dri-32bit |
| 227 | +mesa-vulkan-intel |
| 228 | +mesa-vulkan-intel-32bit |
| 229 | +linux-headers |
| 230 | +linux-lts-headers |
| 231 | +linux-tools |
| 232 | +gcc |
| 233 | +ctags |
| 234 | +make |
| 235 | +cmake |
| 236 | +rsync |
| 237 | +git |
| 238 | +lynx |
| 239 | +virtualbox-ose |
| 240 | +virtualbox-ose-dkms |
| 241 | +openjdk-jre |
| 242 | +dnscrypt-proxy |
| 243 | +``` |
| 244 | + |
| 245 | +Here is a list of all the packages that will not be installed by default, but is commented out so it easily can be installed. |
| 246 | +``` |
| 247 | +linux-firmware-amd |
| 248 | +xf86-video-amdgpu |
| 249 | +mesa-ati-dri |
| 250 | +mesa-ati-dri-32bit |
| 251 | +mesa-vulkan-radeon |
| 252 | +mesa-vulkan-radeon-32bit |
| 253 | +linux-firmware-nvidia |
| 254 | +xf86-video-nouveau |
| 255 | +mesa-nouveau-dri |
| 256 | +mesa-nouveau-dri-32bit |
| 257 | +openbox |
| 258 | +obconf |
| 259 | +obmenu |
| 260 | +nitrogen |
| 261 | +tint2 |
| 262 | +gsimplecal |
| 263 | +volumeicon |
| 264 | +compton |
| 265 | +light-locker |
| 266 | +lightdm |
| 267 | +lightdm-gtk-greeter-settings |
| 268 | +lightdm-gtk3-greeter |
| 269 | +xfce4-screensaver |
| 270 | +xfce4-panel-appmenu |
| 271 | +appmenu-gtk-module |
| 272 | +appmenu-gtk3-module |
| 273 | +plank |
| 274 | +pm-utils |
| 275 | +cups |
| 276 | +cups-filters |
| 277 | +cups-pk-helper |
| 278 | +gutenprint |
| 279 | +system-config-printer |
| 280 | +octoxbps |
| 281 | +xiccd |
| 282 | +dhcpcd-gtk |
| 283 | +wpa_gui |
| 284 | +gufw |
| 285 | +gsmartcontrol |
| 286 | +catfish |
| 287 | +vokoscreen |
| 288 | +pitivi |
| 289 | +gstreamer-vaapi |
| 290 | +sc-controller |
| 291 | +virtualbox-ose-guest |
| 292 | +virtualbox-ose-guest-dkms |
| 293 | +socklog-void |
| 294 | +dconf-editor |
| 295 | +android-file-transfer-linux |
| 296 | +amdvlk |
| 297 | +amdvlk-32bit |
| 298 | +``` |
| 299 | + |
| 300 | +--- |
| 301 | + |
| 302 | +Miscellaneous information |
| 303 | +========================= |
| 304 | +Here is some extra information located that didn't really fit anywhere. |
| 305 | + |
| 306 | +Firewall |
| 307 | +-------- |
| 308 | +The script sets up a firewall using `UFW`, the rules it sets is: |
| 309 | +```sh |
| 310 | +sudo ufw default deny |
| 311 | +#sudo ufw allow from 192.168.0.0/24 |
| 312 | +sudo ufw logging off |
| 313 | +sudo ufw enable |
| 314 | +``` |
| 315 | + |
| 316 | + |
| 317 | +Thanks |
| 318 | +====== |
33 | 319 | This repo was made possible by Alex from alkusin.net |
34 | 320 | This repo use much of his work, but with an English translation and some improvements to some scripts and settings. |
35 | 321 | Check his site out for the original work https://alkusin.net/voidlinux/ |
0 commit comments