Automate the process of setting up Void Linux
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Malte Gejr 8a78b5755b
Added package bind-utils
4 months ago
Archive Added XFCE4 layouts to Archive, tarball needs to be remade 5 months ago
LICENSE Initial commit 5 months ago
README.md Improved the Usage guide, added ToC, added guide to what the script does, added list of packages, added misc information 5 months ago
TODO.md Ajour the todo with what have been done 5 months ago
repository-banner.png Added a Github repobanner 5 months ago
void-installer.sh Added package bind-utils 4 months ago

README.md

VoidLinuxSetupper

Automate the process of setting up Void Linux.

NOTICE: THIS SCRIPT IS DESIGNED FOR THE MINIMAL ISO void-live-x86_64-XXXXXXXX.iso BUT IT WILL WORK FOR ANY OTHER VERSION.

Table of contents

Usage

STEP 1: Install VoidLinux

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.

NOTICE The script does not work on MUSL versions. Glibc is required.

After you have completed the installation of Void, continue to Step 2.

STEP 2: Install required packages

$ sudo xbps-install -Syu
$ sudo xbps-install -S wget

STEP 3: Download the installation script

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.

$ wget https://raw.githubusercontent.com/TheGejr/VoidLinuxSetupper/master/void-installer.sh
OR
$ wget https://gejr.dk/static/void-installer.sh

STEP 3.2 (OPTIONAL): Edit to your preference

The packages the script installs is neatly split up into different sections, therefore it is easy to read and edit.

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.

The script installs many of the packages I use therefore it can be a good idea to either look at this section to see the packages it installs or read/edit the code of the script.

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. 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.

STEP 4: Ready the installation script and run it.

The script is now ready, give the script the proper rights and execute it.

$ sudo +x void-installer.sh
$ ./void-installer.sh

This will take some time, so go make a cup of coffee and come back in a bit.


What is it doing

So what is actually happening in this script.

Let me try to explain.

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. 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. 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.

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). The script also sets the default shell to be fish because I like fish. 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.


Packages

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.

void-repo-multilib
void-repo-multilib-nonfree
void-repo-nonfree
xfce4
xfce-polkit
xfce4-battery-plugin
xfce4-clipman-plugin
xfce4-genmon-plugin
xfce4-notes-plugin
xfce4-pulseaudio-plugin
xfce4-weather-plugin
xfce4-whiskermenu-plugin
xfce4-screenshooter
xfce4-settings
xinit
xorg
xtools
xdg-utils
xdotool
adwaita-icon-theme
alsa-plugins
alsa-plugins-32bit
alsa-plugins-ffmpeg
alsa-plugins-pulseaudio
alsa-utils
conky
cpupower
dbus-elogind
elogind
exo
ffmpeg
garcon
gmic-gimp
gnome-themes-extra
greybird-themes
gst-libav
gst-plugins-bad1
gst-plugins-base1
gst-plugins-good1
gst-plugins-ugly1
gtk-update-icon-cache
gtk3-nocsd
gvfs
gvfs-mtp
lame
libGL-32bit
libavcodec
libavcodec-32bit
libavformat-32bit
libavresample-32bit
libavutil-32bit
libpulseaudio-32bit
libtxc_dxtn-32bit
menulibre
mugshot
ntfs-3g
ntp
numlockx
optipng
parole
pavucontrol
physlock
procps-ng
pulseaudio
rkhunter
scrot
simple-scan
snooze
tty-clock
udisks2
ufw
unrar
unzip
upower
wmctrl
x264
xarchiver
xcalib
xcursor-vanilla-dmz
xcursor-vanilla-dmz-aa
xdg-user-dirs-gtk
xf86-input-wacom
xz
zenity
font-hack-ttf
fontconfig
fontconfig-32bit
freetype
google-fonts-ttf
noto-fonts-cjk
noto-fonts-emoji
noto-fonts-ttf
fish-shell
audacity
zip
whois
torsocks
spigot
bash-completion
cpufrequtils
gzip
hardinfo
epdfview
filezilla
firefox
galculator-gtk3
gimp
git
pidgin
htop
hunspell
libreoffice-calc
libreoffice-writer
libreoffice-gnome
libreoffice
nano
vim
neovim
neofetch
pfetch
thunar-archive-plugin
thunar-volman
thunderbird
transmission-gtk
vkd3d
vkd3d-32bit
vulkan-loader
vulkan-loader-32bit
linux-firmware-intel
xf86-video-intel
mesa-intel-dri
mesa-intel-dri-32bit
mesa-vulkan-intel
mesa-vulkan-intel-32bit
linux-headers
linux-lts-headers
linux-tools
gcc
ctags
make
cmake
rsync
git
lynx
virtualbox-ose
virtualbox-ose-dkms
openjdk-jre
dnscrypt-proxy

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.

linux-firmware-amd
xf86-video-amdgpu
mesa-ati-dri
mesa-ati-dri-32bit
mesa-vulkan-radeon
mesa-vulkan-radeon-32bit
linux-firmware-nvidia
xf86-video-nouveau
mesa-nouveau-dri
mesa-nouveau-dri-32bit
openbox
obconf
obmenu
nitrogen
tint2
gsimplecal
volumeicon
compton
light-locker
lightdm
lightdm-gtk-greeter-settings
lightdm-gtk3-greeter
xfce4-screensaver
xfce4-panel-appmenu
appmenu-gtk-module
appmenu-gtk3-module
plank
pm-utils
cups
cups-filters
cups-pk-helper
gutenprint
system-config-printer
octoxbps
xiccd
dhcpcd-gtk
wpa_gui
gufw
gsmartcontrol
catfish
vokoscreen
pitivi
gstreamer-vaapi
sc-controller
virtualbox-ose-guest
virtualbox-ose-guest-dkms
socklog-void
dconf-editor
android-file-transfer-linux
amdvlk
amdvlk-32bit

Miscellaneous information

Here is some extra information located that didn't really fit anywhere.

Firewall

The script sets up a firewall using UFW, the rules it sets is:

sudo ufw default deny
#sudo ufw allow from 192.168.0.0/24
sudo ufw logging off
sudo ufw enable

Thanks

This repo was made possible by Alex from alkusin.net This repo use much of his work, but with an English translation and some improvements to some scripts and settings. Check his site out for the original work https://alkusin.net/voidlinux/